2. Overview
• Agility means…
• Changing direction in a rapid response to a change in market conditions.
• Make the right move at the right time.
• Agility of enterprise applications - a critical factor in ensuring a successful, agile
business as the customer interface goes online and mobile.
• Cloud-based applications are not automatically agile, however.
• To make cloud-based applications agile…
• There has to be a commitment to platforms, tools, processes and people.
• Cloud-based apps have to be easy to change as possible.
• DevOps paradigm.
• Attention to the management of the underlying cloud infrastructure itself.
• Cloud Application Agility Index: Helps you sort out where you may face
challenges in agility and how you can address them.
2
3. The Impact of the New Digital
Services Economy
• Business is awash in changes in the way they connect with customers and
partners, as well as employees.
•
•
•
•
Growth in mobile device use and variety, the surge in tablets.
“Bring Your Own Device” (BYOD) trends.
43% increase in developers creating apps for business.*
63% of developers reporting either “increased” or “greatly increased” demand for
enterprise apps since the beginning of 2013.*
• Consumers expect to engage with businesses using interactive technologies that
are modern and feature-complete.
• The feature set will be continuously changing.
• In response, the application development teams in many businesses have started
to act like lean startups.
• Goal: Achieve the ultimate positive user experience or achieve the fastest
turnaround time for a new feature, change or bug fix.
• Goal: Quickly build software that creates differentiation and strategic advantage
• Developers and their counterparts in IT operations must work together.
* http://www.forbes.com/sites/parmyolson/2013/06/26/forget-angry-birds-more-developers-are-making-in-house-apps-for-companies/
3
4. Defining Cloud Application Agility
• Cloud application agility flows from business
agility.
• Enterprise applications were created to serve
business needs.
• Business managers tend define agility in terms
of the following questions:
• How quickly can you get feedback from the
end customer or customer-facing systems?
• How quickly can you decipher the
feedback?
• How quickly can you decide what needs to
be done?
• How quickly can you implement the plan?
• How quickly can you deploy the plan?
Launch
App
Deploy
App
Develop
new
version
Get
feedback
Plan
changes
4
5. We Can Do It More Quickly…
• IT managers are moving applications to the cloud.
• Several cloud application use cases out as candidates to help
businesses improve agility, including:
•
•
•
•
•
Development and test in the cloud
New cloud-based applications for both B2C and B2B scenarios,
Better on-premise applications, such as data analytics.
Hybrid cloud applications that connect to on-premise systems.
Migrating existing applications to the cloud.
5
6. Barriers to Application Agility
• Moving an application to the cloud does not ensure agility.
• Barriers to cloud application agility include:
• Lack of automation. “Lifting and Shifting” application images to the
cloud may cause development and deployment processes to cease to be
automated.
• Incompatible platforms and image management.
• Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS) platforms
have different specifications regarding VMs that they host.
• It is usually impossible to move a VM image from an on-premise server to an
IaaS instance without modification.
• If development activities persist on-premise while deployment to IaaS
requires continual updating of VM images, the process will slow down.
6
7. Solving the App Agility Challenge
• No magic bullet that will make cloud applications more agile.
• Levels of maturity in different disciplines will affect the organization’s ability to
make agile moves with cloud-based applications.
• View cloud application agility along two basic axes:
• DevOps, which is the merging of software development.
• IT operations; and cloud management.
• DevOps and cloud management together
• Essential agility factors: work stream and test automation, social collaboration
processes amongst people, and orchestration.
• Goal: Combine automation with collaboration, orchestration and management.
• Tooling
• People and practices.
• The best tooling in the world will never make an application agile if the people
involved are not working together in a coherent process.
7
8. DevOps and Cloud Management
• Development and Operations must be put on the same page in interpersonal
terms,
• Automation augments the unity of people and speeding up the build-test-release
process.
• Social collaboration helps stakeholders stay connected around specific events and
contexts.
• Transparent activity streams give individual and team visibility into what’s going on in
other work areas.
• DevOps needs to automate various orchestration and management tasks.
• Cloud management complements DevOps in making cloud applications agile.
• Infrastructure managers should ideally be able to migrate applications quickly and easily
between on-premise instances and multiple cloud IaaS providers.
• Application deployments and updates need to be continuous.
• The DevOps process can provide continuous delivery of code, but the cloud platform –
whatever it is – needs to be configured and tooled to enable continuous updating.
• Application-centric infrastructure
• Infrastructure that can be automatically configured to handle application-specific needs
optimally.
• Manages IaaS to the next level, allowing for application-specific configuration templates
that can scale and change on demand.
8
9. DevOps Agility Factors
Discipline
DevOps
Work Stream and Test
Automation
Embed Ops into Dev
and Dev into Ops
Automate the BuildTest-Release process
flow.
Add production
feedback loops into
development.
Integrate release
workflows between
dev, test and ops.
Unify requirements
management and issue
tracking.
Monitor build-releaseprovision process.
Automate work
allocation and task
management.
Agility Factor
Social Collaboration Process
Establish contextual
collaboration, e.g., around a
build failure or APM alert.
Set up real time
notifications, alerts and
social feeds.
Create real time,
transparent, activity streams
between all roles in dev,
test, ops, and product
management.
Provide open dashboard
with analytics/metrics.
Orchestration and Management
Automate code repo to
cloud deployment.
Governance/audits/
Compliance.
Manage performance of
builds/deploys/release
metrics and tracking.
All Up Agility Dashboard
Maintain a continually
updated database with
analytics across the
application life cycle and
across the project portfolio
makes all the difference
Enable multi-device
deployment and
composable services with
REST APIs
Manage provisioning and
access of APIs and monitor
API usage and service levels.
9
10. Cloud Management Agility Factors
Cloud Management
Hybrid/Multi-Cloud
Continuous application
Application-Centric
management
deployments/updates
Infrastructure
Unified cloud
Automated deployment
Provision infrastructure
management
based on automated
by application
Seamlessly span
triggers and values, from
architecture and by stages
multi-vendor private,
dev to test to staging.
(dev/test/staging/product
public and hybrid
Configure management
ion)
clouds. Model and
environments consistently
Automate through an
Build the application
across the application
application-driven policy
once but deploy
lifecycle.
model.
anywhere.
Support legacy and cloud
Centralize visibility with
Automated service
era applications.
real-time, application
delivery
Set up real time alerts
health monitoring.
Automate the end-toand root cause analysis.
Provide for auto-scaling
end delivery and
and fail over architecture.
management of
infrastructure and
application services
across cloud
Hybrid cloud
application
architecture
10
11. The Evolution of an Agile Cloud
Application Environment
Phase I
Simple build
engine
No deploy engine
Phase II
Simple build
engine
Deploy engine on
premise
Phase III
Phase IV
Elastic build engine
Deployment
staged and
handled by usage
feedback.
Elastic deploy
engine on cloud
• Phase I - Simple build engine to automate the basic workflow of application
development and testing. Deployment is manual.
• Phase II may include sub-optimal manual handoffs between automated
sequences of steps.
• Phase III is an agile state, with an elastic build engine and elastic deploy engine in
the cloud.
• Automating the application lifecycle does not necessarily mean that cloud
infrastructure will be automated in parallel.
11
12. The Cloud Application Agility Index
• Measure the sophistication of each of the six agility factors.
Discipline
DevOps
Work Stream and Test Automation
Agility Factor
Social Collaboration Process
0. No Automation
1. Build Automation
2. Test Automation
3. Deployment Automation
Cloud
Management
0. Limited/manual collaboration
1. Collaboration as culture but
not in tooling.
2. Collaboration built into tooling
3. Analytics-driven, optimized
collaboration processes.
Hybrid/Multi-Cloud management
Continuous application
deployments/updates
0. “One-Off” deployment
1. Semi-automated continuous
deployment with manual handoffs.
2. Continuous deployment
3. Analytics-based, self-optimizing
continuous deployment
0. Bare metal
1. Public cloud
2. Hybrid cloud
3. Self-running cloud
Orchestration and Management
0. Completely manual
orchestration
1. System/Tool events
orchestration
2. Software development events
orchestration
3. End user/Production event
orchestration
Application-Centric
Infrastructure
0. Infrastructure is unaware of
applications.
1. Manual implementation of
application-centric
infrastructure templates.
2. Automated, applicationcentric infrastructure.
3. Analytics-based, selfoptimizing application-centric
infrastructure
12
14. Metrics and Unified Management
• Any effort to achieve agility must be based on measurement.
• Throughput time for code going from requirements to dev, test
and deploy.
• Time and person-hours required to manage cloud infrastructure.
• Establish quantitative goals for improvement in agility.
• Tooling counts.
• Best case scenario: Orchestration and management platform
tie together all the toolsets of your choice and orchestrates all
the various processes and disciplines involved in making cloud
applications agile.
14
15. Conclusion
• Application agility is more crucial today than ever before.
• The cloud offers an opportunity to increase the speed of application
changes and scaling.
• But, it does not guarantee these results.
• Application agility in the cloud must be built through
process, people, and tooling.
• For applications to benefit from that Agility, you need to marry DevOps
and cloud management.
• The cloud application agility index provides a way to think about the
factors that affect agility in a particular organization.
15
16. Thank You!
• CloudMunch
• 10900 NE 8th Street, Suite 1000
Bellevue WA 98004
(425) 677-5767
• info@cloudmunch.com
• www.cloudmunch.com
16