24
xebialabs.com Implementing Continuous Deployment seamless application deliveries with a DevOps mindset Vincent Partington CTO & Co-founder XebiaLabs

20110507 Implementing Continuous Deployment

Embed Size (px)

Citation preview

Page 1: 20110507 Implementing Continuous Deployment

xebialabs.com

Implementing Continuous Deployment

seamless application deliveries with a DevOps mindset

Vincent PartingtonCTO & Co-founder XebiaLabs

Page 2: 20110507 Implementing Continuous Deployment

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.

Page 3: 20110507 Implementing Continuous Deployment

xebialabs.com

Agenda

• Application deployment challenges.

• Definition of continuous deployment.

• Prerequisites for continuous deployment.

• So how does it work?

Page 4: 20110507 Implementing Continuous Deployment

xebialabs.com

Application deployment challenges

Page 5: 20110507 Implementing Continuous Deployment

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.

Page 6: 20110507 Implementing Continuous Deployment

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.

Page 7: 20110507 Implementing Continuous Deployment

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!

Page 8: 20110507 Implementing Continuous Deployment

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

Page 9: 20110507 Implementing Continuous Deployment

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.

Page 10: 20110507 Implementing Continuous Deployment

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”).

Page 11: 20110507 Implementing Continuous Deployment

xebialabs.com

So what is

Continuous Deployment?

Page 12: 20110507 Implementing 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).

Page 13: 20110507 Implementing Continuous Deployment

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.

Page 14: 20110507 Implementing Continuous Deployment

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.

Page 15: 20110507 Implementing Continuous Deployment

xebialabs.com

Prerequisites for

Continuous Deployment

Page 16: 20110507 Implementing Continuous Deployment

xebialabs.com

Standard delivery format

Deployment Package

Manifest

Artifacts (Java EE, HTML, etc.)

Configuration files

Middleware resources

Post-deployment tests

Dependencies

Page 17: 20110507 Implementing Continuous Deployment

xebialabs.com

Environments

Environment

Appserver

Database

HTTP Server

Message Broker

Auth. Proxy

Host

...

Page 18: 20110507 Implementing Continuous Deployment

xebialabs.com

Application deployments

Application Environment

Environment

EnvironmentApplication

Application

Page 19: 20110507 Implementing Continuous Deployment

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.

Page 20: 20110507 Implementing Continuous Deployment

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

Page 21: 20110507 Implementing Continuous Deployment

xebialabs.com

Demo

Page 22: 20110507 Implementing Continuous Deployment

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

Page 23: 20110507 Implementing Continuous Deployment

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.

Page 24: 20110507 Implementing Continuous Deployment

xebialabs.com

More info

• Visit our website at http://www.xebialabs.com

• Follow us on Twitter: @XebiaLabs

• Follow me on Twitter: @vpartington