SlideShare a Scribd company logo
1 of 44
Download to read offline
Presented by :
Road to CD at Constant
Contact
Increasing Velocity
1
Agenda
• Life Before Continuous Delivery
• Discovering and Implementing Continuous
Delivery
• Refining the Flow
• Working with Continuous Integration/Delivery
• Evolving Continuous Delivery
2
Quick Overview of Engineering at
Constant Contact
3
Engineering
• About 15-18 engineering teams each with an
average size of 8-12 engineers
• Typical ratio of 1 Quality Engineer per 2-3
Software Engineers
• Teams function as either Feature teams, Platform
teams or a combination of both
4
Engineering
• Distribution includes:
• Waltham, MA (Head Office)
• Tribeca, NY
• Battery Park, NY
• San Francisco, CA
• Boca Raton, FL
• Loveland, CO
5
Life Before CD
6
Life Before CD
• Weekly deploys
• Build pipelines owned and operated by
Engineering Services
• All deploys had to go through a request and
queue process
• Progressing through 5 different environments
• Development, Functional, Load, Stage,
Production
7
Life Before CD
• Engineers coding large units of work in the
Development Environment
• Code was then deployed to the Functional
environment
• Testing implemented and executed by the Quality
Engineers in the Functional testing Environment
• Integration testing may happen in the Functional
or Load Testing Environment
• Once all tested code progressed to the Stage
Environment
8
9
Backlog
In
Development
Ready for Dev
Ready for
Validation
In
Validation
Ready for
Deploy
Deployed
10
Development LoadFunctional Stage Production
30%
Stable
80%
Stable
90%
Stable
99%
Stable
99%
Stable
Life Before CD
• Visibility on what was being deployed was very
general
• We knew work was going out but
troubleshooting issues tended to be tricky due
to large commits
• Kanban SDLC
• Multitasking was a big thing
11
Discovering and Implementing
Continuous Delivery
12
The Big Question
13
How
do we start?
Where
What is everyone else doing?
• We first looked at how other teams had
approached CD
14
New York, NY Office
• Pre-emptive CD
15
Waltham, MA Office
• Integrated CD
16
We set goals!
• Development teams own their applications
• Build and deploy through to production
• Deliver quality code minimising defects through
improved test coverage
• Increase velocity by 20% by the end of 2013,
another 50% by the end of 2014
• Direct to production deploys by the end of 2014
17
We formed a CD Team
• Main body of governance for CD
• Core development and assistance of integrations
• Goto team for anything CD
• Consisted of:
• Product Owner
• Dev Manager
• Architect
• QE
• Engineering was utilised form the team adopting
CD
18
Planning
• Key to success in implementing CD
• Where are you deploying?
• What are the steps to a successful deploy?
• What are the effects of one event to another?
• How will engineers engage with CD?
• How will this affect existing product work?
• What are the milestones you want to deliver to
a team?
• Comes even before thinking of tooling
19
The Approach
• Convert to a single-branch model
• Hard version all artefacts (produced and
consumed)
• Harden test coverage
• Set up the skeleton build jobs
• Simple Checkout -> Build -> Unit Test ->
Publish -> Deploy Pipeline
• Deploy to 1 environment only then backfill
20
The Approach
• We didn’t want to manage multiple environments
any more just 1 environment!
• Implement the practice of Feature Switches
• Coach the Product owners how to write User
Stories
21
Working with Continuous Delivery
22
Technology Stack
• Jenkins
• Open Stack (New)
• LDAP
• Puppet
• GitHub
• Artifactory (New)
23
Single Branch Model
24
Release
Feature 1
Feature 2
Single Branch Model
25
Release
Feature 1
Feature 2
Build Validation
Single Branch Model
26
Release
Feature 1
Feature 2
Pull Request Validation
Build Validation
Integration Testing
• Whole environment configured to execute
Integration testing
• Separate Jenkins Server
• Separate OpenStack Group
• Owned by the QE team
27
28
Development LoadFunctional Stage Production
CD Deploy
Manual
Deploy
Manual
Deploy
Manual
Deploy
Manual
Deploy
29
Development LoadFunctional Stage Production
CD Deploy
Backfill
Manual
Deploy
Manual
Deploy
Manual
Deploy
1 OS VM
30
Development LoadFunctional Stage Production
CD Deploy
Backfill
Manual
Deploy
Manual
Deploy
Backfill
1 OS VM 2 OS
VMs
31
Development LoadFunctional Stage Production
CD Deploy
Backfill
Push Button
Deploy
Backfill Backfill
30%
Stable
80%
Stable
90%
Stable
99%
Stable
99%
Stable
1 OS VM 2 OS
VMs
4 OS
VMs
32
Development LoadFunctional Stage Production
CD Deploy
Backfill
Push Button
Deploy
Backfill Backfill
30%
Stable
80%
Stable
90%
Stable
99%
Stable
99%
Stable
1 OS VM 2 OS
VMs
4 OS
VMs
6 OS
VMs
Refining the Flow
33
Automating Servers
• Ensure that domains are properly configured
• Setting up and pulling down instances in a
coordinated fashion
• Attaching to the correct environment
34
Monitoring & Alerts
• Jenkins Job health plugin
• Healthcheck dashboard
• Splunk Logging
• Nagios
35
Results of First Deliverable
• We had direct to Load deploys happening with
backfill
• Test coverage up
• New SDLC with QEs engaging at the beginning
of the flow, not waiting for engineers to complete
work
• New way to view the health of the system
through monitoring
• Base skeleton workflow that would be used to
build new pipelines
36
Discoveries
• There is no main entry point when starting CD
• Planning is crucial
• Your SDLC will most likely change
• Monitoring is key to knowing your progress
• Educating the users of the system is also
paramount
• Everyone is involved with CD
37
Discoveries
• CD is evolutionary
• It will become part of your projects, not a
separate project
• It will help your velocity just not right away
• Don’t be afraid to innovate
38
Working with CD
39
SDLC
• Scaled Agile Framework
• Initially taken from v1.0
• More recently v3.0
• Had to change
• Epics -> Features -> Stories (-> Tasks)
40
SDLC
• Needed better tracking of what was happening
now
• Velocity increased
• A new development programme had to be put
together
• Moved from Kanban to Scrum
41
SDLC
• Introduced 3 flows in Jira:
• Epic Flow
• Feature Flow
• Scrum/Story Flow
42
Evolving CD
43
2015
• Examine the gaps and address them
• Better integration with GitHub, Jenkins and Jira
• Improve reporting and Release Notes
• Try and automate the whole process from
changing a Jira Ticket status to building out a
whole environment
44

