devops and application delivery for hybrid cloud - devopssummit session
TRANSCRIPT
© 2013 IBM Corporation
Sanjeev Sharma IBM Worldwide Lead – DevOps Technical Sales IBM Software Group @sd_architect Blog: http://bit.ly/sdarchitect
DevOps and Application Delivery for Hybrid Cloud Environments
Days <10%
Quarters 35%
Months
40%
Weeks
15%
The Problem: 6-12 Month Delivery Cycles Are Still the Norm
Delivery cycle profile across 600 business enterprises
Feedback cycles
Source--The New Software Imperative: Fast Delivery With Quality: 8 DevOps Practices Hold The Key To Success A Forrester Consulting Thought Leadership Paper Commissioned By IBM, August 2014
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
§ 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!
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
Prod
Stage
Test
Dev
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
Tradi&onal On-‐Premises
Infrastructure as a Service
Manual
Customiza&on; higher costs; slower &me to value
Standardiza&on; lower costs; faster &me to value
UrbanCode Deploy
UrbanCode Deploy
Networking
Storage
Servers
Virtualization
O/S
Middleware
Mid Config
Data
Applications
PlaCorm as a Service
IBM Bluemix
PureApplica&on System
SmartCloud Orchestrator
SoHLayer
IBM DevOps Services
UrbanCode Deploy with Pa4erns
23
Cloud PaJerns
Application Deployment to Cloud
SCM Build Automation
QA PROD
Execute application deployment and manage settings across environments
Publish build
Pull changes
IBM Cloud Orchestrator
Environments DEV DEV DEV DEV
IBM PureApplica&on System
IBM UrbanCode Deploy
Cloud Provisioning
Deploy Automation
IBM UrbanCode Deploy with Patterns
24 IBM UrbanCode Deploy supports Application Workload Management across various
Hybrid 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
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 A
PI G
ateway
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 A
PI G
ateway
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