SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Implemen'ng	
  Con'nuous	
  Delivery	
  with	
  
Enterprise	
  Middleware	
  
Sriram	
  Narayan,	
  ThoughtWorks	
  Studios	
  
Andrew	
  Phillips,	
  XebiaLabs	
  
About Sriram

• 

Product principal at ThoughtWorks Studios

• 

Owner of Go’s deployment stream of work

• 

Ex-member of ThoughtWorks’ Tech Advisory Board
About Andrew
• 

VP Products for XebiaLabs

• 

Lots of enterprise software development on highperformance 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
Agenda
• 

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
Housekeeping

• 

Questions?

• 

Submit via the control panel at
any time during the presentation
About XebiaLabs

o 
o 

Headquartered in Boston, Massachusetts
Global development and support offices in
US, EMEA and APAC

Deployit is our market-leading Application Release
Automation product.
Benefits include:
o  Reduce development applications costs
o  Accelerate application time to market
o  Bridge the gap between Development and Operations
About ThoughtWorks Studios
What is Continuous Delivery?

Continuous delivery is
an approach to delivering software that
reduces the cost, time, and risk
of delivering incremental changes to users.
Continuous Delivery means…

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 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
Continuous Delivery in the Enterprise
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 

o 

E.g. how to gate a pipeline via change tickets?

Need for end-to-end audit trail
A Java EE Example
o 

Deliverable: 2 EAR files with 2 WAR files each
o 

o 

Also database changes, configuration files and server
configuration settings
o 

o 

One of the WAR files built by a different team

Datasources, queues etc.

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
STEPS
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
11. 
12. 
13. 

Compile all changed WAR projects, take latest artifact for
others
Compile EAR projects
Run unit tests
Run code quality build
Create deployment package (including SQL changes,
configuration files etc.)
Deploy to Functional Test env
Run functional tests
Deploy to Integration Test env
Run integration tests
Verify change ticket available for performance tests
Deploy to Performance Test env
Run performance tests,
Update change ticket

14.  Notify business owner that build is “ready for prod”
A Vanilla Pipeline
Retrieve
WAR4

Build EAR1

Code
quality
build2

Package

Deploy to FT
env with
script

Deploy to IT
env with
script

Run
integration
tests

Manually
verify ticket

Deploy to PT
env with
script

Manually
update
ticket

Send
notification

Build WAR1

Build WAR2

Build WAR3

Build EAR2

Code
quality
build1

Run
functional
tests

Run perf
tests
A Vanilla Pipeline
o 

“Straight” translation of the release plan

o 

All steps happen serially
o 

o 

Even though not all steps depend on the previous one

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
Enterprise CD
Build
comp1
Common
frmwk1

Pkg svc1
Build
comp2

Deploy to FT
with
Deployit

Run
functional
tests

Deploy to IT
with
Deployit

Run
integration
tests

Pkg app1
Common
frmwk 2

Build
comp3
Pkg svc2
Retrieve
comp4

Deploy to PT
with
Deployit
Verifies and
updates change
ticket

Run perf
tests

Send
notification
Enterprise CD
o 

Optimized pipeline taking into account component
dependencies
o 

o 

From 18 to 8 stages: 125% speedup!

No more manual tasks
o 
o 

o 

Release management integration handled by ARA tool
Provides end-to-end audit trail

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 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 configuration

o 

Visualize

o 

Compare

Granular Email notifications

Role based access
o  View
o 
o 

Pipeline execution history
o 

o 

o 

o 

Operate
Admin

Audit, access control
o 
o 

Pausing a Pipeline
Cancel a stage/job run

o 

Config change
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
Recap
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 

o 

Introduction to Deployit
o  Enterprise deployment automation
o  On-demand environments
More Info
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
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
THOUGHTWORKS

XEBIALABS

www.thoughtworks.com/products

www.xebialabs.com/products

@thoughtworks

blog.xebialabs.com

youtube.com/user/

@xebialabs

ThoughtworksStudios

youtube.com/xebialabs

Mais conteúdo relacionado

Mais procurados

