Applying Architectural Patterns for the Cloud: Lessons Learned - - PowerPoint PPT Presentation

applying architectural patterns for the cloud
SMART_READER_LITE
LIVE PREVIEW

Applying Architectural Patterns for the Cloud: Lessons Learned - - PowerPoint PPT Presentation

Applying Architectural Patterns for the Cloud: Lessons Learned During Pattern Mining and Application Ralph Retter (Daimler TSS GmbH) ralph.retter@daimler.com Christoph Fehling (University of Stuttgart, Germany) Problem We need to do Cloud


slide-1
SLIDE 1

Applying Architectural Patterns for the Cloud:

Lessons Learned During Pattern Mining and Application

Ralph Retter (Daimler TSS GmbH) ralph.retter@daimler.com Christoph Fehling (University of Stuttgart, Germany)

slide-2
SLIDE 2

Problem We need to do Cloud Computing!

We never did it like this before! We have always done it like this before! Where will we end, if everybody did it like that?

IaaS PaaS SaaS

elasticity

pay-per-use standardization

public private resource sharing hybrid SLA

location messaging

  • utsourcing

virtualization community

cost

business scale collaboration

storage compute availability provider network

process

multi-tenancy data center

architecture business model platform tooling management

dynamic

2

slide-3
SLIDE 3

Cloud Computing Architectural Patterns A Structured Approach

  • Structures the Problem using a Pattern Language
  • Focus: Application Architecture for the cloud

patterns mined at different enterprises by different people!

3

slide-4
SLIDE 4

The Reason

Why did we mine the patterns?

4

slide-5
SLIDE 5

We need to do Cloud! Typical Resulting Questions

  • "Which cloud infrastructure (provider) is the right one for our enterprise?“
  • "Is this application suitable for the cloud?"
  • "Why isn't it as easy to deploy an application in our data center as it is to

deploy a sample application in my favorite public cloud?“

5

slide-6
SLIDE 6

What Happens Next…

  • Business Process
  • Application
  • Platform
  • Infrastructure

bottom up approach

6

slide-7
SLIDE 7

Cloud Infrastructure

Typical Result of Bottom Up

Applications Server Server Server Server Server Server

(Virtual) Infra- structure

Applications Server Server Server Server Server Server

Virtual Infra- structure

Business Process Business Process

7

slide-8
SLIDE 8

What You Really Want

Cloud Infrastructure Applications Server Server Server Server Server Server Applications Server Server Server Server Server Server Business Process Business Process

(Virtual) Infra- structure Infra- structure

Cloud native applications

8

slide-9
SLIDE 9

The Approach

What we learned by mining and applying the patterns, and what they are good for!

9

slide-10
SLIDE 10

Real Requirements != We need to do Cloud!

  • Example requirements:
  • Deal with dynamic load patterns without provisioning for peak-load
  •  save money!
  • Make application deployments easier and faster …
  •  save time through standardization!

10

slide-11
SLIDE 11

Better Questions (Requirement Driven)

  • 1. Which of my business processes benefit from cloud

properties of underlying applications?

  • dynamic load patterns
  • Pay-per-use
  • Self service required?
  • 2. Which applications drive these business processes and

can they deal with:

  • Resource sharing / pooling
  • Elasticity as a result of requirement for dynamic load patterns

and pay per use?

  • 3. What (Cloud) Infrastructure and platforms are needed

to support these applications?

11

slide-12
SLIDE 12

Top Down Approach

  • Business Process
  • Application
  • Platform
  • Infrastructure

top down

12

slide-13
SLIDE 13

How To Use the Patterns

illustrative example - the coffee shop

13

slide-14
SLIDE 14

Requirements of Illustrative Example:

  • Functional
  • Make coffee-related specialities and sell them to walk-in customers
  • Non-functional requirements
  • Deal with varying amount of simultaneous customers according to

the time of the day

  • Maximize order throughput!
  • Keep lines as short as possible

14

slide-15
SLIDE 15

Traditional Small Coffee Shop Architecture

