Delivered at IBM Innovate 2014. Original abstract:
How can you improve your customer feedback loop using iterative, full stack application design for the cloud?
In this presentation, we’ll cover an innovative new way of designing and versioning your cloud applications through a web-based environment development toolkit. With support for OpenStack and other cloud providers, we’re able to capture all aspects of your cloud-based application from compute, storage, and virtual networking all the way up to the application managed in UrbanCode Deploy. In a single click, you can stand up a new environment complete with application components deployed and ready to run. With built in configuration management, you can see the changes made by your automation to configure each node. And with UrbanCode Deploy’s inventory management system, you’ll always know what version of which component is deployed where.
Come learn about our new take on cloud design and get involved to provide us with feedback to make this offering exactly what you need.
2. Please note!
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.
Performance is based on measurements and projections using standard IBM benchmarks in
a controlled environment. The actual throughput or performance that any user will experience
will vary depending upon many factors, including considerations such as the amount of
multiprogramming in the user’s job stream, the I/O configuration, the storage configuration,
and the workload processed. Therefore, no assurance can be given that an individual user
will achieve results similar to those stated here.
3. IBM DevOps point of view!
Enterprise capability for continuous software delivery that enables organizations to
seize market opportunities and reduce time to customer feedback
Accelerate
software delivery –
for faster time to value
Balance speed, cost,
quality and risk –
for increased capacity
to innovate
Reduce time to
customer feedback –
for improved customer
experience
Our DevOps POV is resonating with clients and they are delivering
measurable business outcomes with DevOps
Continuous
Customer Feedback
& Optimization
Collaborative
Development
Continuous Release
and Deployment
Continuous
Monitoring
Continuous
Business Planning
Continuous
Testing
Operate Develop/
Test
Deploy
Steer
DevOps
Continuous
Feedback
4. • 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!
5. IBM DevOps increases velocity of application delivery!
• Rational CLM enabling Collaborative Development
• Rational Test Workbench and Rational Test Virtualization Server (GreenHat)
enabling Continuous Testing
• IBM UrbanCode solutions enabling Continuous Release and Deployment
• SmartCloud Monitoring, Worklight Quality Assurance, IBM Digital Analytics
and others enabling Continuous Monitoring, customer feedback
IBM UrbanCode Deploy
Release
Ra#onal
Team
Concert
Ra#onal
Focal
Point
Ra#onal
Requirements
Composer
Ra#onal
Build
Forge
IBM UrbanCode Release
6. Deploying cloud environments still slow and manual!
• Takes many hours to days to deploy cloud environment 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
7. 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
8. 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
Environment
Blueprint
9. • 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 pipeline !
Application !
Changes!
Infrastructure!
Changes!
10. What is a #fullstackapp ?
Application
Changes"
Infrastructure
Changes"
Consistent Incremental Change"
…" …"
14. • 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-Stack
Blueprint
Software Defined Delivery!
15. • 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 Stack
Blueprint
Config/
Params
Cloud A
Cloud B
Config/
Params
Software Defined Portability!
16. OpenStack Heat!
• 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
17. 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
DesignTemplatesDeployTemplates
vSys, vApp
Application
Middleware Config
Middleware
OS Config
Hardware
22. 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!
23. Manage Identity through OpenStack Identity API!!
o Users
authenticated
upon login with
keystone!
o Keystone
tokens used
for discovery
of existing
content!
!
24. 23!
• 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
25. 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. !
26. • Defined by the community
and vendors
• Integration with
UrbanCode Deploy
enables rapid
configuration of full
application stack
• Support ongoing updates
of deployed versions
through UrbanCode
Deploy
Example: Software!
27. 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!
28. IBM UrbanCode Deploy & Heat Templates!
o Extended to create
environments in
OpenStack!!
!
o Provisioned
resources made
available for
ongoing updates!
29. IBM UrbanCode Deploy & Heat Templates!
!
o Choose HOT
document,
configuration,
and parameters!
o Discovery
service provides
easy access to
Glance, Neutron,
Cinder resources!
30. 29!
• 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
31. • We’ve been in the tools business for a long time and
seen different approaches to common + vendor
information models
• Approaches like Java EE keep a common file (web.xml)
and then extend it with vendor content (ibm-web-bnd.xml)
• These approaches become harder to maintain over time
Managing Attributes from Different Clouds!
32. • Chose to extend the Heat Resource Types to understand
other Service API directly
• “Overlay” additional properties alongside Heat and use
the Resource Registry to implement different behavior
• Capability was restricted from Havana to Icehouse, so we
now embed properties in metadata
Cloud Portability through Decoration!
33. • Chose this approach to
support multiple cloud
targets from Heat
• Enable Heat to talk
natively to different cloud
APIs
• Support portability for
customers who haven’t
yet adopted OpenStack
Example: Decorating Amazon!
34. 33!
• Provision Network architecture to
OpenStack!
• Provision Network architecture to
Amazon (no OpenStack required)!
• Select pre-defined configuration for
each cloud!
Demo: Cloud Portability
35. Thank You!!
Your Feedback is Important!
Access the Innovate agenda tool to complete your
session surveys from your smartphone, laptop or
conference kiosk.
Michael D. Elder
mdelder@us.ibm.com | @mdelder
linkedin.com/in/mdelder
Maneesh Goyal
mgoyal@ca.ibm.com
ca.linkedin.com/in/maneeshgoyal/