You are on page 1of 33

Continuous Delivery - Best Practices

for Adoption of Continuous Delivery

IBM Webinar

Michael Elder, IBM Senior Technical Staff Member


Our Lawyers Would Like Me to Remind You …

IBM’s statements regarding its plans, directions, and intent are subject to change or
withdrawal without notice at IBM’s sole discretion.

Information regarding potential future products is intended to outline our general


product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a commitment,


promise, or legal obligation to deliver any material, code or functionality. Information
about potential future products may not be incorporated into any contract. The
development, release, and timing of any future features or functionality described for
our products remains at our sole discretion.

© 2013 International Business Machines Corporation 2


Agenda

• What’s driving companies to adopt Continuous Delivery?

• What disciplines are required to implement Continuous


Delivery in my business?

• 12 Concrete Steps to Better DevOps

• How can IBM help me reach my goals?

© 2013 International Business Machines Corporation 3


Agenda

• What’s driving companies to adopt Continuous Delivery?

• What disciplines are required to implement Continuous


Delivery in my business?

• 12 Concrete Steps to Better DevOps

• How can IBM help me reach my goals?

© 2013 International Business Machines Corporation 4


Market shifts are fundamentally changing the way businesses
approach software driven innovation
Macro Business Environment
Increasing regulatory environments drive
the need to reduce risk
Empowered Users Multi-sourcing
Consumerization of IT drives Increasing outsourcing drive
Big Data
the need for apps with high the need for governance
quality customer experience Social Cloud

Intelligent/
Mobile Connected Systems
Technology Trends
Mobile, social, big data, cloud,
intelligent/connected systems
drive the need for agility

1. Clients are trying to rapidly innovate and become agile with systems of engagement
At the same time need to evolve their systems of records and manage regulatory compliance,
reduce costs by outsourcing and provide world class customer experience

2. The above factors have resulted in shift in purchase dynamics


Developers influencing LOB buyers for entire delivery stack (cloud, mobile, middleware, tools)

5 © 2013 International Business Machines Corporation 5


High performing teams adopt DevOps

Reference: 2013 State of DevOps Report by PuppetLabs


© 2013 International Business Machines Corporation 6
A lack of continuous delivery impacts the entire business

CHALLENGES
CHALLENGES

Costly, error prone manual Slow deployment Risk of instability


and duplicative processes to development and test due to managing
delay innovation and environments leave teams multiple configurations
impact competiveness waiting and unproductive and versions

Line of Software & Operations/


Customers
Business Product Manufacturing &
Development Support

© 2013 International Business Machines Corporation 7


Accelerate Software Delivery and Reduce Time to Customer Feedback
I need to Development to Operations Lifecycle…
deliver these
features now ..
Analyze Design

Deploy to…
Release Develop
Project Team Project
Artifacts

Test Build

Here’s Deploy
Runtime
I need… our
standard Analyze Define

Retire Create
Here you go…
Environment

Infrastructure Team
Manage Configure

These Deploy

developers are Policies, etc…


going to cause
me downtime ..
© 2013 International Business Machines Corporation
Infrastructure Lifecycle Management… 8
Agile Development Highlights Bottlenecks

Development Operations

Gap
Code &
Business
Tests
Services

Functional Acceptance Production


Testing Testing

Test and Ops teams have increased


pressures to keep up with increased
loads but continue to use waterfall
approaches and traditional tools.
© 2013 International Business Machines Corporation 9
9
Agenda

• What’s driving companies to adopt Continuous Delivery?

• What disciplines are required to implement Continuous


Delivery in my business?

• 12 Concrete Steps to Better DevOps

• How can IBM help me reach my goals?

© 2013 International Business Machines Corporation 10


DevOps - Enterprise capability for continuous service delivery that enables
clients to seize market opportunities and reduce time to customer feedback.

DevOps Lifecycle
Customers Business Owners Development/Test Operations/Production

Plan and Measure Develop and Test Release and Deploy

Monitor and Optimize

Continuous Innovation, Feedback and Improvements

Accelerate Software Delivery


Expanding collaboration to include customers, LOB and others to eliminate organization silos

Balance speed, cost, quality and risk


Automating manual processes across delivery lifecycle to eliminate waste/delays and compliance tracking

Reduce time to customer feedback


Enabling a customer feedback loop for continuous improvement

© 2013 International Business Machines Corporation 11


Adjusting Delivery Mindset

Infrastructure Developer vs. Operator/Administrator


• Need to bring a software development mindset to the operational areas
• Replicate, where appropriate, standard architecture/development tools and methodologies

Use an Agile approach to delivery of routine tasks


• Continuous, incremental improvements and delivery of new functionality
• Automated unit and integration testing improves operational runtimes

