2. Who am I and what do I do?
Sunil Mavadia
Manager – Deployment and Environment Management
smavadia@digitalglobe.com
•
•
Manage all the aspects of software deployment of through the Dev,
Test and Production Systems at DG
Manage the environments/systems from Dev through to
Production.
DigitalGlobe Proprietary and Business Confidential
2
3. What does DigitalGlobe do?
•
DigitalGlobe owns and operates the most agile and sophisticated
constellation of commercial earth imaging satellites in the world.
•
With over 4 billion square kilometers in our archive and growing,
DigitalGlobe is the commercial imagery content leader.
•
DigitalGlobe supports the causes closest to our hearts, while
fostering the growth of the next generation of geospatial
technology professionals.
•
Industries: Government, Defense, Location Based Services, Mining,
Natural Resources and many others.
DigitalGlobe Proprietary and Business Confidential
3
4. DigitalGlobe – Seeing a better world
DigitalGlobe Proprietary and Business Confidential
4
5. Agenda
Objective of Continuous Delivery at DG
• DG’s Software Development Environment
• Our challenges
• What did we do?
•
DigitalGlobe Proprietary and Business Confidential
5
6. Objective of Continuous Delivery
Our goal is to reduce the amount of resources it takes
to deploy large releases by reducing downtime and increasing the
system availability, through the use of Deployit and full automation
of the deployment to our ground systems by the end of 2014.
DigitalGlobe Proprietary and Business Confidential
6
7. Our Software Development Environment
Over 100 Developers distributed around the Globe
• Large Data Center footprints
• Dispersed IT Infrastructure
• Creating local IaaS and also currently using AWS
• Over 100 Internal Applications, over 20 COTS
• Agile Development Methodology
•
-
Bi-weekly sprints
Twice a week deployments to Test
Once a week to production.
Once a month Major updates
Once a quarter Major releases
DigitalGlobe Proprietary and Business Confidential
7
9. Our Software Delivery Stack
Jenkins
DigitalGlobe Proprietary and Business Confidential
9
10. Our Challenges
We are always on fire!!!!!
DigitalGlobe Proprietary and Business Confidential
10
11. Building a business case for Continuous Delivery
•
What are your major pain points?
- Ours were:
- Extended (majorly extended) deployment times. Not hours, but days.
- Extreme use of specialized resources (Dev, CM, IT)
- All hands on deck.
- Unreliable deployments, 100% of the time
- Something was bound to break, every time.
-
Error prone delivery of software. Lower Quality
Less than 40% automation
Non-standard delivery of software across the Enterprise
Multiple production environments enhanced the complexity factor multiple times
over
IDENTIFY YOUR MAJOR PAIN POINTS UPFRONT. DON’T BOIL THE OCEAN.
DigitalGlobe Proprietary and Business Confidential
11
12. Building a business case for Continuous Delivery
•
So why Continuous Delivery?
- Be more agile. Not reactive to market changes
- Reduce deployment times by factors of days and hours
- Improve the reliability and quality of deployments
- 99% uptime on systems
- No downtime on applications
- Improve the process and mature the services that provide the automated
deployment capabilities
- And finally…cost reduction
- Try to get to one shoe size fits all……well…as much as possible.
DigitalGlobe Proprietary and Business Confidential
12
13. Key steps to ensure successful implementation
Don’t rock the boat if you don’t have to
• Integrate, don’t disintegrate
• Get buy-in from the top
•
- Grassroots implementation of Continuous Delivery is a start, but until you get
full buy-in from the top brass, it is difficult.
•
•
Baby Steps – don’t bite off more than you can chew
Keep track of your metrics
DigitalGlobe Proprietary and Business Confidential
13
14. So how did we do this?
•
Standardize the environments.
- All environments should look alike.
Dev
Environment
=
Test
Environment
=
Staging
Environment
=
Production
Environment
- Standardize the tools across all dev teams:
-
Subversion
Jenkins
Puppet
ANT/Maven
DB Update tools eg: Liquibase
DigitalGlobe Proprietary and Business Confidential
14
15. Reduce the build time dependencies
?
Wanna see something scary?
DigitalGlobe Proprietary and Business Confidential
15
17. Critical measurements to ensure the continual
improvement of software delivery
•
Efficiency
- We want to make sure that the application deployment was efficient.
•
Quality
- Moving code through from Dev Test Production in like environments
using the same methods or tools (Deployit) ensures quality.
•
Timeliness
- The same approach to all deployments ensures that it will take the same
amount of time to complete a deployment, every time.
•
Maturity
- Process by which code is deployed is consistent and thus, constantly maturing.
DigitalGlobe Proprietary and Business Confidential
18. Our Initiative
Started Deployit Pilot in October 2013
• Testing Deployit it for a year prior to purchase
• We have tested a homegrown solution using Jenkins, Puppet etc.
•
- No database capabilities made it impossible to do full upgrade
- Now using Liquibase in conjunction with Deployit
DigitalGlobe Proprietary and Business Confidential
18
19. DGN Beta & OGC Environment
2013.05
2014.01
Automation Tools
2014.02
DGN Beta
F5 Rules
iControl & Deployit
Selected Prod. Environ.
Code
Jenkins & Deployit
Selected Prod. Environ.
Configs
Jenkins & Deployit
Selected Prod. Environ.
DB
Selected Prod. Environ.
DGN Beta
DGN Beta
Define DB Deployment
Automation (MMF1492)
DGN Beta
Selected Prod. Environ.
MMF1625
- Implement Config Autom. - Bi-weekly to DGN Beta
- Intro. Feature Toggle
- Standing up DGN Beta
- Debug Depl. Autom.
- Establish Confidence
- Deployment Metrics
-
Cont. Bi-wkl DGN β
Deploy to Patch
First Prod. Deploy
Plan for BTS (C300)
Liquibase & Deployit
Tomcat Cont.
Deployit
3rd Party SW
(e.g. GDAL)
Puppet
OS + Patches
Puppet
Deployit to trigger Puppet?
Simplified System Stack
DigitalGlobe Proprietary and Business Confidential
19
Each Dev, Test environment has over 200 VM’s. Production env is over 700 VM’s.Broken into Commercial and Secure partsHave to maintain the same deployment infrastructure on both sides.Complexity is increased when we add the Customer facing applications
DG is a an Agile shop. With over 100 developers working on every facet of producing high quality images. With current market changes related to the Industry, we need to become less reactive and more proactive by pushing out quality code, on time, and frequently to meet customer demand.Our releases would take days, literally. Shut down the entire “factory” before doing an update. This is not only costly from a business perspective, but very disruptive.By being able to repeat deployments through environments, the reliability of these deployments increases exponentially as you get closer to production.Improves the process by providing a very stable system that is consistent and reliable.Finally – reduce cost by reducing the number of people working on the deployments of major releasesOne shoe fits all……try and get as much of the process and applications or systems into the CD process.
Assimilate as much as possible. Don’t reinvent the wheel for things that