[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix
Perforce
 
Code Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentCode Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service Development
Rachel Maxwell
 
Reproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint PackageReproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint Package
Revolution Analytics
 

Mais procurados (20)

Accelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexAccelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flex
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
Using Perforce Data in Development at Tableau
Using Perforce Data in Development at TableauUsing Perforce Data in Development at Tableau
Using Perforce Data in Development at Tableau
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copy
 
From ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
From ClearCase to Perforce Helix: Breakthroughs in Scalability at IntelFrom ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
From ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
 
[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix
 
Code Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentCode Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service Development
 
Alfresco Day Platform Update
Alfresco Day Platform UpdateAlfresco Day Platform Update
Alfresco Day Platform Update
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
 
Becoming A Plumber: Building Deployment Pipelines - LISA17
Becoming A Plumber: Building Deployment Pipelines - LISA17Becoming A Plumber: Building Deployment Pipelines - LISA17
Becoming A Plumber: Building Deployment Pipelines - LISA17
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
Reproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint PackageReproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint Package
 
Year in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product UpdatesYear in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product Updates
 
MidSem
MidSemMidSem
MidSem
 
Architecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in TechnologyArchitecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in Technology
 
Introduction to Microsoft R
Introduction to Microsoft RIntroduction to Microsoft R
Introduction to Microsoft R
 
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
Learning from the Early Adopters of DevOps: A Guidebook to Success featuring ...
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R Open
 

Semelhante a How to implement continuous delivery with enterprise java middleware?

Srikanth_testing resume
Srikanth_testing resumeSrikanth_testing resume
Srikanth_testing resume
srikanth Burra
 
Continuous Delivery series: How to automate your infrastructure toolchain
Continuous Delivery series: How to automate your infrastructure toolchainContinuous Delivery series: How to automate your infrastructure toolchain
Continuous Delivery series: How to automate your infrastructure toolchain
Serena Software
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at Splunk
Docker, Inc.
 

Semelhante a How to implement continuous delivery with enterprise java middleware? (20)

How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?
 
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
 
A Bit of Everything Chef
A Bit of Everything ChefA Bit of Everything Chef
A Bit of Everything Chef
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
OUG Ireland Meet-up 12th January
OUG Ireland Meet-up 12th JanuaryOUG Ireland Meet-up 12th January
OUG Ireland Meet-up 12th January
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
 
Srikanth_testing resume
Srikanth_testing resumeSrikanth_testing resume
Srikanth_testing resume
 
Gopikrishanan
GopikrishananGopikrishanan
Gopikrishanan
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Continuous Delivery series: How to automate your infrastructure toolchain
Continuous Delivery series: How to automate your infrastructure toolchainContinuous Delivery series: How to automate your infrastructure toolchain
Continuous Delivery series: How to automate your infrastructure toolchain
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at Splunk
 
Plataforma DevOps en OpenShift
Plataforma DevOps en OpenShiftPlataforma DevOps en OpenShift
Plataforma DevOps en OpenShift
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdf
 
Continous Delivery Toronto Presentation
Continous Delivery Toronto PresentationContinous Delivery Toronto Presentation
Continous Delivery Toronto Presentation
 

Mais de Thoughtworks

Mais de Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

How to implement continuous delivery with enterprise java middleware?

  • 1. Implemen'ng  Con'nuous  Delivery  with   Enterprise  Middleware   Sriram  Narayan,  ThoughtWorks  Studios   Andrew  Phillips,  XebiaLabs  
  • 2. About Sriram •  Product principal at ThoughtWorks Studios •  Owner of Go’s deployment stream of work •  Ex-member of ThoughtWorks’ Tech Advisory Board
  • 3. About Andrew •  VP Products for XebiaLabs •  Lots of enterprise software development on highperformance 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
  • 4. Agenda •  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
  • 5. Housekeeping •  Questions? •  Submit via the control panel at any time during the presentation
  • 6. About XebiaLabs o  o  Headquartered in Boston, Massachusetts Global development and support offices in US, EMEA and APAC Deployit is our market-leading Application Release Automation product. Benefits include: o  Reduce development applications costs o  Accelerate application time to market o  Bridge the gap between Development and Operations
  • 8. What is Continuous Delivery? Continuous delivery is an approach to delivering software that reduces the cost, time, and risk of delivering incremental changes to users.
  • 9. Continuous Delivery means… 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.
  • 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. Continuous Delivery in the Enterprise 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  o  E.g. how to gate a pipeline via change tickets? Need for end-to-end audit trail
  • 12. A Java EE Example o  Deliverable: 2 EAR files with 2 WAR files each o  o  Also database changes, configuration files and server configuration settings o  o  One of the WAR files built by a different team Datasources, queues etc. 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
  • 13. A Java EE Example STEPS 1.  2.  3.  4.  5.  6.  7.  8.  9.  10.  11.  12.  13.  Compile all changed WAR projects, take latest artifact for others Compile EAR projects Run unit tests Run code quality build Create deployment package (including SQL changes, configuration files etc.) Deploy to Functional Test env Run functional tests Deploy to Integration Test env Run integration tests Verify change ticket available for performance tests Deploy to Performance Test env Run performance tests, Update change ticket 14.  Notify business owner that build is “ready for prod”
  • 14. A Vanilla Pipeline Retrieve WAR4 Build EAR1 Code quality build2 Package Deploy to FT env with script Deploy to IT env with script Run integration tests Manually verify ticket Deploy to PT env with script Manually update ticket Send notification Build WAR1 Build WAR2 Build WAR3 Build EAR2 Code quality build1 Run functional tests Run perf tests
  • 15. A Vanilla Pipeline o  “Straight” translation of the release plan o  All steps happen serially o  o  Even though not all steps depend on the previous one 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
  • 16. Enterprise CD Build comp1 Common frmwk1 Pkg svc1 Build comp2 Deploy to FT with Deployit Run functional tests Deploy to IT with Deployit Run integration tests Pkg app1 Common frmwk 2 Build comp3 Pkg svc2 Retrieve comp4 Deploy to PT with Deployit Verifies and updates change ticket Run perf tests Send notification
  • 17. Enterprise CD o  Optimized pipeline taking into account component dependencies o  o  From 18 to 8 stages: 125% speedup! No more manual tasks o  o  o  Release management integration handled by ARA tool Provides end-to-end audit trail 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
  • 21. Enterprise Pipeline: Permit, Trace and Audit o  Manual, API or timer trigger o  Re-trigger older revision with different configuration o  Visualize o  Compare Granular Email notifications Role based access o  View o  o  Pipeline execution history o  o  o  o  Operate Admin Audit, access control o  o  Pausing a Pipeline Cancel a stage/job run o  Config change
  • 22. Enterprise Pipeline: Build Orchestration
  • 24. Enterprise Deployments: No More Scripting
  • 29. Recap 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  o  Introduction to Deployit o  Enterprise deployment automation o  On-demand environments
  • 30. More Info 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
  • 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 THOUGHTWORKS XEBIALABS www.thoughtworks.com/products www.xebialabs.com/products @thoughtworks blog.xebialabs.com youtube.com/user/ @xebialabs ThoughtworksStudios youtube.com/xebialabs