Version management for scripts & source code


• Automation routines and scripts are fundamental to Operations
• Managing Operations routines like source code offers several benefits:
• Central point of truth as routines and environments change
• Backup in case of loss
• Identify possible regressions by comparing with prior versions

Example Managed Assets:


• Perl, Jython, WSADMIN, ANT scripts, Service orchestration routines (opsware, buildforge, etc),

© 2013 International Business Machines Corporation 12


What is a “Software Defined Environment”?

• A Software Defined Environment captures configuration and


automation to enable repeatable, predictable application
deployments and platform updates

• A simple analogy: Today, you likely capture information about


environments in word documents and spreadsheets; you have
“Spreadsheet Defined Environments”

• With Software Defined Environments, technology like workload


patterns, standard automation, and process orchestration enable
you to treat the total environment like any other deliverable; you
fix and update the environment by updating the artifacts which
define the environment and then applying those changes.

© 2013 International Business Machines Corporation 13


Industry norm

DevOps Maturity Model

Plan / Measure Development / Test Release / Deploy Monitor / Optimize

Manage environments
Scaled

Define release with Improve continuously with through automation Automate problem isolation
business objectives development intelligence and issue resolution
Measure to customer value Test Continuously Provide self-service build, Optimize continuously
provision and deploy

Plan and source Deliver and integrate Standardize and automate


Reliable

strategically continuously cross-enterprise Optimize applications


Dashboard portfolio Manage data and virtualize Automate patterns-based Use enterprise issue
measures services for test provision and deploy resolution procedures
Repeatable

Deliver and build with test Plan departmental releases Monitor using business and
Link objectives to releases and automate status end user context
Centralize test management
Measure to project metrics Automated deployment with Centralize event notification
Link lifecycle information standard topologies and incident resolution
Practiced

Manage Lifecycle artifacts Monitor resources


Document objectives locally Plan and manage releases consistently
Schedule SCM integrations
Manage department and automated builds Standardize deployments Collaborate Dev/Ops
resources informally
Test following construction

© 2013 International Business Machines Corporation 14


Agenda

• What’s driving companies to adopt Continuous Delivery?

• What disciplines are required to implement Continuous


Delivery in my business?

• 12 Concrete Steps to Better DevOps

• How can IBM help me reach my goals?

© 2013 International Business Machines Corporation 15


12 Steps to Better DevOps – Plan & Measure

• Do your developers and operators communicate the production


realities and the application's requirements?

• Do you version deployment configuration and scripts along with


your source code?

• Do you have patterns for platforms and applications, designed


jointly by development and operations?

© 2013 International Business Machines Corporation 16


12 Steps to Better DevOps – Release & Deploy

• Can your developers launch and destroy production-like


environments from those patterns?

• Are your patterns based on reusable deployment configuration


scripts?

• Can you deploy an environment (platform and application) in one


step?

© 2013 International Business Machines Corporation 17


12 Steps to Better DevOps – Development & Test

• Do you deploy your applications daily into production-like


environments and verify them?

• Do you link bugs and work items to changes in the application


and configuration?

• Do you associate tickets for production issues with relevant bugs


opened for development to fix?

• Do you have automated tests to validate your application and


platform function and characteristics?

© 2013 International Business Machines Corporation 18


12 Steps to Better DevOps – Monitor & Optimize

• Do you monitor software against expectations after deploying


your application?

• Do you have a delivery pipeline exposed through a summary


dashboard to assess delivery velocity?

© 2013 International Business Machines Corporation 19


Defining YOUR Continuous Delivery pipeline

Actively manage
Applications and
Environments
through the
delivery process
© 2013 International Business Machines Corporation 20
Traditional Hand-off – Written Instructions

Installation Instructions

RedHat Linux
1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat.

2. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
laborum.

Apache Web Server


1. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore
veritatis et quasi architecto beatae vitae dicta sunt explicabo.

2. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed
quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque
porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur,

3. adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore
magnam aliquam quaerat voluptatem.

Python

1. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit


laboriosam, nisi ut aliquid ex ea commodi consequatur?

2. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil
molestiae consequatur,

3. vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

© 2013 International Business Machines Corporation 21


Provisioning using a Software Defined Environment

#!/usr/bin/env ruby

class DevopsDeployer
def initialize(build_url, build_id)
@log = Logger.new(LOG_FILE)
@log.level = LOG_LEVEL