More Related Content

What's hot

IP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryIP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryMandi Walls
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April MeetupShweta Sadawarte
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationDBmaestro - Database DevOps
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOpsTechWell
 
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next
 
Private Cloud Deployment Automation with XebiaLabs and OpenShift
Private Cloud Deployment Automation with XebiaLabs and OpenShiftPrivate Cloud Deployment Automation with XebiaLabs and OpenShift
Private Cloud Deployment Automation with XebiaLabs and OpenShiftXebiaLabs
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in PracticeDerek Chen
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsSeaLights
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsXebiaLabs
 
Verification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationVerification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationRogue Wave Software
 
From Iterative to Continuous Delivery, PNSQC 2014
From Iterative to Continuous Delivery, PNSQC 2014From Iterative to Continuous Delivery, PNSQC 2014
From Iterative to Continuous Delivery, PNSQC 2014John Ruberto
 
Unlocking Faster Product Development Cycles
Unlocking Faster Product Development CyclesUnlocking Faster Product Development Cycles
Unlocking Faster Product Development CyclesPerforce
 
Predictability at Scale
Predictability at ScalePredictability at Scale
Predictability at ScalePerforce
 

What's hot (20)

Dev ops
Dev opsDev ops
Dev ops
 
Test Process in Agile vs Waterfall
Test Process in Agile vs WaterfallTest Process in Agile vs Waterfall
Test Process in Agile vs Waterfall
 
IP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous DeliveryIP Expo Nordic: Successful Practices for Continuous Delivery
IP Expo Nordic: Successful Practices for Continuous Delivery
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April Meetup
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
 
CD
CDCD
CD
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
A True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOpsA True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOps
 
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next - Scrum Development Process Overview
STX Next - Scrum Development Process Overview
 
Private Cloud Deployment Automation with XebiaLabs and OpenShift
Private Cloud Deployment Automation with XebiaLabs and OpenShiftPrivate Cloud Deployment Automation with XebiaLabs and OpenShift
Private Cloud Deployment Automation with XebiaLabs and OpenShift
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOps
 
Verification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationVerification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integration
 
From Iterative to Continuous Delivery, PNSQC 2014
From Iterative to Continuous Delivery, PNSQC 2014From Iterative to Continuous Delivery, PNSQC 2014
From Iterative to Continuous Delivery, PNSQC 2014
 
Unlocking Faster Product Development Cycles
Unlocking Faster Product Development CyclesUnlocking Faster Product Development Cycles
Unlocking Faster Product Development Cycles
 
Predictability at Scale
Predictability at ScalePredictability at Scale
Predictability at Scale
 

Viewers also liked

Redesigning
RedesigningRedesigning
Redesigninghimio
 
Automated testing san francisco oct 2013
Automated testing san francisco oct 2013Automated testing san francisco oct 2013
Automated testing san francisco oct 2013Solano Labs
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringSolano Labs
 
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...Perforce
 

