TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Similar documents
TM DevOps Use Case TechMinfy All Rights Reserved

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

How the Cloud is Enabling the Disruption of the Construction Industry. AWS Case Study Construction Industry. Abstract

I keep hearing about DevOps What is it?

Deep Dive on AWS CodeStar

Strengthen and Scale security using DevSecOps

JenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot

Publishing automation using DevOps STC India Annual Conference. Srikanta Dash and Visagan Santhanam, Unisys India Pvt. Ltd.

Continuous Integration & Code Quality MINDS-ON NUNO 11 APRIL 2017

Continuous Integration and Deployment (CI/CD)

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Jenkins: AMPLab s Friendly Butler. He will build your projects so you don t have to!

Orchestrating the Continuous Delivery Process

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

How to Build an Appium Continuous Testing Pipeline

DevOps Course Content

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

Object Oriented Programming. Week 1 Part 2 Git and egit

ContainerOps - DevOps Orchestration. Quanyi Ma

Start Building CI/CD as Code The 7 Lessons Learnt from Deploying and Managing 100s of CI Environments

Continuous Integration (CI) with Jenkins

Use Case: Scalable applications

DevOps Tooling from AWS

Handel-CodePipeline Documentation

White Paper(Draft) Continuous Integration/Delivery/Deployment in Next Generation Data Integration

DEVELOPING DEVOPS ON AWS

Continuous Integration, Continuous Deployment and Continuous Testing by HP Codar using ALM and Jenkins

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

Continuous Delivery for Cloud Native Applications

What I ll be talking about. About me & bol.com The CI/CD bol.com Current setup. The future in the cloud

Introduction to AWS GoldBase. A Solution to Automate Security, Compliance, and Governance in AWS

DEVOPS COURSE CONTENT

Accelerating Software Delivery with the AWS Developer Tools. Pradyumna Dash Solutions Architect, UK Public Sector

Introduction to cloud computing

About Intellipaat. About the Course. Why Take This Course?

Serverless Website Publishing with AWS Code* Services. Steffen Grunwald Solutions Architect, AWS October 27, 2016

AALOK INSTITUTE. DevOps Training

DevNet Workshop-Hands-on with CloudCenter and Jenkins

Seven Habits of Highly Effective Jenkins Users

JetBrains TeamCity Comparison

From development to production

DevOps on AWS Deep Dive on Continuous Delivery and the AWS Developer Tools

CONTINUOUS DELIVERY IN THE ORACLE CLOUD

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

Who Moved My Module? 1

SBB. Java User Group 27.9 & Tobias Denzler, Philipp Oser

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

Chapter 1 - Continuous Delivery and the Jenkins Pipeline

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

UNDER THE HOOD. ROGER NUNN Principal Architect/EMEA Solution Manager 21/01/2015

Serverless Architecture meets Continuous Delivery. Andreas

Continuous Integration / Continuous Testing

AWS 101. Patrick Pierson, IonChannel

Creating pipelines that build, test and deploy containerized artifacts Slides: Tom Adams

DevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:

Continuous Integration and Delivery with Spinnaker

ContainerOps DevOps Orchestration

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Both Sides Now: DevOps and Agile in Oracle Developer Cloud Service for Fusion Middleware Developers

DevOps Agility in the Evolving Cloud Services Landscape

Continuous Integration Ensemble / HealthShare Health Connect

ACCELERATE APPLICATION DELIVERY WITH OPENSHIFT. Siamak Sadeghianfar Sr Technical Marketing Manager, April 2016

From Continuous Integration To Continuous Delivery With Jenkins

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

AEM Code Promotion and Content Synchronization Best Practices