Coffee Shop Guy who

  • Takes order
  • Makes drink
  • Takes cash

You Coffee Machine Blender

15

slide-16
SLIDE 16

Cloud-Based Bigger Coffee Shop Architecture

You Coffee Shop Guy who

  • Takes order
  • Makes drink
  • Takes cash

Coffee Machine Blender Coffee Shop Guy who

  • Takes order
  • Makes drink
  • Takes cash

Coffee Machine Blender

16

slide-17
SLIDE 17

Example: Cloud Native Application Coffee-Shop Architecture

Cashier counter Pick-up counter

  • rder

Correlation Token (name)

You

„invoice“ Cash +name

Yummy Sweets Order (cup with correlation token) Complex processing

Notification With correlation token Enjoy! Pick up With correlation token

Elastic Web Frontend / Apps Elastic Complex Business Logic Message Queuing Data Store

Adapted from: Gregor Hohpe: Your Coffee Shop Doesn‘t Use Two-Phase Commit, IEEE Software 2005

17

slide-18
SLIDE 18

Cloud-Native Bigger Coffee Shop Architecture

Coffee Shop Barista You Cashier Coffee Machine Blender Barista Order Queue Output Queue Coffee Machine Blender

18

slide-19
SLIDE 19

Example Pattern: 3-Tier Cloud Native Application

Required Services @ Cloud Provider

Elastic Load Balancer Elastic Platform High-Available Message Oriented Middleware Elastic Infrastructure Scalable, High Available Data Store Elastic Queue

read

19

slide-20
SLIDE 20

Requirements on Cloud Platform / Infrastructure Requirements resulting from Application Design

Environment-based availability Node-based availability

vs.

20

slide-21
SLIDE 21

Some More Lessons Learned

  • Moving to virtualized Machines is not Cloud! Even if you automate it!
  • Consider environment-based availability and dynamic horizontal scaling
  • Use highly available messaging and storage platform offerings
  • Make sure you are aware of the CAP Theorem and it‘s

implications

– Decision to trade towards higher availability and eventual consistency has impact on business processes!

  • Modularization!
  • Make sure you can scale different parts of your system according to

their workload

  • Seperate short-running transactions with the user from long-running

transactions in backend

  • Use asynchronous messaging and compensation-based

transaction models in backend

  • Resource Sharing!

21

slide-22
SLIDE 22

Top-Down Approach + Pattern Map

Cloud Native Applications Application Components Composite (Hybrid) Cloud Applications Workload Patterns Application Development & Management Integration Multi-Tenancy Infrastructure & Platform Offerings (Network, Compute, Storage) & their Properties Fundametal Architecture

22

slide-23
SLIDE 23

Pattern Format

Title tle = Unique Name Intent nt = Purpose and Goal Icon to use in Diagrams Driving Question Context: When is this pattern applicable Solution: Brief escription how problem is solved Sketch: Big Picture how Pattern works Result: Detailed description of solution and its results Related Patterns: Links to other patterns Known Uses: Publicly Accessible Services, Solutions, Descriptions… that implement the pattern

23

slide-24
SLIDE 24

Cloud Computing Patterns - Summary

http://cloudcomputingpatterns.org

  • Composite Cloud Applications
  • Common use cases
  • Example Applications
  • Cloud Application Architectures
  • Building cloud applications
  • Integrating different clouds
  • Cloud Offerings
  • Processing, storage, and

communication functionality

  • Behavior of cloud offerings

 Provide runtime functionality

  • Cloud Computing Fundamendals
  • Cloud Service Models
  • Cloud Types
  • Application Workloads

 Characterize the environment

  • Cloud Application Management
  • Elasticity, resiliency, updates etc.
  • Automation of management

Composite Cloud Applications Cloud Computing Fundamentals Cloud Offerings Cloud Application Architectures Cloud Application Management Not all Cloud Computing Patterns are new! Many existing patterns can be transferred or simply used in the area of cloud computing.

24

slide-25
SLIDE 25

Questions?

http://cloudcomputingpatterns.org

ralph.retter@daimler.com

25