Implemen'ng	
  Con'nuous	
  Delivery	
  with	
  
Enterprise	
  Middleware	
  
Sriram	
  Narayan,	
  ThoughtWorks	
  Studio...
•  Product principal at ThoughtWorks Studios
•  Owner of Go’s deployment stream of work
•  Ex-member of ThoughtWorks’ Tech...
•  VP Products for XebiaLabs
•  Lots of enterprise software development on high-
performance systems
•  Been on both sides...
•  Introduction to ThoughtWorks and XebiaLabs
•  Continuous Delivery in 60s
•  Continuous Delivery in the Enterprise
•  Fr...
•  Questions?
•  Submit via the control panel at
any time during the presentation
Housekeeping
Deployit is our market-leading Application Release
Automation product.
o  Headquartered in Boston, Massachusetts
o  Global...
About ThoughtWorks Studios
Continuous delivery is
an approach to delivering software that
reduces the cost, time, and risk
of delivering incremental ...
o  Your software is releasable throughout its lifecycle
o  Your team prioritizes keeping the software releasable
over work...
Continuous Delivery isn’t just Automation
o  Org design
o  Devops – CAMS
o  Culture, automation, measurement, sharing
o  P...
o  Complex projects and applications consisting of many
components delivered by multiple teams
o  Complex dependency trees...
o  Deliverable: 2 EAR files with 2 WAR files each
o  One of the WAR files built by a different team
o  Also database chang...
STEPS
1.  Compile all changed WAR projects, take latest artifact for
others
2.  Compile EAR projects
3.  Run unit tests
4....
Build WAR1 Build WAR2 Build WAR3
Retrieve
WAR4
Build EAR1
Build EAR2
Code
quality
build1
Code
quality
build2
Package
Deplo...
o  “Straight” translation of the release plan
o  All steps happen serially
o  Even though not all steps depend on the prev...
Build
comp1
Build
comp2
Build
comp3
Retrieve
comp4
Common
frmwk1
Common
frmwk 2
Pkg svc1
Pkg app1
Deploy to FT
with
Deploy...
o  Optimized pipeline taking into account component
dependencies
o  From 18 to 8 stages: 125% speedup!
o  No more manual t...
Enterprise Pipeline: Value Stream
Enterprise Pipeline: Package as Material
Enterprise Pipeline: Environments, Configuration
Enterprise Pipeline: Permit, Trace and Audit
o  Manual, API or timer trigger
o  Re-trigger older revision with
different c...
Enterprise Pipeline: Build Orchestration
Enterprise Pipeline: Deployment Orchestration
Enterprise Deployments: No More Scripting
Enterprise Deployments: Full Stack
Enterprise Deployments: Multi-Topology
Enterprise Deployments: On-demand Environments
Enterprise Deployments: Config Drift Analysis
o  Intro to Continuous Delivery
o  Releasable software throughout its lifecycle!
o  Fast, automated feedback on production...
o  Dzone Refcard: “Continuous Delivery Patterns”
refcardz.dzone.com/refcardz/continuous-delivery-patterns
o  Dzone Refcard...
Thank You!
CONTACT DETAILS
o  Sriram Narayan sriram.narayan at thoughtworks dot com
o  Andrew Phillips: aphillips at xebia...
Upcoming SlideShare
Loading in...5
×

How to implement continuous delivery with enterprise java middleware?

1,002
-1

Published on

The goal of Continuous Delivery is to move your production release frequency from months to weeks or even days. This all sounds great, but is Continuous Delivery achievable in a complex enterprise IT environment running Java EE middleware such as WebLogic, WebSphere or JBoss?

In this deck, Andrew Phillips, VP Products, XebiaLabs and Sriram Narayan, Product Principal, ThoughtWorks Studios examine the challenges of Continuous Delivery in a complex environment, the key drivers and benefits for moving to Continuous Delivery and simple ways to get started. We also demonstrate a Java EE delivery pipeline using ThoughtWorks Go and XebiaLabs Deployit that helps you get started and addresses the challenges commonly encountered in enterprise environments.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,002
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

