Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment

Similar documents
Software Development. Overview.

Optimizing Your Software Process

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Continuous Delivery of Software

Continuous Delivery for Force.com

Software configuration management

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

DevOps Stack. Reid Holmes. Chris Parnin:

Software Engineering I (02161)

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

Theme 1 Software Processes. Software Configuration Management

Fundamentals of Continuous Integration

CoDe:U Git Flow - a Continuous Delivery Approach

Continuous Integration

Continuous Delivery. Ariel Alonso, IPC

The Value of Adopting Agile & CI for OBIEE

Continuous Integration. CSC 440: Software Engineering Slide #1

Achieving Continuous Integration with Drupal

When is Agile the Best Project Management Method? Lana Tylka

Applying Agile Project Management to a Customized Moodle Implementation

Request for Offers (RFO) Addendum

Bridging the Gap Between Acceptance Criteria and Definition of Done

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery. manage development build deploy / release

Agile Delivery Framework Automation & Deployment With Puppet

Solving the Software Quality Challenges of Agile Development

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Getting Started. UC Santa Barbara Setup public repository (GitHub, Bitbucket) Identify workflow:

CloudBees Continuous Integration and Test with Appvance Enterprise August 28, 2013 Frank Cohen, (408)

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

serena.com Best Practice for Parallel Development using Serena Dimensions

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

Continuous Delivery / Continuous Deployment How to automate your Deliveries. Bernhard Keprt

Continuous Integration on System z

Gitflow process. Adapt Learning: Gitflow process. Document control

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

SMZ. SocialMedia. Z olutions

Security Automation in Agile SDLC Real World Cases

Continuous Integration

CREATING AN INTERNAL CLOUD: EPAM DEVELOPS A CUSTOM SOLUTION. Time-consuming infrastructure configuration and maintenance

Best Overall Use of Technology. Jaspersoft

Software Configuration Management Best Practices

IT Home 2015 DevOps 研 討 會

SOFTWARE DEVELOPMENT BASICS SED

Improving your Drupal Development workflow with Continuous Integration

Table of contents. Enterprise Resource Planning (ERP) functional testing best practices: Ten steps to ERP systems reliability

Enabling Continuous Delivery for Java Projects with Oracle Cloud Services (Oracle PaaS) Siva Rama Krishna Oracle India

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

Palantir.net presents Git

DevOps Course Content

Change Management Best Practices

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Source Control Systems

Introduction to DevOps on AWS

DevOps to Enterprise Agile

Adopting Agile Approaches for the Enterprise

Introduction to Agile and Scrum

Hail or Fail: The Right Way. to Override Core. Mark Shust ecommerce Developer Metrics Marketing

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Building Value with Continuous Integration

Centralized Secure Vault with Serena Dimensions CM

Introduction to Version Control with Git

Axe in the Agile World

Releasing High Quality Applications More Quickly with vrealize Code Stream

Scaling Agile Is Hard, Here s How You Do It!

How To Achieve Continuous Delivery

Requirements Management im Kontext von DevOps

Tools and Methods to Address Complexity at Scale

D83167 Oracle Data Integrator 12c: Integration and Administration

Automation and DevOps Best Practices. Rob Hirschfeld, Dell Matt Ray, Opscode

Rally Integration with BMC Remedy through Kovair Omnibus Kovair Software, Inc.

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Case Study on Critical Success Factors of Running Scrum *

HP Customer Support. Remote Server Management. an Outtasking Solution Outline

References: Hi, License: Feel free to share these questions with anyone, but please do not modify them or remove this message. Enjoy the questions!

DevOps. Jesse Pai Robert Monical 8/14/2015

White Paper Take Control of Datacenter Infrastructure

OBIEE Deployment & Change Management

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Continuous Integration: A case study

Git Branching for Continuous Delivery

Software Configuration Management. Context. Learning Objectives

Continuous Integration (CI)

Application Security Testing as a Foundation for Secure DevOps

Building Value with Continuous Integration

An Introduction to Mercurial Version Control Software

Software Configuration Management and Continuous Integration

HP ALM11 & MS VS/TFS2010

Transcription:

Understanding Code Management in a Multi-Vendor Environment Examples of code management in a multi-team environment

About this Presentation This presentation was prepared as part of the support materials for the IAE Industry Day on Transparency on May 13, 2014. Purpose is to provide a very basic outline of how code management will work within the new IAE environment where there will be multiple concurrent development teams operating. Assumes sprints are aligned across development teams. 2

Code Management Objectives Over and above the basic need to provide a versioned, secure, managed code repository, the particular goal of Code Management within IAE are to ensure that: Developers can can quickly and reliable access to code The program can respond to emergency changes while minimizing risk of introducing defects The public and community can see code throughout development (with some limitations) DevOps and Continuous Integration operations (CI) can execute to integration code from multiple independent development teams Deployment to production is controlled and minimizes configuration-code failures Note: we are not talking about the Continuous Integration activities around Code Management here. 3

Some Common Scenarios Scenarios: The DevOps/CI team creates daily, unstable builds by merging changes from multiple development teams A development team starts from a stable release and then pulls down daily unstable releases as they progress through a sprint A release candidate is created by DevOps/CI team A production version is created from a release candidate An urgent patch is applied to the current release 4

The Complete Picture The pictures shows all the scenarios in one slide. The graphic uses the conventions of the Git user guide available at http://git-scm.com/documentation 5

How to Interpret the Pictures Key Terms: Version Tag Commit Depends Upon All this happens within the common code repository. Development teams and individual developers will have their own, replicated copy of the repository. 6

One Note For each of these scenarios, we are going to show you what is happening to the code. When we create a new release there are lots of activities that go with that including multiple layers of testing and acceptance; we are not showing all these activities. But understanding how the code will be managed helps us define the activities that are not shown and who will be responsible for them. 7

Daily Integration with Unstable Builds 3. Through the sprint DevOps merges pull requests from all the teams, completes integration testing and tags successful builds 1. At the beginning of a sprint, the development team copies the current stable release and begins work 2. Pull requests are created by the dev team for each completed user story (or defect) 8

Providing Daily Builds to Application Development Teams 1. At the beginning of the sprint the development team copies the current stable release and begins work 2. The dev team pulls tagged builds from the CI branch to allow them to constantly work with the most recent code from all the development teams 9

Creating a Release Candidate 2. Patches made in production are also integrated with the CI branch 1. DevOps merges all the PSIs, runs automated tests and completes the integration of all the PSIs into a single release candidate 3. The release candidate is tagged. PSI: Potentially shippable increment. 10

Designating a Release Candidate as a New Production Version 1. After a go/no go decision is made by the government the Release Candidate is tagged as a production version and is available to be deployed into the production environment 11

Applying an Emergency Patch to Production 1. Outside the routine release schedule, an urgent patch is prepared and a new production version is made available to deploy. In this particular example, the detail of how and where the patch is created that is applied to produce v1.2.1 is not shown. In reality, there would be the same commit, pull requests and integration activity for an emergency patch. The intention is to show how out-of-band changes to production can later be integrated into the main branch. 12

Bonus: Moving Code to Public Repository The public repository, at a minimum, contains stable or nearly stable code including Potentially Shippable Increments (PSIs) 1. Code and code related artifacts for each production versions of IAE will be made available in a public repository. 2. As well as each public release, each integrated Release Candidate will be made available in the public repository. 13