Upload
xebialabs
View
1.189
Download
3
Tags:
Embed Size (px)
Citation preview
xebialabs.com
Implementing Continuous Deployment
seamless application deliveries with a DevOps mindset
Vincent PartingtonCTO & Co-founder XebiaLabs
xebialabs.com
Introduction
• Vincent Partington, CTO XebiaLabs.
• Deployit, Deployment Automation solution.
• On Java EE platforms and related platforms.
• IBM WebSphere, Oracle WebLogic, JBoss, Tomcat, and others.
xebialabs.com
Agenda
• Application deployment challenges.
• Definition of continuous deployment.
• Prerequisites for continuous deployment.
• So how does it work?
xebialabs.com
Application deployment challenges
xebialabs.com
Application deployment challenges
• More frequent application releases because of:
• Increasing business demands
• Agile development methods
• More and more environments because of:
• More middleware technology added
• Cloud infrastructure
• This means more and more deployments.
xebialabs.com
What is application deployment?
• Deployment is about making an application available to end users:
• Application delivered by development team.
• Application installed by operations team.
• Or: Stop servers, install artifacts, configure resources, start servers, etc.
• Or: Read The Fine (60 page) Manual.
• Or: Ask the developer.
xebialabs.com
Current deployment practices
• Two manual processes:
• Hand-over from development to operations.
• Manual deployment procedures followed by developers and/or operations.
• The first is time-consuming, the second is error-prone.
• Typical IT answer: Automation!
xebialabs.com
Current IT landscape
Change Management
Configuration Management
MonitoringHP Tivoli,…
Scripts
IDEsRAD,
Eclipse…
SCMClearCase,
SVN...
Continuous Build Bamboo, Hudson…
Interactive BuildMaven, Ant…
Release Management
Largely automatedLargely
automated
xebialabs.com
Deployment automation features
• Standard format for delivery by development.
• Integration with developer tools.
• Integration with target middleware.
• Integration with operations tools.
• Role-based security.
• Reporting on history and current state.
xebialabs.com
DevOps
• Movement started out of disappointment with the current state of affairs in IT: fear of change, risky deployments, “works on my machine” attitude, silo’s.
• About applying agile principles to IT operations:
• Multidisciplinary teams: dev and ops together.
• Focus on end-result, working in increments.
• Automation where possible (Forrester: “NoOps”).
xebialabs.com
So what is
Continuous Deployment?
xebialabs.com
Continuous integration
• Emerged at the end of the ‘90s as one of the XP practices.
• By continuously building and testing software quality should improve.
• Tests are often limited to unit tests (e.g. JUnit).
• Sometimes functional tests are included too (e.g. Selenium).
xebialabs.com
Shortcomings of most CI setups
• Deployment to the target platform is often not part of the CI cycle.
• That means: deployment procedures are not tested.
• And that means: application is not tested on target platform.
xebialabs.com
So what is continuous deployment?
• Strictest definition:
• Every (tagged) version goes straight into production.
• Used by LinkedIn amongst others.
• Less strict:
• Include deployment automation the CI cycle to test the deployed artifact.
xebialabs.com
Prerequisites for
Continuous Deployment
xebialabs.com
Standard delivery format
Deployment Package
Manifest
Artifacts (Java EE, HTML, etc.)
Configuration files
Middleware resources
Post-deployment tests
Dependencies
xebialabs.com
Environments
Environment
Appserver
Database
HTTP Server
Message Broker
Auth. Proxy
Host
...
xebialabs.com
Application deployments
Application Environment
Environment
EnvironmentApplication
Application
xebialabs.com
Deployment customization
• At deployment time, not at build time!
• In artifacts and in configurations.
• Property replacement for configurations.
• Placeholder replacement for artifact contents.
xebialabs.com
Deployment customization
EAR
Datasource
Application server
Ear to AppServer
Datasource to Appserver
- username = u_app_test_env- password = ********
- SERVICE.URL = http://app-test.mycompany.com
- jndi = jdbc/myAppDS
xebialabs.com
Demo
xebialabs.com
Setup
IDE CI system
Versioncontrol
Buildsystem
Cha
ng
e c
od
e
Applicationserver
Deployit
Dete
ct change B
uild
co
de
Push
pa
cka
ge &
trig
ger d
ep
loym
ent D
eplo
y a
pplic
atio
n
xebialabs.com
Advantages• Application is automatically tested on target platform after every
modification.
• Developers can no longer ignore deployment.
• Increase of quality.
• Same deployment automation can be used to deploy to acceptance and production environments.
• Less hand-over moments.
• Increate of speed, and quality.
xebialabs.com
More info
• Visit our website at http://www.xebialabs.com
• Follow us on Twitter: @XebiaLabs
• Follow me on Twitter: @vpartington