How to implement continuous delivery with enterprise java middleware?

  1. 1. Implemen'ng  Con'nuous  Delivery  with   Enterprise  Middleware   Sriram  Narayan,  ThoughtWorks  Studios   Andrew  Phillips,  XebiaLabs  
  2. 2. •  Product principal at ThoughtWorks Studios •  Owner of Go’s deployment stream of work •  Ex-member of ThoughtWorks’ Tech Advisory Board About Sriram
  3. 3. •  VP Products for XebiaLabs •  Lots of enterprise software development on high- performance systems •  Been on both sides of the “Dev…Ops” fence •  Active open source contributor and committer: jclouds, Akka, Gradle and others •  Cloud, PaaS & JVM language fan (mainly Scala, Clojure) •  Regular meetup, conference etc. presenter About Andrew
  4. 4. •  Introduction to ThoughtWorks and XebiaLabs •  Continuous Delivery in 60s •  Continuous Delivery in the Enterprise •  From a “vanilla” pipeline to an enterprise CD approach •  Getting started •  Q & A Agenda
  5. 5. •  Questions? •  Submit via the control panel at any time during the presentation Housekeeping
  6. 6. Deployit is our market-leading Application Release Automation product. o  Headquartered in Boston, Massachusetts o  Global development and support offices in US, EMEA and APAC Benefits include: o  Reduce development applications costs o  Accelerate application time to market o  Bridge the gap between Development and Operations About XebiaLabs
  7. 7. About ThoughtWorks Studios
  8. 8. Continuous delivery is an approach to delivering software that reduces the cost, time, and risk of delivering incremental changes to users. What is Continuous Delivery?
  9. 9. o  Your software is releasable throughout its lifecycle o  Your team prioritizes keeping the software releasable over working on new features o  Anybody can get fast, automated feedback on the production readiness of your systems any time somebody makes a change to them o  You can perform push-button releases of any version of the software on demand. Continuous Delivery means…
  10. 10. Continuous Delivery isn’t just Automation o  Org design o  Devops – CAMS o  Culture, automation, measurement, sharing o  Pipeline Modelling (value stream) o  Visualization o  Orchestration o  Traceability and auditability o  Access control
  11. 11. o  Complex projects and applications consisting of many components delivered by multiple teams o  Complex dependency trees, fan-in o  Polyglot applications, persistence o  Diverse, heterogeneous deployment landscape o  Environments : Physical, virtual, cloud o  Multi-site deployment e.g. CDNs o  Caches, laod balancers, search indexes, analytics data store o  Scheduled deployments o  Integration with Release Management o  E.g. how to gate a pipeline via change tickets? o  Need for end-to-end audit trail Continuous Delivery in the Enterprise
  12. 12. o  Deliverable: 2 EAR files with 2 WAR files each o  One of the WAR files built by a different team o  Also database changes, configuration files and server configuration settings o  Datasources, queues etc. o  Target environments o  Functional Test: Single server with in-memory DB o  Integration Test: 2-server clustered with external DB o  Performance Test: load-balanced 4-server cluster with external DB o  Release Management requirement: deployment to Performance Test environment requires change ticket o  Trigger: any code commit or update of the “external” WAR project A Java EE Example
  13. 13. STEPS 1.  Compile all changed WAR projects, take latest artifact for others 2.  Compile EAR projects 3.  Run unit tests 4.  Run code quality build 5.  Create deployment package (including SQL changes, configuration files etc.) 6.  Deploy to Functional Test env 7.  Run functional tests 8.  Deploy to Integration Test env 9.  Run integration tests 10.  Verify change ticket available for performance tests 11.  Deploy to Performance Test env 12.  Run performance tests, 13.  Update change ticket 14.  Notify business owner that build is “ready for prod” A Java EE Example
  14. 14. Build WAR1 Build WAR2 Build WAR3 Retrieve WAR4 Build EAR1 Build EAR2 Code quality build1 Code quality build2 Package Deploy to FT env with script Run functional tests Deploy to IT env with script Run integration tests Manually verify ticket Deploy to PT env with script Run perf tests Manually update ticket Send notification A Vanilla Pipeline
  15. 15. o  “Straight” translation of the release plan o  All steps happen serially o  Even though not all steps depend on the previous one o  Manual activities remain o  Will become a bottleneck over time o  Scripting, scripting, scripting o  E.g. packaging of the deliverable, deployment scripts to the different environments, some testing o  No clear visualization of component relationships and dependencies o  No clear insight into which code and features make up which components A Vanilla Pipeline
  16. 16. Build comp1 Build comp2 Build comp3 Retrieve comp4 Common frmwk1 Common frmwk 2 Pkg svc1 Pkg app1 Deploy to FT with Deployit Run functional tests Deploy to IT with Deployit Run integration tests Run perf tests Send notification Pkg svc2 Enterprise CD Deploy to PT with Deployit Verifies and updates change ticket
  17. 17. o  Optimized pipeline taking into account component dependencies o  From 18 to 8 stages: 125% speedup! o  No more manual tasks o  Release management integration handled by ARA tool o  Provides end-to-end audit trail o  Minimized scripting o  Packaging and deployment handled by ARA tool o  Clear visualization of component relationships and dependencies o  Clear insight into which code and features make up which components Enterprise CD
  18. 18. Enterprise Pipeline: Value Stream
  19. 19. Enterprise Pipeline: Package as Material
  20. 20. Enterprise Pipeline: Environments, Configuration
  21. 21. Enterprise Pipeline: Permit, Trace and Audit o  Manual, API or timer trigger o  Re-trigger older revision with different configuration o  Pipeline execution history o  Visualize o  Compare o  Granular Email notifications o  Role based access o  View o  Operate o  Admin o  Audit, access control o  Pausing a Pipeline o  Cancel a stage/job run o  Config change
  22. 22. Enterprise Pipeline: Build Orchestration
  23. 23. Enterprise Pipeline: Deployment Orchestration
  24. 24. Enterprise Deployments: No More Scripting
  25. 25. Enterprise Deployments: Full Stack
  26. 26. Enterprise Deployments: Multi-Topology
  27. 27. Enterprise Deployments: On-demand Environments
  28. 28. Enterprise Deployments: Config Drift Analysis
  29. 29. o  Intro to Continuous Delivery o  Releasable software throughout its lifecycle! o  Fast, automated feedback on production readiness o  On-demand releases o  Enterprise Challenges o  Complex project and technical landscape o  Complex dependency and component graphs o  Control (Release Management) and auditing requirements o  Introduction to Go o  Agnostic, auditable orchestration o  Value stream mapping o  Introduction to Deployit o  Enterprise deployment automation o  On-demand environments Recap
  30. 30. o  Dzone Refcard: “Continuous Delivery Patterns” refcardz.dzone.com/refcardz/continuous-delivery-patterns o  Dzone Refcard: "Preparing for Continuous Delivery” refcardz.dzone.com/refcardz/preparing-continuous-delivery o  Application Release Trends 2013 Survey go.xebialabs.com/Survey2013.htm o  Get Ideas with Go www.thoughtworks.com/go o  Continuous Delivery Resources from ThoughtWorks www.thoughtworks.com/insights/continuous-delivery More Info
  31. 31. Thank You! CONTACT DETAILS o  Sriram Narayan sriram.narayan at thoughtworks dot com o  Andrew Phillips: aphillips at xebialabs dot com GET STARTED o  Try Go: www.thoughtworks.com/go o  Try Deployit: www.xebialabs.com/trial XEBIALABS www.xebialabs.com/products blog.xebialabs.com @xebialabs youtube.com/xebialabs THOUGHTWORKS www.thoughtworks.com/products @thoughtworks youtube.com/user/ ThoughtworksStudios
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×