Viewers also liked (6)

My self
My selfMy self
My self
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Redesigning
RedesigningRedesigning
Redesigning
 
Automated testing san francisco oct 2013
Automated testing san francisco oct 2013Automated testing san francisco oct 2013
Automated testing san francisco oct 2013
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
 

Similar to Constant Contact SF's Road to CD

2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysosloJon Arild Tørresdal
 
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSoftware Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSeniorStoryteller
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro - Database DevOps
 
Building a Professional SDLC
Building a Professional SDLCBuilding a Professional SDLC
Building a Professional SDLCMichael Werneburg
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016w2fong
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsRajnish Chauhan
 
The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinC4Media
 
Agnostic Continuous Delivery
Agnostic Continuous DeliveryAgnostic Continuous Delivery
Agnostic Continuous DeliveryHervé Leclerc
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsIBM UrbanCode Products
 
Continuous integrations - Basics
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - BasicsBarış İNANÇ
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps_Fest
 
Mastering Complex Application Deployments
Mastering Complex Application DeploymentsMastering Complex Application Deployments
Mastering Complex Application DeploymentsIBM UrbanCode Products
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous XBrent Pabst
 
Geek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We TrustGeek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We TrustIDERA Software
 
Prepare the sled in summer and project release at its beginning
Prepare the sled in summer and project release at its beginningPrepare the sled in summer and project release at its beginning
Prepare the sled in summer and project release at its beginningVadym Fedorov
 
Leveraging DevOps Principles for Release and Deploy
Leveraging DevOps Principles for Release and DeployLeveraging DevOps Principles for Release and Deploy
Leveraging DevOps Principles for Release and DeploySerena Software
 

Similar to Constant Contact SF's Road to CD (20)

2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
 
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOpsSoftware Supply Chain Automation Removes Roadblocks to Rugged DevOps
Software Supply Chain Automation Removes Roadblocks to Rugged DevOps
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Building a Professional SDLC
Building a Professional SDLCBuilding a Professional SDLC
Building a Professional SDLC
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
In (database) automation we trust
In (database) automation we trustIn (database) automation we trust
In (database) automation we trust
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOps
 
The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ Linkedin
 
Agnostic Continuous Delivery
Agnostic Continuous DeliveryAgnostic Continuous Delivery
Agnostic Continuous Delivery
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOps
 
Continuous integrations - Basics
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - Basics
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Day 1.pptx
Day 1.pptxDay 1.pptx
Day 1.pptx
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
 
Mastering Complex Application Deployments
Mastering Complex Application DeploymentsMastering Complex Application Deployments
Mastering Complex Application Deployments
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous X
 
Geek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We TrustGeek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We Trust
 
Prepare the sled in summer and project release at its beginning
Prepare the sled in summer and project release at its beginningPrepare the sled in summer and project release at its beginning
Prepare the sled in summer and project release at its beginning
 
