Mature agile organizations are introducing continuous delivery as a crucial step to realize their goal of delivering business value rapidly. Andrew Phillips highlights implementation issues about how agile development can fit with enterprise release management policies and governance needs. Andrew outlines proven practices and selection criteria for tools to help you address these issues. Then, he presents a DevOps case study demonstrating the continuous delivery process for building, packaging, deploying, and testing a complex application. Find out about deployment support for server and resource configurations, application binaries, database upgrades and rollbacks, messaging, and enterprise service buses. With the right tools and processes you can develop an open, extensible framework that supports additional services and platforms. Examine how integration with environment provisioning tools such as the open source Puppet tool enables "ready-for-deployment" development and testing environments. Leave with a new understanding of how DevOps opens the door to faster delivery and happier customers.
What Are The Drone Anti-jamming Systems Technology?
The Next Level of Agile: DevOps and Continuous Delivery
1.
AT11
Concurrent Session
11/8/2012 3:45 PM
"The Next Level of Agile:
DevOps and Continuous Delivery"
Presented by:
Andrew Phillips
XebiaLabs Inc.
Brought to you by:
340 Corporate Way, Suite 300, Orange Park, FL 32073
888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
2. Andrew Phillips
XebiaLabs, Inc.
An early believer in the ability of Java to deliver enterprise-grade software, Andrew
Phillips quickly focused on the development of high-throughput, resilient, and scalable
Java EE applications. After working on concurrency and high performance development
for a succession of multinationals, Andrew joined agile specialists Xebia and is now VP
Products for XebiaLabs, providers of the industry-leading release automation solution,
Deployit. A cloud, service delivery, and automation expert, Andrew has been part of the
shift to more automated application delivery platforms. He likes to stay up-to-date with
technical reality by contributing to cutting-edge projects, including Multiverse, the STM
implementation behind Akka, and jclouds, the leading Java cloud library.
4. 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 trenddefining technology discussions.
5. Agenda
•
Agile hits the Delivery Wall
•
Continuous Delivery & DevOps
•
Agile Automation Landscape: Best Practices
•
A Case Study
•
Demo
•
Q&A
6. 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
7. 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
8. 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?
9. The Delivery Wall
•
In practice, many organisations are hitting a “delivery wall”
Develop
Check in
Deploy to
Test
Unit test
Integration
Test
Package
Deploy to QA
Deploy to
Dev
Acceptance
Test
Smoke Test
Deploy to
Prod
Value
10. The Delivery Wall
•
In practice, many organisations are hitting a “delivery wall”
Develop
Check in
Deploy to
Test
Unit test
Integration
Test
Package
Deploy to QA
Deploy to
Dev
Acceptance
Test
Smoke Test
Deploy to
Prod
Value
11. The Delivery Wall
•
In practice, many organisations are hitting a “delivery wall”
Develop
Check in
Deploy to
Test
Unit test
Integration
Test
Package
Deploy to QA
Deploy to
Dev
Acceptance
Test
Smoke Test
Deploy to
Prod
Value
12. The Delivery Wall
•
Wall is often related to increasing release effort and control due to
more complex environments and release management processes
Develop
Check in
Deploy to
Test
Unit test
Integration
Test
Package
Deploy to QA
Deploy to
Dev
Acceptance
Test
Smoke Test
Deploy to
Prod
Value
13. 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
15. 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
•
Develop
Check in
Deploy to
Test
Unit test
Integration
Test
Package
Deploy to QA
Deploy to
Dev
Acceptance
Test
Smoke Test
Deploy to
Prod
Value
16. 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
•
17. “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?
18. The Agile Automation Landscape
Dev...
Build
...Ops
Integrate
Deploy
Test
Deploy
Value
19. 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
Deploy to
Deploy
Prod
Go/No go
Test
Value
...Ops
20. The Agile Automation Landscape
Dev...
Build
Integrate
Continuous Integration
Deploy to
Deploy
Dev
Smoke Test
Deploy to
Deploy
Test
Functional
Test
Deploy to
Deploy
QA
Acceptance
Test
Deploy to
Deploy
Prod
Go/No go
Test
Deployment
Automation
Automated
Provisioning
Automated
Testing
Value
...Ops
21. The Agile Automation Landscape
Dev...
Build
Integrate
Continuous Integration
Deploy to
Deploy
Dev
Smoke Test
Deploy to
Deploy
Test
Functional
Test
Deploy to
Deploy
QA
Acceptance
Test
Deploy to
Deploy
Prod
Go/No go
Test
Deployment
Automation
Automated
Provisioning
Automated
Testing
Value
...Ops
22. Technical Elements of the Automation Landscape
Continuous Integration: building, testing and integrating your
source code and creating a releasable package
•
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
•
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
•
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
•
26. 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
•
27. Observations
Proven tools in each area, especially the more developmentcentric ones (Continuous Integration, Automated Testing)
•
28. Observations
Proven tools in each area, especially the more developmentcentric ones (Continuous Integration, Automated Testing)
•
•
Don't look for a Silver Bullet
29. Observations
Proven tools in each area, especially the more developmentcentric ones (Continuous Integration, Automated Testing)
•
•
Don't look for a Silver Bullet
All automation frameworks can run arbitrary sequences of
commands...
•
30. Observations
Proven tools in each area, especially the more developmentcentric 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
•
31. Observations
Proven tools in each area, especially the more developmentcentric 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
•
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
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
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
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!
36. 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
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
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
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
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
41. 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!
42. 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
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
44. 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!
46. 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
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