© 2013 IBM Corporation
Accelerating Product and Service Innovation
Improving Software Delivery with DevOps & Software Defined Environments
Michael Elder, IBM Senior Technical Staff [email protected] http://linkedin.com/in/mdelder @mdelder
© 2013 IBM Corporation
"Success is not delivering a feature; success is learning how to solve the customer’s problem.”
- Mark Cook
© 2013 IBM Corporation
Acceleratesoftware delivery
Balance speed, cost, quality and risk
Reduce time to customer feedback
People Process Technology
Develop/Test
Deploy
Operate
Steer
IBM DevOps
Enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback
© 2013 IBM Corporation
Throughput of each process must be the equal in order to avoid backlogs.
When preceding process is upgraded to a higher throughput, subsequent processes must be upgraded to the same higher throughput in order to maintain balance.
Optimize pipeline with an even flow end to end
© 2013 IBM Corporation
IBM DevOps increases velocity of application delivery
Rational Collaborative Lifecycle Management (CLM) enables agile development
Rational Test Workbench and Rational Test Virtualization Server (GreenHat) enables Continuous Testing
IBM UrbanCode solutions enable Continuous Release and Deployment
SmartCloud Monitoring, Worklight Quality Assurance, IBM Digital Analytics and others enable Continuous Monitoring and customer feedback
IBM UrbanCode Deploy
Release
Rational Team ConcertRational Focal PointRational Requirements Composer
Rational Build Forge
IBM UrbanCode Release
© 2013 IBM Corporation
Deploying cloud environments still slow and manual
Takes many hours to days to deploy virtual environments and requires multiple specialists to collaborate and coordinate
–Provisioning infrastructure and configuring network, storage and compute
– Installing and configuring Middleware (Application Server, Database)
– Installing user application and application data
Reduced productivity of Developers and Testers due to slow availability of test environments
Slow delivery of applications to production environments
Manual coordination to provision infrastructure, install and configure middleware and deploy application
Release
© 2013 IBM Corporation7
• What are our clients saying about their needs?
• What’s the right level of control vs. flexibility for my use cases?
• What cloud does IBM recommend for Infrastructure as a Service?
What should you know about cloud?
© 2013 IBM Corporation
What our clients are saying about deploying cloud environments
Application Workloads include Infrastructure, Middleware and Applications• I want to manage these holistically• Different people have expertise in each area• I have different automation tools for each layer
Let me choose when to re-provision and when to update• Sometimes I want to test in a transient environment• Other times I want to deploy changes into an existing environment, especially
production
Don’t make me pick a cloud• Different workloads have different homes• I want to be able to test in one cloud, and run production in another
© 2013 IBM Corporation
DevOps and Cloud adoption
Customization; higher costs; slower time to value
Standardization; lower costs; faster time to value
Networking
Storage
Servers
Virtualization
O/S
Middleware
Data
Applications
Platformas a Service
PureApplication System
SmartCloud Orchestrator
SoftLayer
IBM DevOps Services
10
IBM Patterns
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
Infrastructureas a Service
Manual
UrbanCode Deploy
UrbanCode Deploy(available with UCDP) Mid Config
IBM Bluemix
UrbanCode Deploy w/Patterns(provisioning & deployment only)
Automating for faster delivery with DevOps and Cloud
© 2013 IBM CorporationIBM CONFIDENTIAL
OpenStack is a global collaboration of developers & cloud computing technologists working to produce an ubiquitous Infrastructure as a Service (IaaS) open source cloud computing platform for public & private clouds.
OpenStack is our strategic direction for IaaS cloud
Platinum Sponsors Gold Sponsors
Compute (core)Provision and manage large networks of virtual machines
Dashboard (core)Enables administrators and users to access & provision cloud-based resources through a self-service portal.
Heat (core)orchestrates multiple composite cloud applications using templates
Ceilometer (shared service)Collect monitoring, metering, and other measurements
Storage (core)Provision and manage block-based and object storage
Network (core)Provision and manage network connectivity
Identity (shared service)Unified authentication across all OpenStack projects and integrates with existing authentication systems.
Identity (shared service)Unified authentication across all OpenStack projects and integrates with existing authentication systems.
https://ibm.biz/BdxrtX
© 2013 IBM Corporation
OpenStack Heat provides cloud resource orchestration
Provides a way to represent infrastructure from OpenStack
Recently added support for client-side automation through Shell, Chef, or Puppet
Defined a new Domain Specific Language for templates: Heat Orchestration Template (HOT) format
Supports updating existing environments in place
© 2013 IBM Corporation13
• Why aren’t my application changes moving into production as quickly as they moved into my QA environments?
• How can the roles involved in delivery, work together with greater efficiency and speed?
How does this new technology impact my business?
© 2013 IBM Corporation
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 changes is the current bottleneck for delivery
Application Changes
InfrastructureChanges
© 2013 IBM Corporation
Application Changes
InfrastructureChanges
A Change is a Change
… …
© 2013 IBM Corporation
Long, complex lifecycle
Small iterative changes
Role Layer
… …Developers/
Testers
Integrators
SpecialistsCompute, Network,
and Storage
Platforms
Apps
© 2013 IBM Corporation
Developers/Testers
Integrators
SpecialistsCompute, Network,
and Storage
Platforms
Apps
Full Stack Blueprint (HOT)
Cloud Orchestration
Describe software defined resources (Compute, Network, Storage) alongside middleware and applications
Capture the full stack as a blueprint document, actionable by an automated process
© 2013 IBM Corporation
Compute, Network, and
Storage
Platforms
Apps
Compute, Network, and
Storage
Platforms
Apps
Compute, Network, and
Storage
Platforms
Apps
Dev/Test Cloud Production Cloud
Full StackBlueprint
Dev QA Prod
Apply the same blueprint to multiple environments
© 2013 IBM Corporation
Version the blueprint using your source control repo (native support for git)
Apply the new versions of the template to an existing environment or provision an entire new stack
Validate changes with a "canary" pattern to ensure correctness and detect problems earlier
Verify entire stack before production
Full-StackBlueprint
Software Defined Delivery
© 2013 IBM Corporation
Parameterize differences between cloud environments (network ids, image ids, software versions)
Overlay resource types for different kinds of clouds in the same blueprint
Enable portability but optimize for each specific cloud platform
Full StackBlueprint
Config/Params
Cloud ACloud B
Config/Params
Software Defined Portability
© 2013 IBM Corporation21
• How do you extend your continuous delivery pipeline to take advantage of cloud-based deployments?
• How do you create fullstack workloads for each stage of your delivery pipeline?
How can you apply these techniques to your business?
© 2013 IBM Corporation
Introducing IBM UrbanCode Deploy with Patterns
Pattern designer
–Design open, full stack application environments in a diagram or textual editor
Design once, deploy anywhere
–Deploy full stack environments to multiple clouds
Environment lifecycle management
–Manage infrastructure change and easily apply changes to existing environments
Delivery process automation
–Automated delivery process with integrated full stack environments
Design and deploy full stack application environments for multiple clouds
IBM UrbanCode Deploy with Patterns
Application
Middleware Config
Middleware
OS Config
Hardware
En
viro
nm
ent
Blu
epri
nt
https://ibm.biz/BdFc2X
© 2013 IBM Corporation
Faster, repeatable, reliable full-stack deployment processes
SCM Build Automation
QA PROD
Execute application deployment and manage settings across environments
Publish build
Pull changes
SmartCloud Orchestrator
EnvironmentsDEVDEVDEVDEV
IBM PureApplication System
IBM UrbanCode Deploy
Cloud Provisioning
Deploy Automation
IBM UrbanCode Deploy with Patterns
23
https://ibm.biz/BdFcmV
© 2013 IBM Corporation
User Personas for IBM UrbanCode Deploy with Patterns
Components
Infrastructure Specialists develop and update reusable building blocks for application environment patterns 1
Application Pattern
HOT
Architects and Integrators design and update application environment patterns from building blocks targeting specific cloud platforms (Amazon, VMWare)
2
Building Blocks
3
Release Engineers leverages the application environment patter to create and manage a multi-stage continuous delivery pipeline
4Application Developers and Testers can test the application changes for in a production-like environment
Des
ign
Tem
pla
tes
Dep
loy
Tem
pla
tes
vSys, vApp
Application
Middleware Config
Middleware
OS Config
Hardware
© 2013 IBM Corporation
Introducing Web-based HOT Editor!
© 2013 IBM Corporation
Let’s get textual!
© 2013 IBM Corporation
Provide catalogs of available resources
Compute Network Storage
© 2013 IBM Corporation
Include Software Configuration!
UrbanCode Deploy
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
© 2013 IBM Corporation30
• Diagram editor• Source text editor • HOT as-you-type validation• Annotated TODO & errors• Quick palette for searching• Editor functions: Cut, Copy,
Paste, Find & Replace• Zoom diagram or text• Comment out infrastructure
Demo: Web-based design and provisioning
© 2013 IBM Corporation
IBM UrbanCode focuses on Release Automation
Drive down cost
Remove manual effort and wasted resource time with push button deployment processes
Speed time to market
Simple, graphical process designer, with built-in actions to quickly create deployment automation
Reduce risk
Robust configuration management, coordinated release processes, audits, and traceability
Enabling clients to more rapidly deliver mobile, cloud, big data and traditional applications with high quality and low risk
IBM UrbanCode Deploy automates the deployment of applications, databases and configurations into development, test and production environments, helping to drive down cost, speed time to market with reduced risk.
IBM UrbanCode Release is an intelligent collaboration release management solution that replaces error-prone manual spreadsheets and streamlines release activities for application and infrastructure changes.
© 2013 IBM Corporation
o Defined by the community and vendors
o Integration with UrbanCode Deploy enables rapid configuration of full application stack
o Support ongoing updates of deployed versions through UrbanCode Deploy
Example: Software
© 2013 IBM Corporation
IBM UrbanCode Deploy
o Application-centric view
o Understands components, environments, snapshots of verified component versions
o Promote from one environment to the next, with approval gates
© 2013 IBM Corporation
IBM UrbanCode Deploy & Heat Templates
o Extended to create environments in OpenStack!
o Provisioned resources made available for ongoing updates
© 2013 IBM Corporation
IBM UrbanCode Deploy & Heat Templates
o Choose HOT document, configuration, and parameters
o Discovery service provides easy access to Glance, Neutron, Cinder resources
© 2013 IBM Corporation36
• View current environments• Create new environments in
the cloud• Select available resources from
Nova, Neutron, Cinder• Validation feedback in place• Update environment over time• Deploy new component
versions
Demo: UrbanCode Deploy Consuming Cloud Patterns
© 2013 IBM Corporation
o Chose this approach to support multiple cloud targets from Heat
o Enable Heat to talk natively to different cloud APIs
o Support portability for customers who haven’t yet adopted OpenStack
Example: Decorating Amazon
© 2013 IBM Corporation40
• Provision Network architecture to OpenStack
• Provision Network architecture to Amazon (no OpenStack required)
• Select pre-defined configuration for each cloud
Demo: Cloud Portability
© 2013 IBM Corporation41
© 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.
www.ibm.com/software
© 2013 IBM Corporation