@iaas_gateway = IaasGateway.new(HsltProvider.new(),
LOG_FILE, LOG_LEVEL)
@server_instance = nil
.jsp .html
rtc_build_system_provider = RtcBuildSystemProvider.new(
RTC_REPOSITORY_URL, RTC_USER_ID, RTC_PASSWORD_FILE)
@build = rtc_build_system_provider.resolve_build(
build_url, ENV['buildResultUUID'], build_id)
Infrastructure
@build_system_gateway = BuildSystemGateway.new(
.java
rtc_build_system_provider, LOG_FILE, LOG_LEVEL)
end as Code
def add_build_stamp
template_file = WEB_APP_ROOT +
"/app/templates/pages/page.html"
@log.info "Adding build ID stamp #{@build.id} to \
.sh
#{template_file}" chef
recipes
# Read in the file's contents as a string, replace
# the build_id, then overwrite the original contents
# of the file
text = File.read(template_file)
new_text = text.gsub(/\{\{ build_id \}\}/,
Source Artifacts
"<a href=\"#{@build.uri}\">#{@build.id}</a>")
File.open(template_file, "w") { |file|
file.puts new_text
}
end
Source Control
# ...
Management

© 2013 International Business Machines Corporation 22


Delivery Pipeline Stage

Build,
Package,
& Unit Test
.jsp .html Application
Binaries &
Platform Deploy
Configuration
.jav
a

.sh chef
recipes
Environment
Deployable Artifacts Running System
Source Artifacts
Source Control Library
Management

© 2013 International Business Machines Corporation 23


Environment Configuration Management

© 2013 International Business Machines Corporation 24


Configuration Management - Snapshots uDeploy

Creating a Snapshot Snapshot Deployment


Snapshot ENV
Component Versions Snapshot

3 3 2 WEB HOST
Web 1 2 3 3

2 2 1
Mid. Code 1 2 3 2
MID HOST
Mid. Config 1 2 3 3 3 3 1

DB 1 2 3 1 1 X 1 DB HOST

Contents of environments that pass tests


• contain deployable version and configuration
Deployments are based on deltas
They help with:
 Automation, Audit, and Visibility

© 2013 International Business Machines Corporation 25


Inventory of Application Components per Environment

© 2013 International Business Machines Corporation 26


Agenda

• What’s driving companies to adopt Continuous Delivery?

• What disciplines are required to implement Continuous


Delivery in my business?

• Review 12 Steps to Better DevOps

• How can IBM help me reach my goals?

© 2013 International Business Machines Corporation 27


DevOps Tool Chain
Plan and Measure Release and Deploy
Rational Focal Point
Rational Requirements Composer
SmartCloud Orchestrator
IBM Pure Application System
Openstack
Line of
Business

Jenkins uBuild
Rational Build Forge

Rational Quality Manager SmartCloud Control Desk


Rational Team Concert
Rational Test Workbench
Rational Test Virtualization Server

SmartCloud Application Performance Management

Develop and Test Monitor and Optimize


© 2013 International Business Machines Corporation 28
2
UrbanCode complements IBM’s DevOps solution by enabling continuous software
release and deployment via application release automation (ARA)

Application Blueprint
UrbanCode products help clients:
• Reduce errors: Automated software release and
deployment

• Improve productivity: Push-button deployments


for developer and operations
Versioned
Artifacts
• Faster time-to-market: Automated release and
deployment with built-in best practices provides Artifacts Artifacts Artifacts

• Compliance and auditability: Enforced Security Development


Release
QA
Release
Product
Release
and traceability
Execute Against Execute Against Execute Against

Development QA Production
Environment Environment Environment

© 2013 International Business Machines Corporation 29


IBM UrbanCode Deploy – Manage Applications, Components, and Environments

• Automate deployment of applications across dev, test, and production


environments
• Extending platform to be aware of workload patterns to enable a
combination of platform and application deployment

Deployment

© 2013 International Business Machines Corporation 30


IBM UrbanCode Release – Release planning and coordination

Focused on streamlining large monthly or quarterly releases that


take hours/days and require dozens or that hundreds of people to
get on a call

Enables incremental adoption towards complete automation

• Plan the release day


• Execute the release
• Communicate what’s going on
• Allocate environments to releases
• Tie release back to development
• Builds on automation and
configuration in UrbanCode Deploy

31 © 2013 International Business Machines Corporation 31


Summary

• Continuous Delivery is about a set of practices that enable


your company to be more competitive

• There is no single magic bullet, but there are best


practices to help you achieve your goals

• IBM provides a rich portfolio of offerings to help you on the


journey to being more responsive and meaningful to your
end users

© 2013 International Business Machines Corporation 32


www.ibm.com/software

© Copyright IBM Corporation 2013. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of
any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to,
nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing
the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release
dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment
to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the
International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

33 © 2013 International Business Machines Corporation 33

You might also like