Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Similar documents
Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

DevOps. Jesse Pai Robert Monical 8/14/2015

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Increasing frequency of releases to every week down from quarterly major releases

Security Automation in Agile SDLC Real World Cases

Software Continuous Integration & Delivery

White Paper. The Importance of Automating the End to End Pipeline for Continuous Delivery

The Benefits of Utilizing a Repository Manager

Software Development In the Cloud Cloud management and ALM

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Web UI & Functional Test Automation for Continuous Agile Deliveries

ACCELERATE DEVOPS USING OPENSHIFT PAAS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Bridge Development and Operations for faster delivery of applications

Fundamentals of Continuous Integration

A central continuous integration platform

FUJITSU Transformational Application Managed Services

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

DEVOPS: INNOVATIVE ENGINEERING PRACTICES FOR CONTINUOUS SOFTWARE DELIVERY

Releasing High Quality Applications More Quickly with vrealize Code Stream

Achieving Retail Agility

Cloud computing: Innovative solutions for test environments

An enterprise- grade cloud management platform that enables on- demand, self- service IT operating models for Global 2000 enterprises

Best Overall Use of Technology. Jaspersoft

NeXUS REPOSITORY managers

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Journey to the Cloud and Application Release Automation Shane Pearson VP, Portfolio & Product Management

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Architecture Overview

Orchestrated. Release Management. Gain insight and control, eliminate ineffective handoffs, and automate application deployments

DevOps Best Practices: Combine Coding with Collaboration

A Sumo Logic White Paper. Harnessing Continuous Intelligence to Enable the Modern DevOps Team

agility made possible

Organization Transformation for Network Function Virtualization Infrastructure As A Service (NFVIaaS)

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

EMC IT AUTOMATES ENTERPRISE PLATFORM AS A SERVICE

A Comprehensive Cloud Management Platform with Vblock Systems and Cisco Intelligent Automation for Cloud

Building Value with Continuous Integration

You ll need to have: It d be great if you have:

The Continuous Delivery Tool Chain: So Many Choices!

SOLUTION WHITE PAPER. BMC Manages the Full Service Stack on Secure Multi-tenant Architecture

DevOps for the Cloud. Achieving agility throughout the application lifecycle. The business imperative of agility

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

WHITE PAPER. Building Blocks of the Modern Data Center

RightScale mycloud with Eucalyptus

WHITEPAPER. A Technical Perspective on the Talena Data Availability Management Solution

Cisco Cloud Portal Delivers Self-Service Provisioning for Data Center Services

Accelerating Time to Market:

Qlik Consulting helps you accelerate time to value, mitigate risk, and achieve better ROI 1/35

Use service virtualization to remove testing bottlenecks

/ WHITEPAPER / THE BIMODAL IT

Transform Your Business. Transformation Data Center

Successfully managing geographically distributed development

WHITE PAPER. Automating Network Provisioning for Private Cloud

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Accenture Cloud Platform Unlocks Agility and Control

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

The Virtualization Practice

Accenture & NetSuite

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Achieve Economic Synergies by Managing Your Human Capital In The Cloud

Distributed Agile Development in the Cloud

LEVERAGE VBLOCK SYSTEMS FOR Esri s ArcGIS SYSTEM

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

An introduction to the benefits of Application Lifecycle Management

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

Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud

DevOps for the Mainframe

Agile Delivery Framework Automation & Deployment With Puppet

DevOps to Enterprise Agile

Global Software Change Management for PVCS Version Manager

Continuous Integration (CI)

Four Reasons Your Technical Team Will Love Acquia Cloud Site Factory

DELIVERING AGILE QUALITY ASSURANCE THROUGH EXTREME AUTOMATION

Continuous Integration Build-Test-Delivery (CI-BTD) Framework in compliance with ISO26262

Test Automation: A Project Management Perspective

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

What s new in the HP Functional Testing 11.5 suite Ronit Soen, product marketing John Jeremiah, product marketing

Digital Marketplace Services Service Definition

Development Testing for Agile Environments

Cisco Unified Communications and Collaboration technology is changing the way we go about the business of the University.

Continuous Delivery. Ariel Alonso, IPC

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

VALUE PROPOSITION FOR SERVICE PROVIDERS. Helping Service Providers accelerate adoption of the cloud

Global Headquarters: 5 Speen Street Framingham, MA USA P F

IT Service Management by SAP Africa (ITSM) Dirk Smit ALM Engagement Manager

Continuous delivery Release software on-demand, not on Red Alert

