Leveraging the unique benefits of the cloud requires a specialized approach to application architecture. The right design enables business agility, massive scaling, ability to burst, and high resiliency. Plus, it promotes resource efficiency and can minimize costs. If you are involved in providing applications or services in the cloud, attend this session to learn the principles of cloud-aware application design and to explore emerging architectural patterns which maximize cloud advantages.
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Forecast 2014: Cloud-Aware Applications
1. THE OPEN DATA CENTER ALLIANCE:
CLOUD-AWARE APPLICATIONS
Catherine Spence
Chair, Technical Coordination Committee, ODCA
IT principal Engineer, Intel
Dave Casper
Chair, Infrastructure Work Group, ODCA
CTO, North America, Moogsoft
3. OVERVIEW
Why is it important to design for cloud?
• Cloud is latest evolutionary force that’s transformational
• The right design enables business agility, massive scaling, ability to burst,
and high resiliency.
• Cloud promotes resource efficiency and can minimize costs.
• The lack of cloud-aware applications hinders innovative hybrid cloud usages.
3
3
4. 4
DEVELOPER OPPORTUNITY
• Gain an understanding of the new paradigm and the
fundamental differences that apply to the cloud
• Recognize and apply key software design patterns that
characterize well-designed cloud-aware applications
• Continuously develop the skills required to take full benefits
of transformational paradigms such as cloud computing
5. 5
ODCA ENTERPRISE ADOPTION ROADMAP
Stage 1 Stage 2 Stage 3 Stage 4 Stage 5
End User
App Dev
App
Owner
IT Ops
Federated,
Interoperable,
and Open
Cloud
Simple SaaS
Enterprise
Legacy Apps
Simple
Compute IaaS
Compute,
Storage, and
Network
Simple SaaS
Cloud Aware Apps
Enterprise
Legacy Apps
Complex
Compute IaaS
Simple Compute
IaaS
Compute,
Storage, and
Network
Complex SaaS Hybrid SaaS
Cloud Aware
Apps
Legacy Apps
Cloud Aware
Apps
Legacy Apps
Private PaaS Hybrid PaaS
Full Private
IaaS Hybrid IaaS
Consumers
Start
Legacy Applications on
dedicated Infrastructure
6. EVOLUTION OF APP ARCHITECTURE
Multi-Tier App
Architecture
Virtualized
Multi-Tier
Cloud App
Architecture
• Evolution concurrent with advances in computer hardware,
virtualization, networking, personal computing, and mobility
• Transformational but not revolutionary
6
9. 9
HIGH PRIORITY STRUCTURAL PRINCIPLES
Resilient to
Failure
Resilient to
Latency Secure
SOA/Compose-ability
Elastically
Scalable
Location
Independent
Internal construction -> coding your app for cloud
10. ADDITIONAL STRUCTURAL PRINCIPLES
10
Designed for
Manageability
Infrastructure
Independent Defined Tenancy End user Self-
Service
Bandwidth Aware Cost + Resource
Consumption Aware
Medium
Priority
Lower
Priority
10
11. 11
USING CLOUD-AWARE PRINCIPLES
• Intel IT Example - defining cloud “star” criteria
• Will be formally captured as part of application profiling
DRAFT
15. 15
STATELESS SERVICES PATTERN
#1 #2 #3 VM VM
Load
Balancer
Client 1 Client 2
VM
• Small instances scale out
• RESTful calls
• Pass everything you need in
to execute the call
Request Request
References: http://en.wikipedia.org/wiki/Service_statelessness_principle
16. Token-based access
control using APIs -
OAuth
16
AUTHORIZATION PATTERN
References: http://tools.ietf.org/html/rfc6749
http://www.safecode.org/publications/SAFECode_CSA_Cloud_Final1213.pdf
17. Cloud Application Maturity Model
Level 3: Adaptive
Level 2: Abstracted
Level 1: Loosely Coupled
Level 0: Virtualized
▪ Application can dynamically migrate across
infrastructure providers without interruption of
service
▪ Application can elastically scale out/in appropriately
based on stimuli
▪ Services are stateless
▪ Application is unaware and unaffected by failure of
dependent services
▪ Application is infrastructure agnostic, and can run
anywhere
▪ Application is composed of loosely coupled services
▪ Application services are discoverable by name
▪ Application compute and storage are separated
▪ Application consumes one or more cloud services:
compute, storage, network
▪ Application runs on virtualized infrastructure
▪ Application can be instantiated from an image or
script
17
21. 21
INTEL CLOUD-AWARE CODE-A-THONS
Enterprise training event
• Code and land apps in
Intel’s cloud
• Compete for prizes
• One day session format
Results
Held 8 codeathons globally
Trained over 100 developers
Delivered over 60 apps
Created key learnings &
demand for PaaS
Sample Apps Created
Conference Room Waitlist
Find a Parking Spot
Enterprise Fund Starter
IT Issue Logging with Pictures
Café Fruit Status (Banana Finder)
22. ODCA HACKATHON
September 22-24 San Francisco
Build a real cloud app for non-profits
Compete to win best cloud-aware app
Deliver open source code for reuse
Theme: Create an app for non-profits to
request volunteer assistance
Sponsored by HP & Intel
22
24. 24
KEY MESSAGES
• Cloud-aware apps are more flexible,
interoperable and resource efficient
• Evolutionary set of structural principles
and operational strategies
• Design patterns provide useful
examples of how to implement cloud
principles
• Hackathons allow developers to
practice and learn more