WHITE PAPER. Getting started with Continuous Integration in software development. Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Similar documents
A 7-STEP FRAMEWORK TO IMPLEMENT CICD IN ETL TESTING

REDUCING TIME TO MARKET WITH DEVOPS

CHANGE IMAGINED. CHANGE DELIVERED

DevOps Journey. adoption after organizational and process changes. Some of the key aspects to be considered are:

ADVANTAGE YOU. Drive TCO* reduction through Infosys TIBCO solutions

ACCELERATE YOUR JOURNEY TO BEING DIGITAL

WHITE PAPER. Master Data Management as a Solution Using SAP MDM and Complementing Technologies

A PATH TO GDPR READINESS WHITE PAPER

INFOSYS PROCUREMENT AND PLANNING PRACTICE

RPA VALIDATION PITFALLS AND HOW TO AVOID THEM

INFOSYS BUSINESS PROCESS MANAGEMENT OFFERINGS

KNOWLEDGE-BASED ENGINEERING (KBE) Key product-development technology to enhance competitiveness

INFOSYS AND SALESFORCE PRACTICE Drive world-class innovation, efficiency and growth with Salesforce cloud integration services from Infosys

RETRANSFORM BEYOND AGILE FOR FASTER, INTEGRATED IT SERVICE DELIVERY

RETRANSFORM BEYOND AGILE FOR FASTER, INTEGRATED IT SERVICE DELIVERY

SEVEN FEATURED PEGA CASE STUDIES. Different needs, different industries, tailored solutions leveraging Pega solutions

INFOSYS SMART OILFIELD SERVICES SOLUTION FOR SAP ERP

PERSPECTIVE. Effective Capacity Management with Modeling and Simulation - assisted Performance Testing. Abstract

PERSPECTIVE. Creating Business Value with Mature QA Practices. Abstract

CASE STUDY. Streamlined Operations Through New Business Process Transformation

WHITE PAPER. Pick the right SAP UI/UX offering for your business. Abstract

DIGITAL TRANSFORMATION WITH INTELLIGENT SOLUTIONS FROM INFOSYS AND PEGA

KEEP THE LIGHTS ON - APPLICATION MAINTENANCE AND SUPPORT

TRANSFORMING THE LANDSCAPE FOR INSURANCE CLAIMS

VIEW POINT. The Enterprise QA Transformation Model A solution to enhance an enterprises testing maturity. Abstract. Reghunath Balaraman, Aromal Mohan

WHITE PAPER. Evaluation Framework: To Build or to Buy CRM Software? Abstract

INFOSYS BPM DIGITAL Empowering you to cash on digital opportunities

BANKING WITH THE RIGHT REGULATIONS

ACCELERATING DIGITIZATION THROUGH NEXT-GENERATION INTEGRATION

Progressive Organization PERSPECTIVE

HOW AGILE DO YOU WANT IT?

MODERNIZING THE MIDDLEWARE

MARGIN MANAGEMENT IN THE OIL & GAS INDUSTRY WHITE PAPER

WHITE PAPER. Banks Regulatory Reporting Compliance The Challenges and the Solution. Abstract

PERSPECTIVE. MAKING GPP (Global PAYplus) TESTING PREDICTABLE

Boundaryless Information PERSPECTIVE

BEST STORIES OF INFOSYS SALESFORCE IMPLEMENTATION

PREDICTIVE ANALYTICS FOR DATA-DRIVEN DECISIONS

PRODUCT COMPLAINTS MANAGEMENT. Infosys Handbook For Life Sciences

PERSPECTIVE. Microservices A New Application Paradigm. Abstract

VIEW POINT. Five Commandments for Successful COTS Package Testing. Abstract

CMO Challenges Today: How Are They Reacting?

ENABLING SALES TEAMS TO CREATE WINNING QUOTES

FRESH INSIGHTS FROM REAL-TIME DATA, COURTESY AI-DRIVEN ANALYTICS

WHITE PAPER. An Insight into Microservices Testing Strategies. Abstract. Arvind Sundar, Technical Test Lead

RETAIL AND CPG HUMAN AMPLIFICATION IN THE ENTERPRISE

FINDING AIRCRAFT PARTS BEFORE THEY ARE LOST, WITH PREDICTIVE ANALYTICS

ORACLE SUPPLY CHAIN MANAGEMENT PRACTICE

PERSPECTIVE. Operational Risk Management in Banks: The Way Forward

CASE STUDY THE SPEND ELIXIR

ENHANCING BUSINESS EFFICIENCY WITH AI AND ENGINEERING DATA ANALYTICS