SMZ. SocialMedia. Z olutions

Transcription:

Agile Software Factory: Bringing the reliability of a manufacturing line to software development Today s businesses are complex organizations that must be agile across multiple channels in highly competitive global markets. To succeed, their IT departments must work as efficiently and reliably as a manufacturing assembly line, where each stage of development and release process is clearly defined and automated to minimize errors and delays. To help businesses address these needs, Grid Dynamics offers Agile Software Factory () a Continuous Delivery toolkit that uses pre-integrated tools to implement end-to-end development and release processes. Industry standards and best practices implemented in serve as a solid foundation for assuring an efficient, agile, and structured DevOps culture. Offering a wide range of standard pre-configured features, can be easily customized to address unique requirements and integrate with a business existing processes and tools. introduction The fast-changing landscape of retail makes it extremely challenging for tier one retailers to maintain their competitor edge and market leadership. Today s consumer is more technically savvy than ever before and wants a unique online shopping experience customized to his or her preferences. The added complexity of supporting multiple channels, coupled with the increasing size of engineering teams, makes it more difficult to deliver the necessary software quickly and reliably. To succeed, retailers need to take a more integrated and structured approach to ecommerce built on well-defined processes, standards, and best practices. New research commissioned by CA Technologies and conducted between May and July 2013 by Vanson Bourne shows many organizations are achieving significant and measurable benefits from DevOps anywhere from between 17% to 23% improvement in key business metrics such as revenue, time-to-market, and new SEPTEMBER 2014 WHITE PAPER

customer acquisition 1. Other benefits outlined match what Grid Dynamics sees in the market (see Figure 1). 1 Vanson Bourne. TechInsights Report: What Smart Businesses Know About DevOps CA Technologies, 2013. Web. September 2014. https://www.ca.com/us/ register/forms/collateral/techinsights-report-what-smart-businesses-know-aboutdevops.aspx. industry overview During the early days of software development, building and releasing software involved relatively small teams that could effectively use informal processes involving ad hoc procedures and manual handoffs. In contrast, today s modern software engineering organizations tend to require the coordination of many teams composed of tens and hundreds of developers, QAs, architects, analysts, managers, and release engineers. As a consequence, software development processes have become much more complex, leading to longer release cycles and greater risk. This is especially true for tier one retailers. Over the past several years, retailers have had to make significant investment in their digital omnichannel platforms to stay relevant in an increasingly competitive marketplace. Such investments lead to tremendous growth of retailers IT departments, demanding fast and efficient innovation. Technology giants like Amazon, who implemented Continuous Delivery through many years of trial and error, are now able to deploy to production at blazing speed and with greatly reduced risk. Traditional retailers, in contrast, don t have the luxury of spending a lot of time to set up proper processes. Their IT departments need to achieve efficiency from day one. problem description With the increasing growth of engineering teams, businesses find themselves facing new kinds of software delivery issues: Development s have become a scarce resource, and development and QA teams lose valuable time waiting to acquire the proper development s. Furthermore, most engineers and managers don t know how many s the team actually has or which projects are currently deployed there. Releases are constantly delayed due to either critical defects appearing in late design stages or lack of agreement about what functionality should go to production. Management doesn t have a clear picture of the completion status of each feature planned for release. This increases overall uncertainty and delivery risks. Defects take longer to fix due to lengthened feedback cycles. For example, because testing is often completed just before release, developers have lost the context of any defects found. existing approaches The value and importance of Continuous Delivery and a structured DevOps culture is generally recognized today. Businesses have a wide choice of tools to help with implementing very specific aspects of Continuous Figure 1: DevOps Benefits from Vanson Bourne GRID DYNAMICS WHITE PAPER P2