Leveraging DevOps Principles for Release and Deploy
Leveraging DevOps Principles for Release and DeployLeveraging DevOps Principles for Release and Deploy
Leveraging DevOps Principles for Release and Deploy
 

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Constant Contact SF's Road to CD

  • 1. Presented by : Road to CD at Constant Contact Increasing Velocity 1
  • 2. Agenda • Life Before Continuous Delivery • Discovering and Implementing Continuous Delivery • Refining the Flow • Working with Continuous Integration/Delivery • Evolving Continuous Delivery 2
  • 3. Quick Overview of Engineering at Constant Contact 3
  • 4. Engineering • About 15-18 engineering teams each with an average size of 8-12 engineers • Typical ratio of 1 Quality Engineer per 2-3 Software Engineers • Teams function as either Feature teams, Platform teams or a combination of both 4
  • 5. Engineering • Distribution includes: • Waltham, MA (Head Office) • Tribeca, NY • Battery Park, NY • San Francisco, CA • Boca Raton, FL • Loveland, CO 5
  • 7. Life Before CD • Weekly deploys • Build pipelines owned and operated by Engineering Services • All deploys had to go through a request and queue process • Progressing through 5 different environments • Development, Functional, Load, Stage, Production 7
  • 8. Life Before CD • Engineers coding large units of work in the Development Environment • Code was then deployed to the Functional environment • Testing implemented and executed by the Quality Engineers in the Functional testing Environment • Integration testing may happen in the Functional or Load Testing Environment • Once all tested code progressed to the Stage Environment 8
  • 9. 9 Backlog In Development Ready for Dev Ready for Validation In Validation Ready for Deploy Deployed
  • 10. 10 Development LoadFunctional Stage Production 30% Stable 80% Stable 90% Stable 99% Stable 99% Stable
  • 11. Life Before CD • Visibility on what was being deployed was very general • We knew work was going out but troubleshooting issues tended to be tricky due to large commits • Kanban SDLC • Multitasking was a big thing 11
  • 13. The Big Question 13 How do we start? Where
  • 14. What is everyone else doing? • We first looked at how other teams had approached CD 14
  • 15. New York, NY Office • Pre-emptive CD 15
  • 16. Waltham, MA Office • Integrated CD 16
  • 17. We set goals! • Development teams own their applications • Build and deploy through to production • Deliver quality code minimising defects through improved test coverage • Increase velocity by 20% by the end of 2013, another 50% by the end of 2014 • Direct to production deploys by the end of 2014 17
  • 18. We formed a CD Team • Main body of governance for CD • Core development and assistance of integrations • Goto team for anything CD • Consisted of: • Product Owner • Dev Manager • Architect • QE • Engineering was utilised form the team adopting CD 18
  • 19. Planning • Key to success in implementing CD • Where are you deploying? • What are the steps to a successful deploy? • What are the effects of one event to another? • How will engineers engage with CD? • How will this affect existing product work? • What are the milestones you want to deliver to a team? • Comes even before thinking of tooling 19
  • 20. The Approach • Convert to a single-branch model • Hard version all artefacts (produced and consumed) • Harden test coverage • Set up the skeleton build jobs • Simple Checkout -> Build -> Unit Test -> Publish -> Deploy Pipeline • Deploy to 1 environment only then backfill 20
  • 21. The Approach • We didn’t want to manage multiple environments any more just 1 environment! • Implement the practice of Feature Switches • Coach the Product owners how to write User Stories 21
  • 22. Working with Continuous Delivery 22
  • 23. Technology Stack • Jenkins • Open Stack (New) • LDAP • Puppet • GitHub • Artifactory (New) 23
  • 25. Single Branch Model 25 Release Feature 1 Feature 2 Build Validation
  • 26. Single Branch Model 26 Release Feature 1 Feature 2 Pull Request Validation Build Validation
  • 27. Integration Testing • Whole environment configured to execute Integration testing • Separate Jenkins Server • Separate OpenStack Group • Owned by the QE team 27
  • 28. 28 Development LoadFunctional Stage Production CD Deploy Manual Deploy Manual Deploy Manual Deploy Manual Deploy
  • 29. 29 Development LoadFunctional Stage Production CD Deploy Backfill Manual Deploy Manual Deploy Manual Deploy 1 OS VM
  • 30. 30 Development LoadFunctional Stage Production CD Deploy Backfill Manual Deploy Manual Deploy Backfill 1 OS VM 2 OS VMs
  • 31. 31 Development LoadFunctional Stage Production CD Deploy Backfill Push Button Deploy Backfill Backfill 30% Stable 80% Stable 90% Stable 99% Stable 99% Stable 1 OS VM 2 OS VMs 4 OS VMs
  • 32. 32 Development LoadFunctional Stage Production CD Deploy Backfill Push Button Deploy Backfill Backfill 30% Stable 80% Stable 90% Stable 99% Stable 99% Stable 1 OS VM 2 OS VMs 4 OS VMs 6 OS VMs
  • 34. Automating Servers • Ensure that domains are properly configured • Setting up and pulling down instances in a coordinated fashion • Attaching to the correct environment 34
  • 35. Monitoring & Alerts • Jenkins Job health plugin • Healthcheck dashboard • Splunk Logging • Nagios 35
  • 36. Results of First Deliverable • We had direct to Load deploys happening with backfill • Test coverage up • New SDLC with QEs engaging at the beginning of the flow, not waiting for engineers to complete work • New way to view the health of the system through monitoring • Base skeleton workflow that would be used to build new pipelines 36
  • 37. Discoveries • There is no main entry point when starting CD • Planning is crucial • Your SDLC will most likely change • Monitoring is key to knowing your progress • Educating the users of the system is also paramount • Everyone is involved with CD 37
  • 38. Discoveries • CD is evolutionary • It will become part of your projects, not a separate project • It will help your velocity just not right away • Don’t be afraid to innovate 38
  • 40. SDLC • Scaled Agile Framework • Initially taken from v1.0 • More recently v3.0 • Had to change • Epics -> Features -> Stories (-> Tasks) 40
  • 41. SDLC • Needed better tracking of what was happening now • Velocity increased • A new development programme had to be put together • Moved from Kanban to Scrum 41
  • 42. SDLC • Introduced 3 flows in Jira: • Epic Flow • Feature Flow • Scrum/Story Flow 42
  • 44. 2015 • Examine the gaps and address them • Better integration with GitHub, Jenkins and Jira • Improve reporting and Release Notes • Try and automate the whole process from changing a Jira Ticket status to building out a whole environment 44