WHITE PAPER. Assuring success in blockchain implementations by engineering quality in validation

INFOSYS OFFERINGS IN ORACLE CX SALES CLOUD

PERSPECTIVE. Accounting General Ledger Challenges in Facets. Vikas Kumar Abstract

WHITE PAPER. How to optimize close cycle using Hyperion Financial Management. - Navpreet Singh, Principal Consultant

WHITE PAPER LEVERAGING 3-C PHILOSOPHY FOR ENHANCED ROI FROM CHANNELS

WHITE PAPER. Cloud-Based Human Capital Management: Accelerating Organizational Evolution to be #MoreTogether. Abstract

PERSPECTIVE. Policy Administration System Upgrade An Agile, Lean, and Flexible Approach

INFOSYS REALTIME STREAMS

FROM MONOLITHIC MAINFRAMES TO CLOUD FOR FASTER TIME TO MARKET

WHITE PAPER. Application Grading for Comprehensive Quality Assurance. Abstract

PERSPECTIVE. Need for a Comprehensive Test Maturity Model. Abstract. - Reghunath Balaraman, Harish Krishnankutty

WHITE PAPER. End User empowerment for improved Asset Maintenance

Jenkins. The coded business. open source

WHITE PAPER. Loss Prevention Data Mining Using big data, predictive and prescriptive analytics to enpower loss prevention.

DIGITAL OUTLOOK CONSUMER PACKAGED GOODS INDUSTRY

TRANSFORMING THE IT LANDSCAPE

WHITE PAPER. BPM for Structural Integrity Management in Oil and Gas Industry. Abstract

Closing the Agile Loop Continuous Integration, Continuous Information. Darryl Bowler Senior Systems Architect CollabNet

How Cisco IT Developed a Self-Service Model for Build and Deploy

RELEASING HIGH-QUALITY APPLICATIONS AND INFRASTRUCTURE FASTER WHITE PAPER OCTOBER 2017

PERSPECTIVE. Shrink Resolution Times with Field Service Automation (FSA) Abstract

WHITE PAPER. Coalition loyalty: Loyalty s new definition

WHITE PAPER. Count your inventory in the right way for right result

MAN, MACHINE AND FINANCE - THE FINANCE ORGANIZATION THROUGH 2030

Responsive enterprise the future of the enterprise PERSPECTIVE

PERSPECTIVE. Assuring the digital utilities transformation. Gaurav Kalia Client Solution Manager

AUTOMATING BIG DATA TESTING FOR PERFORMANCE

Today s businesses are complex organizations that must be agile across highly competitive global Agile Software Framework (DevOps):

WHITE PAPER. Integrated Profitability Analytics The Need, Struggles, and Future

COMPLIANCE AND RISK MANAGEMENT AS A CATALYST FOR CHANGE

INFOSYS SALESFORCE PRACTICE Empowering global enterprises to make smarter business decisions and bring engaged customer ecosystem experiences to life

BEST STORIES FOR DIGITAL IN COMMUNICATION SERVICES

Conclusion.

Converting Complaints to Customer Experience A Framework to Redefine the Complaint Management Process in Banks WHITE PAPER

AVOIDING EQUIPMENT FAILURE WITH ENGINEERING DATA ANALYTICS AND AI

Go-Mobile with Oracle Life Sciences Portal. Sheetal Nagar Technology Lead Infosys Limited

Reimagining Life Sciences With AI-Enabled Digital Transformation. Abstract

WHITE PAPER. Comprehensive Capital Analysis and Review (CCAR) CFO attestation Recommended approach

Best Stories of Omni-channel Commerce

IKAN ALM manages your software development wherever it is done in-house, distributed and global, outsourced, in a satellite office or even at home.

VIEW POINT. Making risk-free, accelerated legacy modernization possible! Abstract

1. Introduction. Page - 2

Bluemix Overview. Last Updated: October 10th, 2017

SELF-SERVICE FOR DATA PREPARATION AND ADVANCED ANALYTICS OVERVIEW

FINACLE SERVICES: API MANAGEMENT USING CA API GATEWAY

THE NEED TO IMPRESS. External Document 2018 Infosys Limited

Microsoft FastTrack For Azure Service Level Description

Finacle Offerings on Cloud Design your own cloud journey

WHITE PAPER. A framework to increase ROI through quality data. Kuriakose K. K., Senior Project Manager

Transcription:

WHITE PAPER Getting started with Continuous Integration in software development Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Introduction DevOps culture is gaining rapid momentum in the IT industry as it enables business to adopt agile software delivery methodologies like Continuous Integration (henceforth referred to as CI) & Continuous Delivery (henceforth referred to as CD).These methodologies enable quicker issue resolution, instant feedback loops, improved software quality and cost saving to meet the everincreasing demand to deliver better software faster. It would not be wrong to say that CI-CD practices will soon become the defacto software delivery standards across the industry. Gartner says By 2016, DevOps will evolve from a niche to a mainstream strategy employed by 25 Percent of global 2000 organizations Though both these methodologies (CI and CD) complement each other, CI is the pre-requisite phase for enabling CD as the latter is built on top of the former. The primary goal of CI is not only to enable build automation through continuous test and quality checks but also to provide project insights through reports and dashboards. Since this phase is all about tools, it imposes various integration challenges. Having a good knowledge of the tools involved, their integration aspects and the best practices to follow, will definitely enable their smoother adoption and rollout across enterprises looking to adopt CI practices. This article compiles insights gained from our practical experiences across various CI enablement programs which we have been associated with. Some of these experiences might vary depending on the choice of tools, infrastructure setup, organization policies and project requirements. In spite of the differences, we hope, this article will act as a helping guide to all those planning for CI setup in their projects. This article is organized into different sections as below Section 1 shows the CI setup which we have been using. Section 2 talks about the various tools being used to achieve CI. Section 3 discusses the challenges faced and the solution approaches we used. Section 4 includes some of the best practices that can be adopted for CI Section 5 enumerates some of the benefits obtained from CI Section 6 shows the deployment topology for the CI setup And we finally summarize our findings in Section 7.

3 Build Source Control Server Continuous Integration Server 2 Fetch Changes Test 4 5 Failure or Success 6 Notify Success or Failure Check in Changes 1 Various stakeholders Developer 1 Developer 2 Continuous Integration Setup The below diagram illustrates the end to end Continuous Integration (CI) setup which we have been following across projects. As seen below, the main actors include the Development team, the Source Control Server and the Continuous Tools Adoption CI depends mostly on adopting the correct set of tools and their proper usage. The selection of tools is generally driven by various IT policies in the organization, existing technology landscape, current infrastructure setup, and other considerations. It is therefore Integration server. Developers check-in the code into source control server which is integrated with CI server. For each build, CI server is configured to run the JUnit test cases, Selenium based functional test cases, code quality checks and provide recommended that every organization must do proper due diligence in evaluating different toolsets and choosing the appropriate ones suitable for their requirements. The diagram below shows the toolsets (phase wise) which we have been using notifications for any failure scenario which enables the development team to take immediate action. This continuous automation chain helps in reducing the overall defect density and thereby improving the code quality. successfully across various projects for CI enablement. As seen, we have adopted Jenkins as the continuous integration platform but there are other CI platforms (Bamboo, TeamCity etc.) to choose from. The same case holds good for other toolsets also. Develop Build Test Deploy 01 Continuous Integration Open Source Widely used in industry Provides varied plugins Version Control Build Automation Code Quality Analysis Artifact Management Open Source Widely used in industry Jenkins integration Open Source Widely used in industry Jenkins compatible Integrated test cases Code quality dashboard Jenkins integration Widely used in industry Ease of configuration Jenkins integration

Challenges Faced We faced a few challenges during our CI journey and some of the major challenges encountered are explained below.

Best Practices Followed After having worked on multiple CI enablement projects we have condensed together the set of best practices which we have learnt/followed. Most of these practices have been standardized and published as CI guidelines for internal usage across teams. In this section we highlight some of the best practices which we follow and would like to share with others. Role Based Access Regular cleanup of workspace & artifacts Even distribution of workload across nodes ( Even Scheduler plugin) Template based commons configuration Providing individual level access is always a cumbersome task and therefore it is recommended to provide Role-Based access Cron scripts were created to clean up the job workspace and artifacts once a week, in order to,release the memory and thereby avoid memory leak issues To overcome the default behavior of Jenkins in terms of node picking job, Even Scheduling plugin was used which ensuresd even distribution of work load across nodes Template based configuration enabled centralization of common properties across projects Benefits Realized Following are some of the benefits which we have realized by CI enablement across projects. Build Automation Code Stability Analytics CD Enablement 100% 100% 100% 100% Builds were automated by using the Poll SCM feature of Jenkins. This not only enabled faster builds but also help to eliminate manual build effort Notification feature enabled development team to respond quickly to the build failure scenarios. This helped in quicker resolution of code issues and ultimately led to stable code base Sonar dashboard provided centralized view of code quality issues and dashboards created leveraging Jenkins APIs, provided complete build information. This enabled project teams to take timely corrective steps Workflow configuration on Jenkins enabled auto deployment of application artifacts (EAR/WAR files) on the required application server whenever a new snapshot version of the artifact was available Faster Reeases Cost Savings Improved Productivity Improved Code Quality 50% CI enabled faster release cycles with stable code 30% Many projects cut down on the cost to maintain separate build teams after build automation. This resulted into significant cost savings for them 30% CI-enablement helped increase development team productivity by relieving them from build related aspects with complete focus on their core development activities 25% CI-enablement helped increase development team productivity by relieving them from build related aspects with complete focus on their core development activities Note: The above mentioned quantitative improvements are the average % improvements which have been observed across various projects.

