Slides from XebiaLabs' session at Agile SQE 2012: "The Next Level of Agile: DevOps and Continuous Delivery". See http://www.sqe.com/AgileDevPracticesEast/Concurrent/Default.aspx?Date=11/8/2012#AT11
2. Speaker
Andrew Phillips, VP Products, XebiaLabs
Andrew is VP of Products for XebiaLabs, providers of the industry-leading
release automation solution, Deployit. Andrew is a cloud, service delivery
and automation expert and has been part of the shift to more
automated application delivery platforms. Sitting on panels and driving
blog and social media conversations, Andrew regularly contributes to key
trend-defining technology discussions.
3. Our Company. Our Product.
o Headquartered in Boston, Massachusetts
o Global development and support offices in
NL, UK, France and India
Our flagship product, Deployit, is a market-leading
Application Release Automation platform.
Benefits include:
o Reduce development applications costs
o Accelerate application time to market
o Bridge the gap between Development and Operations
4. Agenda
• Agile hits the Delivery Wall
• Continuous Delivery & DevOps
• Agile Automation Landscape: Best Practices
• A Case Study
• Demo
• Q&A
5. Agile: Made for Today’s Delivery Challenge
• Competitive market situation
• IT services key differentiating factor for many industries
• Pressure to get new types of services out to market quickly
• Pressure to get more and more features in existing services
to market
• Adoption curve bears out the significance of Agile
6. The Promise of Agile
• Principle #1 of the Agile Manifesto:
“Our highest priority is
to satisfy the customer through early and
continuous delivery of valuable software.”
agilemanifesto.org/principles.html
7. How Much Delivery?
• Deliver production-ready software at the end of every iteration...
• How many organisations actually deploy this software to production?
• What is the business value of unreleased software?
8. The Delivery Wall
• In practice, many organisations are hitting a “delivery wall”
Unit test Deploy to
Develop Check in Package Smoke Test
Dev
Integration Acceptance Deploy to
Deploy to
Test Test
Deploy to
QA Test Prod Value
9. The Delivery Wall
• In practice, many organisations are hitting a “delivery wall”
Unit test Deploy to
Develop Check in Package Smoke Test
Dev
Integration Acceptance Deploy to
Deploy to
Test Test
Deploy to
QA Test Prod Value
10. The Delivery Wall
• In practice, many organisations are hitting a “delivery wall”
Unit test Deploy to
Develop Check in Package Smoke Test
Dev
Integration Acceptance Deploy to
Deploy to
Test Test
Deploy to
QA Test Prod Value
11. The Delivery Wall
• Wall is often related to increasing release effort and control due to
more complex environments and release management processes
Unit test Deploy to
Develop Check in Package Smoke Test
Dev
Integration Acceptance Deploy to
Deploy to
Test Test
Deploy to
QA Test Prod Value
12. Removing the Wall
• In order to realise principle #1 of the Agile Manifesto, we need to
eliminate The Wall
• Key initiatives: Continuous Delivery & DevOps
• Set deployment to production as the goal
13. Continuous Delivery
• Why stop with continuous code integration and unit testing?
• Build a delivery pipeline!
14. DevOps
• Project teams need to be able to truly take the project from end to end
•Development & Operations competencies and responsibilities shared and
communicated throughout the project lifecycle
Unit test Deploy to
Develop Check in Package Smoke Test
Dev
Integration Acceptance Deploy to
Deploy to
Test Test
Deploy to
QA Test Prod Value
15. Continuous Delivery, DevOps & Automation
• Continuous Delivery & DevOps are processes – really, mindsets
• You can't “do CD” or “do DevOps” just by installing some big toolsuite
• Manual and error-prone processes key part of the bottleneck
•Automation (testing, deployment, environment provisioning etc.)
essential part of the solution picture
16. “The RM Challenge”
•Key challenge: how to combine increased “flow to production”
with standards-based Release Management processes?
• Can our current processes support the flow in their current form?
• Can we automate certain Release Management requirements?
• Can we trust automated Release Management requirements?
17. The Agile Automation Landscape
Dev... ...Ops
Build Integrate Deploy Test Deploy Value
18. The Agile Automation Landscape
Dev...
Build Integrate Deploy to
Deploy Dev Smoke Test
Deploy to
Deploy Test Functional
Test
Deploy to
Deploy QA Acceptance
Test
Go/No go
Deploy to
Deploy Prod
Test Value
...Ops
19. The Agile Automation Landscape
Dev...
Build Integrate Deploy to
Deploy Dev Smoke Test
Continuous Integration Functional
Deploy to
Deploy Test
Test
Deploy to
Deploy QA Acceptance
Test
Go/No go
Deploy to
Deploy Prod
Test Value
Deployment Automated Automated
Automation Provisioning Testing
...Ops
20. The Agile Automation Landscape
Dev...
Build Integrate Deploy to
Deploy Dev Smoke Test
Continuous Integration Functional
Deploy to
Deploy Test
Test
Deploy to
Deploy QA Acceptance
Test
Go/No go
Deploy to
Deploy Prod
Test Value
Deployment Automated Automated
Automation Provisioning Testing
...Ops
21. Technical Elements of the Automation Landscape
•Continuous Integration: building, testing and integrating your
source code and creating a releasable package
22. Technical Elements of the Automation Landscape
•Continuous Integration: building, testing and integrating your
source code and creating a releasable package
•Deployment Automation/Application Release Automation:
distributing the components of the releasable package into your
target environment
23. Technical Elements of the Automation Landscape
•Continuous Integration: building, testing and integrating your
source code and creating a releasable package
•Deployment Automation/Application Release Automation:
distributing the components of the releasable package into your
target environment
Provisioning: Creating and readying the target environment and
•
middleware required by your application
24. Technical Elements of the Automation Landscape
•Continuous Integration: building, testing and integrating your
source code and creating a releasable package
•Deployment Automation/Application Release Automation:
distributing the components of the releasable package into your
target environment
Provisioning: Creating and readying the target environment and
•
middleware required by your application
•Cloud Management: providing the “raw” virtual machine
resources for provisioning
25. Technical Elements of the Automation Landscape
•Continuous Integration: building, testing and integrating your
source code and creating a releasable package
•Deployment Automation/Application Release Automation:
distributing the components of the releasable package into your
target environment
Provisioning: Creating and readying the target environment and
•
middleware required by your application
•Cloud Management: providing the “raw” virtual machine
resources for provisioning
•Automated Testing: verifying your application's functional and
non-functional behaviour
26. Observations
•Proven tools in each area, especially the more development-
centric ones (Continuous Integration, Automated Testing)
27. Observations
•Proven tools in each area, especially the more development-
centric ones (Continuous Integration, Automated Testing)
• Don't look for a Silver Bullet
28. Observations
•Proven tools in each area, especially the more development-
centric ones (Continuous Integration, Automated Testing)
• Don't look for a Silver Bullet
•All automation frameworks can run arbitrary sequences of
commands...
29. Observations
•Proven tools in each area, especially the more development-
centric ones (Continuous Integration, Automated Testing)
• Don't look for a Silver Bullet
•All automation frameworks can run arbitrary sequences of
commands...
•…but focus, design and especially out-of-the-box content/support
of each of the types of tool is quite distinct
30. Observations
•Proven tools in each area, especially the more development-
centric ones (Continuous Integration, Automated Testing)
• Don't look for a Silver Bullet
•All automation frameworks can run arbitrary sequences of
commands...
•…but focus, design and especially out-of-the-box content/support
of each of the types of tool is quite distinct
•Also, you're likely to have one or more of these tool types in
house already
31. Things to Look for #1
Look for widely used products with broad communities
Technically challenging area, so only frequent use can flush
out incompatibilities and bugs
32. Things to Look for #1
Look for widely used products with broad communities
Technically challenging area, so only frequent use can flush
out incompatibilities and bugs
Look for products with a plugin/content ecosystem
Not just for reuse, but also as “cookbooks” or guides
33. Things to Look for #1
Look for widely used products with broad communities
Technically challenging area, so only frequent use can flush
out incompatibilities and bugs
Look for products with a plugin/content ecosystem
Not just for reuse, but also as “cookbooks” or guides
Look for integrations
You want freedom and options in combining these elements
34. Things to Look for #1
Look for widely used products with broad communities
Technically challenging area, so only frequent use can flush
out incompatibilities and bugs
Look for products with a plugin/content ecosystem
Not just for reuse, but also as “cookbooks” or guides
Look for integrations
You want freedom and options in combining these elements
Look for compatible security models
Auditing and control!
35. Things to Look for #1
Look for widely used products with broad communities
Technically challenging area, so only frequent use can flush
out incompatibilities and bugs
Look for products with a plugin/content ecosystem
Not just for reuse, but also as “cookbooks” or guides
Look for integrations
You want freedom and options in combining these elements
Look for compatible security models
Auditing and control!
Watch out for platform support
Far more options for *nix systems that for Windows
36. Things to Look for #2
(Provisioning) Look for support for cloud (de facto) standards
e.g. EC2, OpenStack etc. for your coming public or hybrid cloud
37. Things to Look for #2
(Provisioning) Look for support for cloud (de facto) standards
e.g. EC2, OpenStack etc. for your coming public or hybrid cloud
(Provisioning) Look for support for (de facto) VM standards
e.g. OVF, VMDK etc. for portability of your base images
38. Things to Look for #2
(Provisioning) Look for support for cloud (de facto) standards
e.g. EC2, OpenStack etc. for your coming public or hybrid cloud
(Provisioning) Look for support for (de facto) VM standards
e.g. OVF, VMDK etc. for portability of your base images
(Deployment Automation) Look for support for “vanilla” middleware images
So you can use the standard distributions without having to modify them
e.g. by installing drivers or agents
39. Things to Look for #2
(Provisioning) Look for support for cloud (de facto) standards
e.g. EC2, OpenStack etc. for your coming public or hybrid cloud
(Provisioning) Look for support for (de facto) VM standards
e.g. OVF, VMDK etc. for portability of your base images
(Deployment Automation) Look for support for “vanilla” middleware images
So you can use the standard distributions without having to modify them
e.g. by installing drivers or agents
Look for release management hooks
Validations and updates
40. Things to Look for #2
(Provisioning) Look for support for cloud (de facto) standards
e.g. EC2, OpenStack etc. for your coming public or hybrid cloud
(Provisioning) Look for support for (de facto) VM standards
e.g. OVF, VMDK etc. for portability of your base images
(Deployment Automation) Look for support for “vanilla” middleware images
So you can use the standard distributions without having to modify them
e.g. by installing drivers or agents
Look for release management hooks
Validations and updates
Look for model-based automation
Scalability in changing environment
It's not just about one pipeline!
41. A Case Study: Scenario
• Government agency
• Running on old platform with fading support
• Usage conflicts due to large shared environment
• Unknown or unreproducible configuration state
• Deployments and tests throttled by environment instability
42. A Case Study
• Decision: transition to modern DevOps platform
• Goals
Standard configuration
Standardized provisioning
Standardized deployment
Centralized monitoring
Centralized access control
Virtual environment
Proven technology
43. A Case Study
• Decision: transition to modern DevOps platform
• Goals
Standard configuration
Standardized provisioning
Standardized deployment
Centralized monitoring
Centralized access control
Virtual environment
Proven technology
Note access control!
45. A Case Study: Results
• Significant cost saving to due increased automation and
non-proprietary components
• “private PaaS” deployment frontend
• Eliminated environment availability bottleneck for testing
• Reproducible environment configuration
• Auto-scale capability through monitoring and adaptable
deployment automation
• End-to-end automation
• Ability to verify deployments against Release Management
More information at http://tinyurl.com/7heh5ox
46. Demo
Build
& Deploy to
Dev
Deploy to Test
Quality Build (Tomcat &
MySQL)
Functional Deploy to QA
(JBoss &
Test Oracle)
Performance Deploy to
Tests Prod
48. More Information
Contact info@xebialabs.com for
a 15min walkthrough of deployment automation
in your Agile application landscape
Deployit: www.xebialabs.com/tour
Blog: blog.xebialabs.com
Twitter: @xebialabs
YouTube: youtube.com/xebialabs