Agile CI/CD with Jenkins and/at ZeroStack. Kiran Bondalapati CTO, Co-Founder & Jenkins Admin ZeroStack, Inc. (

AppFactory User Guide

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

JBOSS MIDDLEWARE TO THE CLOUD. MICHAEL EPLEY Sr JBoss Solutions Architect, IC Specialist 2014 June

#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan

Turbo boost your digital app test automation with Jenkins

IBM Cloud Developer Tools (IDT) and App Service Console Overview

DevOps and Continuous Delivery USE CASE

CMS (Publishing System) Change and Release Management Plan

Amir Zipory Senior Solutions Architect, Redhat Israel, Greece & Cyprus

Simplified CICD with Jenkins and Git on the ZeroStack Platform

Lab 5 Exercise Build and continuous integration tools

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

DevOps for Oracle Forms Using Developer Cloud Service

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Continuous Integration using Docker & Jenkins

Continuous Delivery of your infrastructure. Christophe

Quality Engineering in DevOps world a Strategic Enabler

FROM VSTS TO AZURE DEVOPS

Transition Plan (TP)

Unify DevOps and SecOps: Security Without Friction

Containers & Microservices For Realists. Karthik

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift

CASE STUDY Application Migration and optimization on AWS

Building and Deploying a Saas platform On Prem

Achieving Continuous Delivery - Micro Services. - Vikram Gadang

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

We are ready to serve Latest IT Trends, Are you ready to learn? New Batches Info

Continuous integration & continuous delivery. COSC345 Software Engineering

Software Tools Subversion

Taming your heterogeneous cloud with Red Hat OpenShift Container Platform.

NetApp Jenkins Plugin Documentation

CICD pipeline for your extensions with Visual Studio Team Services

In This Webinar. ConEnuous Load TesEng & ConEnuous Delivery with Jenkins

We re redefining Software Quality

Transcription:

Document Details Use Case Name TMDevOps Use Case03 First Draft 01 st Dec 2017 Author Reviewed By Prabhakar D Pradeep Narayanaswamy

Contents Scope... 4 About Customer... 4 Use Case Description... 4 Primary & Supporting Actors... 4 Pre & Post Conditions... 5 Trigger... 5 Scenario... 6 Introduction to DevOps... 6 Application Architect on AWS... 6 Implementation of CI/CD... 6 DevOps CI/CD Architecture for LTMetro for JAVA... 6 DevOps process flow diagram... 7 Security with DevOps... 8 Continuous Integrations (Code)... 8 Automated Jenkins build authentication... 8 Continuous Delivery (Code Merge)... 8 Continuous Deployment... 8 Rollback for deployment failures... 8 Build versions... 8 DevOps CI / CD overall benefits... 9 Version Control... 9 Quick Delivery... 9 Saves Time... 9 Productiveness... 9

Scope This document provides a detailed use case study on development and operations (DevOps) using Continuous integration and continuous delivery (CI/CD) including AWS services and third-party application, with guidelines for implementation. About Customer LnTMetro - The Hyderabad Metro Rail Project is the World's Largest Public-Private Partnership Project (PPP) in the Metro Sector. The Metro Network will cover a total distance of around 72 Km across three corridors, transporting Hyderabad to the future. Use Case Description LT Metro is public listed company did metro rail project for Hyderabad HMC and we TechMinfy developed application for passenger ticket issue system on server and mobile app development by third party with stack of Java on Application and database on MySQL on AWS Infrastructure. This project was not DevOps compliance on any dev/staging/prod environments. Following activities are completely manual process. code push code merge build & test deployment Development team used to spend more time on the above said activities instead of production activities. We at TechMinfy considered CI/CD integration for these activities. Primary & Supporting Actors Actors from TechMinfy: Prabhakar Dharmalingam (Primary) Raghu Penchala (Supporting) Actors from LnTMetro Project- at TechMinfy: Deployment Anant Joshi (Primary) Developers: Praveen Vadla (Primary) Santosh K (Supporting)

Pre & Post Conditions Pre-implementation state at LnTMetro Project: Code push on SVN local Java WAR file deployment was a manual process which led to wrong deployments on wrong environments on Tomcat. Post-implementation state at Metro Project: We enabled code repository on centralized and private code repositories using AWS CodeCommit Code merge process attached to Jenkins jobs and wrong code merges were prevented and is now a one-click process. We restricted code merge job only to DEV team leader, so unauthorized or multiple code merge process is controlled wrong repo or branch code merge is prevented. We automated the code pull and checkout process using Jenkins, code pull from wrong branch is now prevented We replaced Local Eclipse compile process with Jenkins maven build step and the compile errors are now logged and reviewed for documentation or bug tracking purposes Email notification is enabled in case of build failures Deployment using Jenkins job with Tomcat plugin prevented wrong environment deployment on Tomcat For build rollback purpose each and every successful builds are now archived using Jenkins parameterized build and rollback is performed in-case of build failures DEV Team time is utilized effectively on product development instead of build activities Trigger Multiple events of wrong code merge and code pull for process was the main root cause to trigger the decision to implement CI/CD (DevOps) process in the software development life cycle policy. Since build and compile errors were not tracked, developers used to spend more time to re-run the compiler to track the build errors which was another reason for the process to be implemented. DEV team leader decided to implement CI/CD Process for Code Pull, Compile, Build, Test and Deployment using AWS Services with support of TechMinfy.

Scenario TM DevOps Use Case Steps to automate build process Setup Jenkins with JDK 8 on AWS EC2 instance Installed all Jenkins base plugins as pre-requisites Installed AWS credentials plugin to authenticate with AWSCodeCommit Installed AWS CodeDeploy plugin to automate Java WAR deployment Create maven type job to automate the build process of o Code pull o Code checkout to the correct branch o Install dependent packages for build o Build JAR or WAR file o Deploy on Tomcat environment o Archive successful builds as artefacts for build release history and rollback plan E-Mail notifications on build status with logs Introduction to DevOps Dev and Ops are no longer exclusively separate roles within the IT space. Today, they re morphing into one cohesive method and opportunity which is reshaping the way IT teams operate. Most would define DevOps as a movement, practice, or culture that aims to tie IT professionals and software developers together so that they can more efficiently streamline infrastructure changes and software delivery. Essentially, it s rooted in the idea that building, testing and releasing software can run more smoothly and automatically if the appropriate team of professionals are working together. Application Architect on AWS LnTMetro Application Stack Application JAVA using Tomcat Database MySQL using AWS RDS Implementation of CI/CD TechMinfy supported LnTMetro to get on to the DevOps (Continues Integration) Platform on AWS using AWS Commit, Jenkins and AWS Code Deploy. DevOps CI/CD Architecture for LnTMetro for JAVA Code Repository: AWS CodeCommit Build: Jenkins 2.7.9 using git and maven build plugin Deployment: Tomcat on EC2 CI Integration process steps

TM DevOps Use Case We used freestyle job from AWS CodeCommit Repository to trigger build when developers pushed any code changes to the repo and its branches using SCM poll Build use maven build plugin was used to generate jar or war file Using Tomcat plugin, we deployed war file on Tomcat Build Rollback plan was enabled for build failure Email notifications was sent to the team on build status DevOps process flow diagram

Security with DevOps Continuous Integrations (Code) LnTMetro development project was developed and implemented by TechMinfy DEV Team. We migrated Code repositories from SVN to AWS CodeCommit as private code repositories. AWS CodeCommit by default does not allow any developers to push changes without authentication. So we have integrated HTTPS authentication to make developers to push changes on AWS CodeCommit private code repositories. Automated Jenkins build authentication We pulled code for Jenkins builds to get authenticated using https git credentials using AWS CLI commands and Jenkins saved AWS credentials for each and every build code pull Continuous Delivery (Code Merge) LnTMetro Project has different environments DEV, Staging and Production with different app codes for Frontend, Backend, Recharge Card and Payment. Each and every application codes merges from DEV to Staging to PROD environment are controlled by deploying Jenkins Authorize Project Plugin, code merges are now secured merges. LnTMetro Project needs to keep a track of each build specifically to check who breaks builds and need to get notified, we have configured build tracking logging and configured E-Mail notifications to send notifications when builds are failed with all relevant information. Continuous Deployment LnTMetro Project deployments are securely authenticated using AWS access key and secret keys for deployment on AWS EC2 instances for Jenkins deployment AWS CLI commands to run using shell commands Rollback for deployment failures Build rollback was enabled using Jenkins Deployment plugin and configured as Parameterized rollback plan, in case build is success but functionality broken due to last code commit Build versions All builds are archived and build versions are tracked for specific build version deployment and also for the roll back purpose. All build versions are controlled with parameterized build option in Jenkin Jobs

DevOps CI / CD overall benefits Version Control Each and every builds artifacts are archived and tracked and can now be redeployed to any target environments on LTMetro Project Quick Delivery Post implementation of CI and CD for LTMetro proejct,all bug fixes are delivered quickly for all applications ( Frontend, Backend, RechargeCards, Payment services) Saves Time LTMetro Project used to run repeated builds before implementation CI and CD, around 20 builds in a week Post CI and CD implementation, repeated and deplulicated builds are prevented saving time CI and CD helps LTMetro Project to prevent wrong code commits as it is integraated and automated for each and every build Continuous Integration saves time for LTMetro Project on AWS code commit, merge, pull and prevents any accidental pushes to wrong repositories and branches Continuous delivery also saves time for LTMetro Project as developer need not spend time on manually building and log tracking Continuous deployment saves time of for LTMetro Project- IT Ops Manager/System Admins as there is no manual intervention required for deployment CI/CD implementation also enabled automated email notification so that LTMetro Project developers and IT Ops team are notified of each and every build sand deployments. Faster build time when compared to manuall build and deployment Now LTMetro Project requires no manual maintenance as builds and logs cleaner is automated with Jenkins workspace cleanup plugin, saving time for IT Ops team from manual disk space cleaner LTMetro Project need not manually track builds and deployments history, automated build and deployment tracking with builds history for any future analysis Jenkins rollback features saves time in planning for rollback, as the functionality helps to rollback with last success build version Productiveness Dev team and Ops team can now focus more on productivity as they don t have to spend much time on manual build, error tracking and deployment failures. They can focus more on bug fixes of build and deployments Better builds release management helps LnT Metro Ops team to stream line deployments on appropriate targets resources