Delivery, including source code management, code quality analysis, continuous integration, deployment automation, management, and testing automation. However, having to select the optimal combination of tools and integrate them together makes the challenge of implementing a Continuous Delivery-based infrastructure even harder. Even when a business can overcome these technological difficulties, its teams implementing Continuous Delivery often invent custom processes from scratch. Not many companies can afford to go through the long experimentation cycles of trial and error required to assure these processes are robust enough to trust critical business operations to. Moreover, such implementations often result in the creation of specialized development and release process knowledge that typically belongs to a small number of key individuals. This exposes businesses to the risk of these individuals leaving the company and taking their knowledge with them. Agile Software Factory key features/concepts To help retailers address these DevOps challenges, Grid Dynamics offers Agile Software Factory (). Agile Software Factory provides a ready-to-use implementation of Continuous Delivery out of the box through selfdeployable, integrated components that create welldefined development and release processes, standards, and best practices. Among the many benefits Agile Software Factory can bring to businesses are: Speed: increases the rate and frequency with which new features can be implemented. Deployments that used to take days can be completed consistently and reliably in less than an hour through complete deployment automation. Consistency: implements proven, standardized processes built upon well-documented standards including branching strategy, application properties management, database schema, and data management. This ensures not only correct usage of tooling but also establishes efficient development and release processes and culture. Visibility: Environment and deployment management portals give teams up-to-date visibility into the status acceptance qa run automatic and manual user acceptance tests development and QA team Defects/Feedback loop release manager Code/Tests Implement code unit tests auto functional tests auto performance tests Code/Tests Built & statically verified package Build & unit testing Functionally verified package Deploy & run automatic functional tests Performance verified package Deploy & run automatic performance tests Release Candidate package Deploy & run user acceptance tests Production Deployment Deploy production Dev Sandbox QA/SIT Performance Staging/UAT Production Foundation: standards & best practices, deployment automation, dynamic s, s and deployments management portal Grid Dynamics Agile Software Factory Team: Implement Agile Software Factory, Manage and improve it, Provide 24x7x365 support Figure 2: Agile Software Factory Process GRID DYNAMICS WHITE PAPER P3

and usage of s. Team always knows how many s they have, what are they being used for, and what version of applications are deployed in each of them. Team can also create new s on demand, destroy s on schedule, and efficiently manage hardware resource utilization with quotas. Flexibility: Dynamic management of cloudbased resources leads to cost savings by creating s when they are needed and destroying them when they are not. Automation: Automated setup of pre-integrated components saves time on initial implementation. Components integration also ensures efficiency of end-to-end processes. processes and best practices With its integrated components, creates a balanced system that implements various best practices and supports customization to meet a business specific needs. The Continuous Delivery process that implements out of the box is shown in Figure 2. implements an assembly pipeline that manages code changes to production deployments reliably and quickly, so ideas transform into revenue faster. Proper functionality of the assembly pipeline is ensured by industryproven best practices: Continuous Integration (CI): CI is the core of. All components and communications between components are built to provide effective continuous integration. Specifically, components implement automated testing and deployment combined into effective pipelines that makes frequent integration of code changes possible while enabling large developers teams to work more effectively and deliver functionality faster. Code change management: Effective code change management is the cornerstone of every Continuous Delivery infrastructure. It is very important to keep code change management simple but at the same time enable parallel development. For example, to minimize the number of merges and reduce merging complexity, implements shared trunk for its branching strategy. Binary artifact management: implements versioned storage of binary artifacts. Every successful build (even of the same version of code) has a corresponding set of binary artifacts stored and versioned. That allows artifacts promotion through all testing s as well as connects testing results to specific builds. Database change management: Consistent application of database migrations across s makes CI-based processes consistent and reliable. As a result, at every moment there is a package consisting of all relevant source code, database scripts, tests, and binaries. Continuous testing: testing is based on test pyramid concepts. To ensure an effective CI pipeline, enforces automation of functional and performance testing using industry standard frameworks. Test automation also significantly reduces the time required to get certified artifacts and enables adoption of Acceptance Test Driven Development. Environment management: Automated provisioning makes it possible to create new s on demand and destroy s on schedule. This practice leads to effective cost management of cloud-based s. Configuration as code: It is very important to manage dependencies between all changeable assets across a project. The tools used to manage dependencies including deployment automation scripts, CI server jobs configuration, DB configuration, application configuration, and source code are therefore stored and versioned. This enables to provide a consistent set of assets at every point of time, a factor critical for reliable Continuous Delivery. Application properties management: Proper application properties management enables effective deployment to various kinds of s. This practice streamlines the application deployment path from the development through test s onto production. implements a hierarchical approach to application properties management, allowing for customization of properties for every type or specific with dynamic assembly during the deployment process. End-to-end visibility: Visibility into feature status is one of the critical parameters of the Continuous Delivery infrastructure, as is immediate access to test results by developers. components like the project management and task tracking system, CI server, and code review server are integrated to provide high visibility into feature status across the entire development, testing, and release lifecycle. GRID DYNAMICS WHITE PAPER P4