Topology and Deployment view Below is the high-level topology of the CI platform which we have been using. The key benefits of this topology are high availability and scalability. To achieve high scalability and distributed build system we have set up dedicated build nodes that run separately from the Jenkins master. This frees up resources for the master server to improve its scheduling performance. Moreover, executing jobs on the master s executors can introduce a security issue. Any Jenkins s user with full permissions can play havoc with the system as they will have direct access to private information whose integrity and privacy could not be, thus, guaranteed. We leveraged the Jenkins supported master/slave mode, where the workload of building projects is delegated to multiple slave nodes. If you notice we have enabled Jenkins master to only handle HTTP requests and manage the build environment. Actual execution of builds will be delegated to the slaves. With this configuration it is possible to horizontally scale the architecture. Fig 2. Continuous integration topology view

# Component Key Characteristics 1 Master and Backup Server To avoid a single point of failure and support high availability we have the master slave configuration setup. In case the master goes down, a slave node can provide the continuity 2 NAS Storage Responsible for sharing $JENKINS_HOME directory for all Jenkins Master VMs 3 Jenkins Slave Nodes 4 Jenkins Executors 5 Reverse Proxy Server A slave node is a machine set up to offload build projects from the master node. Actual execution of the build happens on the slave node. The method for scheduling builds depends on the configuration given to a specific project. Some projects may be configured to only use a specific slave node while others can freely pick up a slave nodes from among the pool of slave nodes assigned to the master Responsible for concurrent builds on slave nodes. If a slave node consists of 4 executors, concurrently 4 jobs can be built on that node Responsible to ping all nodes in the cluster via a health check URL and uses their return codes to determine which node is the primary/active master Conclusion We believe that Continuous Integration is at the core of DevOps and needs proper planning. Since it is all about tools and their integration aspects, making appropriate choices based on various considerations is very important. Building good expertise on the tools involved, their integration aspects and other best practices, helps, avoid common pitfalls and helps speed up CI adoption. In spite of knowing and following all the best practices, there will always be some or other challenges faced during CI adoption but the final benefits realized far outweigh these initial hiccups. We hope this article might have helped you in some way or the other and we would love to hear from you. References 1. Gartner Says By 2016, DevOps Will Evolve From a Niche to a Mainstream Strategy Employed by 25 Percent of Global 2000 Organizations- http://www.gartner.com/newsroom/id/2999017 2. Distributed builds using Jenkins : https://wiki.jenkins-ci.org/display/jenkins/distributed+builds

About the Team Amruta Kumbhar Technology Lead Amruta Kumbhar is a Product Technical Lead in Infosys. She has strong expertise on Java technologies and database technologies (Oracle, DB2, MongoDB ). She also has very good expertise related to various CI aspects - build management using Maven and SonarQube plugin creation. She can be reached at Amruta_ Kumbhar@infosys.com Madhavi Shailaja Technology Architect Madhavi is a Technology Architect in Infosys. She has strong expertise on Java technologies. She also has very good expertise related to various CI aspects - build management using Maven and Ant. She can be reached at Madhavi_Katakam@ infosys.com Ravi Shankar Anupindi Sr. Technology Architect Ravi is a Senior Technology Architect in Infosys. Ravi has strong expertise on Java technologies and leads the Performance Engineering COE in one of the business verticals. His areas of interest include exploring latest technologies and looking at ways to adopt them to derive significant business benefits. He has been actively involved in DevOps initiatives for various clients. He can be reached at Ravi_ Anupindi@infosys.com For more information, contact askus@infosys.com 2017 Infosys Limited, Bengaluru, India. All Rights Reserved. Infosys believes the information in this document is accurate as of its publication date; such information is subject to change without notice. Infosys acknowledges the proprietary rights of other companies to the trademarks, product names and such other intellectual property rights mentioned in this document. Except as expressly permitted, neither this documentation nor any part of it may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, printing, photocopying, recording or otherwise, without the prior permission of Infosys Limited and/ or any named intellectual property rights holders under this document. Infosys.com NYSE: INFY Stay Connected