deployment automation for hybrid cloud and multi-platform environments
TRANSCRIPT
© 2013 IBM Corporation
Sanjeev Sharma
IBM Worldwide Lead – DevOps Technical Sales
IBM Software Group
@sd_architect
Blog: http://bit.ly/sdarchitect
Deployment Automation for Hybrid
Cloud and Multi-platform
Environments
How do we speed up software delivery?
© 2014 Forrester Research, Inc. Reproduction Prohibited
IBM - Forrester DevOps study: http://ibm.co/1qpisfe
1/3rd of companies are delivering with speed with quality
Ability to maintain fast cycle times High Low
Mo
tiva
tio
n t
o c
ut
cyc
le t
ime
s
High
Delivering
Slowly
13%
Delivering Fast
32%
Improving
Speed
37%
Struggling
for Speed
19%
Base: 600 IT professionals with application development responsibilities from US, Canada, UK, France, and Germany
Source: A commissioned study conducted by Forrester Consulting on behalf of IBM, May 2014
IBM - Forrester DevOps study: http://ibm.co/1qpisfe
DevOps approach:
Apply Lean principles accelerate feedback and improve time
to value
Line-of-
business
Customer
1
3
2
1. Get ideas into production fast
2. Get people to use it
3. Get feedback
Non-Value-added waste Value-added production work
Lean
Transformation
http://ibm.co/devopsfordummies
Leverage feedback across the Delivery Pipeline to
Continuously Improve:
I. Application Delivered
II. Environment Deployed
III. Application and Environment Delivery Process
DevOps == Continuous Improvement
6
The Big Sources of Wasted Efforts: Find the Hidden Factory
Type of Waste Create Feature Deliver Feature
Unnecessary
Overhead
Communicating ideas/knowledge Communicating between development
and operations
Unnecessary
Re-work
Tasks assigned back to developers
from testing and usage
Tasks assigned back to developers from
production rollbacks
Over-production
Unnecessary functionality produced Unnecessary hardware, data center,
personnel
Non-Value-added waste Value-added production work
Lean
Transformation
IBM DevOps Adoption Model Practices, tools and services to plan and execute a staged adoption of DevOps to improve business outcomes
Feedback
Cycles
Productive Waste
Efficiency
Steer Product-based
Agile
Automated
Collaborative
Optimizing
More
Predictable
More
Transparent
More
Continuous
Process-based
Process-heavy
Manual
Silo-ed
Develop/Test
Deploy
Operate
Inefficient Leaner Leaner and Smarter
Develop / Test
Deploy Steer Operate
IBM DevOps – most comprehensive capabilities Addresses bottlenecks and waste across the delivery lifecycle
Continuously plan, measure and
bring business strategy and
customer feedback into the
development lifecycle.
Enable collaboration between
business, development, and QA
to deliver innovative, quality
software continuously.
Reduce the cost of testing while helping
development teams balance quality and
speed.
Deliver software to customers
and internal users faster and
more frequently with better
quality, lower cost, and reduced
risk.
Understand and accommodate the
user perspective to achieve service
levels with better visibility and
continuous feedback across the
entire software lifecycle.
Continuous
Business Planning Collaborative
Development
Continuous
Testing
Continuous Release
and Deployment Continuous
Monitoring
Continuous
Customer Feedback
& Optimization
Provide the visual evidence and full
context for analyzing customer behavior
and pinpointing pain points.
Map your Delivery Pipeline: Large Bank
Idea/Feature/Bug Fix/
Enhancement Production
Development Build QA SIT UAT Prod
PMO
Requirements/
Analyst
Developer
Customers Line of Business
Build
Engineer
QA Team Integration Tester User/Tester Operations
Artifact Repository
Deployment Engineer
Release Management
Code Repository
Deploy
Get Feedback
Infrastructure as Code/
Cloud Patterns
Feedback
Customer or
Customer Surrogate
Metrics - Reporting/Dashboarding
Tasks
Artifacts
Bottleneck: Rigid ‘One-size-
fits-all’ Development process
Solution: Agile Transformation with
‘Risk-Value’ based Process Variants
Bottleneck: Ticket Based
Environment Provisioning
Solution: Cloud Hosted
Developer ‘Self-Service’
Bottleneck: Weekend long
Deployments that often fail
Solution: Frequent
Deployment of Small Batches
of Change Bottleneck: Late Discovery of
Architectural Fragility
Solution: Agile ‘Shift Left’
Integration Testing to early in
LifeCycle
Challenge:
– Developers were creating daily builds
– QA team had a 3 – 5 day cycle time
Bottlenecks Identified:
1. Lack of Deployment Automation
2. Ticket based manual environment
provisioning
3. Lack of reliable source of Test Data
Delivery Pipeline Optimization: Large Bank
Three Step Solution:
1. Deployment Automation with IBM UrbanCode Deploy with Patterns
2. Private OpenStack Cloud hosted ‘on-demand’ Dev-Test environments with
IBM UrbanCode Deploy with Patterns
3. Test Data Management with IBM Optim Test Data Management
Implementing a Delivery Pipeline
SCM
Build / CI
Server
Unit testing
Test Automation
Test Stubbing
Delivery
Pipeline
Environment
Configuration
Automated
Monitoring
Asset
Repository
1. Cloud Hosted DevOps toolchain
SCM
Build / CI
Server
Unit testing
Test Automation
Test Stubbing
Delivery
Pipeline
Environment
Configuration
Automated
Monitoring
Asset
Repository
Cloud
2. Cloud Hosted Environments
SCM
Build / CI
Server
Unit testing
Test Automation
Test Stubbing
Delivery
Pipeline
Environment
Configuration
Automated
Monitoring
Asset
Repository Cloud
14
Deploying Infrastructure is the biggest bottleneck for
the Delivery Pipeline
The adoption of DevOps ==
increased velocity of application
delivery
Puts pressure on the
infrastructure to respond more
quickly
Software Defined Environments
enable you to capture
infrastructure as a software
artifact
Deploying Infrastructure is the biggest bottleneck for
the Delivery Pipeline
Application
Changes
Infrastructure
Changes
Hybrid environments – Mobile to
Mainframe
The current state of Hybrid Cloud Environments
• Most enterprises have multiple platforms
• Non-cloud environments will not be completely
replaced
• Implementing a Delivery Pipeline would require
applications to be deployed across multiple cloud
and physical platforms
• Platform-as-a-Service (PaaS) and Infrastructure-
as-a-Service (IaaS) Cloud platforms will co-exist
• Multiple cloud standards are proliferating and
evolving
DevOps on Hybrid Environments Use Cases
1. Development and Test (Dev-Test)
on Public Cloud with Production on
Private Cloud or Physical
Infrastructure in On-Premise
Datacenters
Public Dev-Test – On Prem Prod
Production workloads On Premise and
Test/ Development Off
Premise
On
Premise
Off
Premise P
rod
Sta
ge
Te
st
De
v
Bursting for Capacity
Needs
App dynamically uses Off Premise
in case of resource
shortage On Premise
On
Premise
Off
Premise
App A App A
Cloud Burst
2. ‘Bursting’ from Private to Public
Cloud for temporary capacity
needs
DevOps on Hybrid Environments Use Cases
3. Organizations delivering System Of
Engagement Applications need to
connect to System of Record
applications on Mainframes and
Distributed physical infrastructure
Portable Workloads
Application and data are portable across On and
Off Premise
4. Organizations need Application
workloads that are portable across
Private and Public Clouds
SoR & SoE Integration
Systems of Record
On Premise and
Systems of
Engagement
Off Premise
On
Premise
Off
Premise
App B App A
On
Premise
Off
Premise
App A
App B
App C
App A
App B
App C
DevOps on Hybrid Environments Use Cases
5. Experimentation of Innovative applications on Public
Cloud or PaaS platforms will need to be brought in-house
if successful
6. Organizations looking to outsource Test environment
management
7. Organizations transitioning to Cloud will have applications
on both legacy systems on physical infrastructure and
Cloud during transition periods
8. Organizations wanting to avoid ‘vendor lock-in’ with single
Cloud platform for the enterprise
UrbanCode Deploy for Application Deployment to Multi-Platform and Hybrid Cloud Environments
UrbanCode Deploy with Patterns can deploy Applications to System z,
Distributed static environments (physical or on the Cloud) and to Dynamic
Hybrid Cloud Environments
UrbanCode Deploy with Patterns supports ‘full stack’ deployment (Cloud
Environment Provisioning and Application Deployment) for:
• IBM Virtual System Patterns (for PureSystems and IBM Cloud
Orchestrator)
• OpenStack HOT templates (for OpenStack Provate Cloud, Amazon
Web Services and VMWare vCenter)
Our Solution
UrbanCode Deploy handles deployment of application components across multiple environments
Develop
Deliver
SCM
CI Tool IDE
Build
Request Build Built Artifacts
Deploy
SoE App
IBM UrbanCode Deploy with Patterms
22
SoR App
IBM UrbanCode Deploy
• Deploy complex applications: multi-platform, multi-technology
• Applications in different layers develop and deploy at different velocities
• Hybrid environments: Public and Private Cloud, Distributed physical or virtualized servers, Mainframe, Mobile Devices, and also Smart devices
Mobile Device
Mainframe
Cloud
Traditional
Application Automation vs Cloud Platform Separation of Duties
Networking Networking
Storage Storage
Servers Servers
Virtualization Virtualization
O/S O/S
Middleware Middleware
Mid Config Mid Config
Data Data
Applications Applications
Traditional On-Premises
Infrastructure as a Service
Manual
Customization; higher costs; slower time to value
Standardization; lower costs; faster time to value
UrbanCode Deploy
UrbanCode Deploy
Networking
Storage
Servers
Virtualization
O/S
Middleware
Mid Config
Data
Applications
Platform as a Service
IBM Bluemix
PureApplication System
SmartCloud Orchestrator
SoftLayer
IBM DevOps Services
UrbanCode Deploy with Patterns
23
Cloud Patterns
SC
M Build Automation
QA PROD
App
Configure the entire
stack with your cloud
of choice.
Iterate on application
and infrastructure
changes seamlessly.
Promote changes to
your cloud
environments through
the entire delivery
lifecycle.
Publish
build
Pull
changes
IBM Cloud Orchestrator
DEV DEV DEV DEV
App
IBM PureApplication System
IBM UrbanCode Deploy
with Patterns
24
IBM Cloud Manager with OpenStack
IBM Bluemix
App
IBM UrbanCode Deploy with Patterns
supports multiple Cloud Pattern Technologies
IBM UrbanCode Deploy supports Application
Workload Management across various Cloud
Technologies
UrbanCode Deploy Application Blueprints
define Deployment across platforms
What to be deployed
Where to be deployed (Physical or Cloud Resources) - Patterns
How to be deployed Application Blueprints in
IBM UrbanCode Deploy
Cloud Patterns Supported
Where to be deployed (Physical or Cloud Resources) - Patterns
• IBM Virtual System Patterns:
Supported by –
o IBM Cloud Orchestrator
o IBM PureApplication System
• OpenStack HEAT Templates (HOT):
Supported by –
o Amazon Web Services
o VMWare vCenter
o OpenStack Private Cloud
o IBM Cloud Platforms
o More to come…
Patterns Supported by IBM Cloud Technology, and UrbanCode
Deploy with Patterns:
o Provide Software Components right
along side infrastructure
o Represent these resources in HOT
documents
o Once deployed update either from
Heat or UrbanCode Deploy
o Will support Chef, Puppet, etc over
time
IBM UrbanCode Deploy with
Patterns - Heat Templates
28
Run Your Apps The developer can chose any language runtime or
bring their own. Just upload your code and go.
DevOps Development, monitoring, deployment and
logging tools allow the developer to run the
entire application
APIs and Services A catalog of open source, IBM and third party
APIs services allow a developer to stitch
together an application in minutes.
Cloud Integration Build hybrid environments. Connect to on-
premises systems of record plus other public and
private clouds. Expose your own APIs to your
developers.
Extend SaaS Apps Drop in SaaS App SDKs and extend to new use
cases (e.g,. Mobile, Analytics, Web)
IBM Bluemix
28
IBM DevOps Services for Bluemix
• Integrated task tracking, agile
planning, source control
• Optimized for Bluemix
• Use your favorite tools or work
from the Web IDE
• Hosted SCM Jazz or Git or link to
GitHub
• Continuous Integration and
Deployment
• Mobile quality and application
performance monitoring
http://jazzhub.com/innovate
29
Architecting Application
Deployment for Hybrid Cloud
environments
Legacy Stack On-Prem Cloud
UrbanCode
IBM UrbanCode Release
IBM UrbanCode Deploy with Patterns
Provision Application
Infrastructure
Private
Cloud
Pattern Engine
Provision Application + Infrastructure
Platform as a Service (Public)
BlueMix
Infrastructure
System z and/or Distributed Applications
On-prem Customer Data Centers
Provision Application + Infrastructure
Virtual Private Cloud
Pattern Engine
Virtual Private Network
connection
Public Data Centers
RE
ST
AP
I Ga
tew
ay
CloudFoundry ‘Community’ Buildpacks
IBM DevOps
Services
APIs
APIs
Architecting Application Deployment for Hybrid
Cloud environments – Example End-to-end Solution – Physical Infrastructure, Private Cloud, Public Cloud, PaaS
Off-Prem Cloud
Legacy Stack On-Prem Cloud
UrbanCode
IBM UrbanCode Release
IBM UrbanCode Deploy with Patterns
Provision Application
Infrastructure
Private
Cloud
Pattern Engine
Provision Application + Infrastructure
Infrastructure
System z and/or Distributed Applications
On-prem Customer Data Centers
Provision Application + Infrastructure
Private Cloud
Pattern Engine
Direct Link private
connection
Public Data Centers
RE
ST
AP
I Ga
tew
ay
APIs
End-to-end Solution – Physical Infrastructure, Private Cloud, Public Cloud
Off-Prem Cloud
UrbanCode Deploy with
Patterns supports IBM
vSys Patterns and
OpenStack HOT Templates
UrbanCode Deploy with
Patterns supports
application deployment to
z/OS and distributed
physical environments
Private Clouds supported – IBM Cloud
Orchestrator, PureApplication System
(vSys Patterns), OpenStack Private Cloud
and VmWare vCenter (OpenStack)
UrbanCode Deploy with
Patterns supports Amazon
Web Services (AWS)
Public Cloud
Architecting Application Deployment for Hybrid
Cloud environments – Case Study
Resources
IBM UrbanCode: https://developer.ibm.com/urbancode/
IBM Cloud: http://www.ibm.com/cloud-computing/
IBM DevOps: http://www.ibm.com/ibm/devops/
IBM DevOps approach for the Cloud: http://youtu.be/fVaJigwfNY4
UrbanCode Deploy with Patterns - Application Deployment to Cloud:
–UrbanCode Deploy with Patterns 10 minute demo: http://youtu.be/fFuRg6l3N44
–UrbanCode Deploy with Virtual System Patterns: http://youtu.be/HPs_TQpyL-w
–UrbanCode Deploy deploying to Bluemix: http://youtu.be/2Hk2oALmIZg