Incremental code review: Every completed change of code should be reviewed. Incremental code review illuminates code issues at earlier development stages. This speeds deployment as well as identifies design defects earlier. Every single commit in goes through the code review procedure, thus continuously improving code quality. architecture and infrastructure The architecture is designed to support components integration and best practices. Best practices are implemented via tight integration of tools across all the layers (see Figure 3). components Architecture To provide the infrastructure for all necessary services and best practices, contains a number of thoughtfully selected components. uses only stable versions of components to ensure overall system reliability. is built on top of industry standard components that have been proven invaluable in different aspects of Continuous Delivery. Most of the tools used in are open source, thus significantly reducing the total cost of ownership (TCO) of the infrastructure. The list of major O components includes: Jira: Project management, tasks, and issues tracker. Sonatype Nexus: Artifacts repository manager that supports binary artifacts storage and versioning. Jenkins CI: Extendable open source, continuous integration server. As a pipeline orchestrator, Jenkins automates continuous integration and continuous delivery pipelines consisting of build, deploy, and test stages. SonarQube: Open platform for managing code quality. Gerrit Code Review: Web-based code review system. Facilitates online pre-commit code reviews for projects using the Git version control system. Jasig CAS: Single sign-on service. Selenium Grid: User Interface (UI) testing automation tool. Test automation makes comprehensive CI-based processes possible and enables acceptance testdriven development. Task tracking system Feedback communication services. IM, Email Tasks management and communication Code change management and code review. Gerrit, Git Database management Binary artifact storage Change management Static code analysis CAS CI server CI orchestration Environments and deployments management portal Environment management Deployment automation Deployment automation Tests automation Selenium, Jagger Cloud infrastructure Tests automation Figure 3: Agile Software Factory Architecture GRID DYNAMICS WHITE PAPER P5

Jagger: Performance testing framework that, from the very beginning, was designed to meet the rigorous requirements of continuous performance testing. Qubell: Environments and deployments management portal. Provides control and visibility over s, orchestrates complex provisioning and deployment tasks, and enables run-time dependency management for composite applications. Chef: Deployment automation tool that makes application deployment fast, consistent, and reliable. LiquiBase: Database management tool. can be also customized to work with the tools a company has already implemented and is using. can be customized to support Bamboo for CI; GitHub, GitLab, or SVN for source control; Ansible or Puppet for deployment automation; and GoGrid, VMWare, or Openstack cloud for cloud infrastructure. conclusion components integration To implement all of the best practices listed above, components are integrated into a cohesive system. This integration also supports a consistent user experience and data representation across all tools. For example, while browsing a Jira ticket, a developer can see the links to the Jenkins build history and corresponding binary artifacts. All Jira tasks, Gerrit changes, and Jenkins builds have consistent information. Jenkins is the core element of infrastructure, and most of the other components are integrated with Jenkins using special approaches to integration in each case. ways to customize Best practices implemented in can be used as a starting point for further customization. components such as Qubell, Jenkins, and Jira support customization of management, how pipelines and process are establishment, and tasks and issues tracking. Build, deploy, and test run Jenkins jobs can be adjusted to particular customer projects. Environment management can be adjusted according to the preferred infrastructure as well. The key to success and survival in today s quickly evolving market is agility. Being able to deliver value quickly, reliably, and repeated is essential if businesses are to keep pace with technology. By bringing the reliability of a manufacturing pipe to software development, businesses can have visibility into design processes, avoid undesirable delays, and eliminate defects early in the design cycle when they are less expensive to resolve. By building a structured DevOps culture founded on Continuous Delivery, Agile Software Factory brings consistency, flexibility, and automation to software design while accelerating the rate at which businesses can deliver new features and act on market opportunities. With tight integration of tools across all layers of the development process, Agile Software Factory provides a sound foundation upon which retailers can bring their value to market, reduce TCO, and transform the way they do business. about Grid Dynamics Grid Dynamics is a leading provider of open, scalable, next-generation commerce technology solutions for Tier 1 retail. With in-depth expertise in commerce technologies, wide involvement in the open source community and a modern, global workforce, Grid Dynamics helps great companies gain a sustainable business advantage by implementing and managing solutions in the areas of omnichannel platforms, product search, and continuous delivery. To learn more about Grid Dynamics, find us at www.griddynamics.com or by following us on Twitter @GridDynamics. 4600 Bohannon Dr, Suite 220 Menlo Park, California 94025 650-523-5000 sales@griddynamics.com www.griddynamics.com 2014 Grid Dynamics International, Inc. All rights reserved. Other product names mentioned herein may be trademarks or registered trademarks of their respective companies.