SlideShare a Scribd company logo
Architectures For The Cloud
     Eberhard Wolff
     Architecture & Technology Manager
     adesso AG
     Twitter: @ewolff
     Blog: http://ewolff.com




29.06.11
What is Cloud?
►    National Institute for Standards and Technology (NIST) Definition


►    On-demand self-service
     >  Through a portal, no human interaction
     >  Only pay what you need
►    Broad network access
     >  Standard access through the network
►    Resource pooling
     >  Server multiple customers with the same set of resources
►    Rapid elasticity
     >  More resources are available quickly
►    Measured Service
     >  Resources can be monitored




29.06.11
Cloud Deployment Model
►    Public
     >  Available to general public


►    Private
     >  Available to only one organization


►    Community
     >  Available to several organizations


►    Hybrid
     >  Combination of multiple models




29.06.11   3
IaaS – PaaS – SaaS


     Infrastructure                  Platform              Software
      as a Service                 as a Service           as a Service


> Virtual Servers             > Virtual App Server   > Software or Service
                                                       that you use
> Similar to Virtualization   > Handles Scale-Out

                                                     > Components that you
> Manage Everything           > Mostly Managed by      add/integrate into your
  Yourself                      Provider               app
Why Cloud?
►    Costs
►    CapEx (CAPital EXpenditure) vs. OpEx ("OPerational
     EXpenditure")
►    Only really works for Public Cloud


►    Business agility
►    Self Service portals - no more tickets
►    Can create production like environments cheaply and quickly
►    Original reason for Amazon to create a Cloud infrastructure:
     Software Engineers still spent 70% of their time on
     infrastructure
►    Also for Private Cloud


►    Business drives IT into the Cloud



29.06.11     5
How Is Cloud Different?
Architectures For The Cloud
How is Cloud Different?
►    Can easily and cheaply add new resources
     >  Prefer starting new instances over highly available instances
     >  Prefer adding instances over using a more powerful instance
     >  Might end up with lots of instances


►    Prefer dealing with failure over providing a highly available network


►    So basically lots of non powerful instances with an unreliable network


►    How can you end up with a reliable system then?




29.06.11   8
Enter Spring Biking!

►    The revolutionary web site to create customized bikes!
►    We got a few million € Venture Capital


►    We need...
     >  Catalog of all Mountain Bike parts and bikes
     >  System to configure custom Mountain Bikes
     >  Order system


►    Cloud good idea
     >  No CapEx
     >  Rapid elasticity -> easy to grow


►    Focusing on German market
Spring Biking: Architecture
                              ►    Standard Enterprise Architecture


                              ►    Relational database
            Application
              (Order,
           Configuration,
             Catalog)




                Database



29.06.11   10
Spring Biking: Architecture
                              ►    Standard Enterprise Architecture




Wait, didn’t you
            Application
              (Order,
           Configuration,
                              ►    Relational database




say it should run
             Catalog)




in the Cloud?   Database



29.06.11   11
How Spring Biking Deals with Cloud Challenges
►    No state on the web tier
     >  i.e. no session
     >  State stored in database
                                                            Application
►    No CAP issues on the web tier – no data                  (Order,
►    Easy to automatically start new instances if load     Configuration,
     increases
                                                             Catalog)
►    Every PaaS should deal with elastic scaling
►    Example: Amazon Elastic Beanstalk
     >  Takes a standard Java WAR
     >  Deploys it
     >  Add elastic scaling
►    Could build something similar yourself with an IaaS
     >  Automated deployment
     >  Elastic scaling and load balancing available
        from Amazon IaaS offerings


29.06.11   12
How Spring Biking Deals with Cloud Challenges
►    Relational database fine for now
     >  Example: Amazon RDS (Relational Database Service)
     >  MySQL and Oracle
     >  MySQL: Multi data center replication
     >  Can deal with failure of one data center


►    Add Content Delivery Network (CDN)
     >  Not too many PaaS in Europe or Germany
                                                            Database
     >  Latency effects revenue
        –  Every 100ms latency costs Amazon 1% of revenue
     >  So add CDN to lower latency




29.06.11   13
Benefits for the Development Process
►    Trivial to get a new version out
►    Easy to create a production like environment for test or
     staging
     >  Take snapshot from production database
     >  Set up new database with snapshot
     >  Create a new environment with a different release of
        the software
     >  Automated for production
     >  Production-like sizing acceptable: You pay by the
        hour


►    This can also be done using Private Clouds!
►    Can be more important than cost reduction
►    Business Agility is a major driver for (private) Cloud!




29.06.11   14
Next step: Spring Biking Goes Global!
►    Global demand for bikes is on all time high!
►    We need to globalize the offering


►    A central RDBMS for the global system is not acceptable
     >  Amazon RDS offers one uniform database for a Region
        (e.g. US-East, EU-West)
     >  Need a different solution for a global system


►    Just an example
►    Traditional Enterprise scales to a certain limit
►    The question is which


►    We are not all going to build Twitter or Facebook




29.06.11   15
CAP Theorem
►    Consistency
     >  All nodes see the same data


►    Availability
     >  Node failure do not prevent survivors from operating


►    Partition Tolerance
     >  System continues to operate despite arbitrary message loss
                                                                     C
►    Can at max have two




                                                                 P       A



29.06.11   16
CAP Theorem


                Consistency


                               RDBMS
       Quorum                   2 Phase
                                Commit




   Partition
  Tolerance  Replication DNS   Availability
CAP Theorem in the Cloud
►    Need A – Availability
     >  A system that is not available is usually the worst thing
     >  Shutting down nodes is no option


►    Need P – Partition Tolerance
     >  Network is not under your control
     >  Lots of nodes -> partitioning even more likely


►    No chance for C – Consistency                                      C
     >  Because we can’t


►    CA used to be OK with a highly available network and a few nodes

                                                                    P       A



29.06.11   18
BASE
►    Basically Available Soft state Eventually consistent
►    I.e. trade consistency for availability


►    Eventually consistent
     >  If no updates are sent for a while all previous updates
        will eventually propagate through the system
     >  Then all replicas are consistent
     >  Can deal with network partitioning: Message will be
        transferred later


►    All replicas are always available


►    Pun concerning ACID…




29.06.11    19
BASE in Spring Biking


           Application                     Application   Application




           Database                        Database      Database

                 EU-West                     US-East       Asia-Pacific



                   Changes to catalog
                   Eventually propagated




29.06.11    20
Network Partitioning / Inconsistency


           Application                  Application   Application




           Database                     Database      Database
Eventually
Inconsistent
data is    EU-West                        US-East       Asia-Pacific
consistent




                         Network
                         Partitioning



29.06.11    21
Implementing BASE Using Event Sourcing
►    Do it yourself using a messaging system
     >  JMS (ActiveMQ …)
     >  RabbitMQ
                                                        Event                 Domain
     >  Amazon Simple Queue Service (SQS)                                     Model
     >  Amazon Simple Notification Server (SNS)
     >  Easy to duplicate state on nodes
     >  Fail safe: Message will eventually be transferred
     >  …and high latency is acceptable


►    Other reason to use Event Sourcing
     >  Capture all changes to an application state as a sequence of events
     >  Originates in Domain Driven Design
     >  Also used as a log of actions (to replay, reverse etc)


►    Might end up with an Event-driven Architecture
     >  Might add Complex Event Processing etc.
29.06.11   22
Implementing BASE Using NoSQL
►    Some NoSQL databases include replication


►    Example: CouchDB
     >  Replication between nodes
     >  Master-master replication using versioning
     >  Trivial to set up
     >  All nodes have the same data
     >  Sharding only possible with additional proxies




29.06.11   23
More Sophistacted
►    Apache Cassandra


►    Each node is master for certain
     data
►    Data is replicated to N nodes
►    Data is read from R nodes
►    After a write W nodes must acknowledge
►    N,R,W are configurable


►    Replication done automatically
►    Clustering built in
►    Tuneable CAP




29.06.11    24
Different Parts Require Different Architecture
►    So far: Catalog
     >  Data must be available on each node
     >  Slight inconsistencies are OK                   Application
     >  i.e. new item added to catalog


►    Stock information should be consistent
     >  So customers are not disappointed          Catalog
     >  Might use caching-like structure


►    Orders are immediately send to the back end
     >  No local storage at all                              Order

►    A lot more catalog browsing than ordering




29.06.11   25
More load on catalog ->                    Less load on order ->
                      More instances                             Less instances


           Catalog                              Catalog              Order


                                                                          No local
                     Stock                               Stock            data
Database                             Database                             All send to
                     Cache                               Cache            backend




           Updates
                                                Stock
                                                Master
29.06.11   26
Handling Log Files
►    Business requirements
     >  Need to measure hits on web pages
     >  Need to measure hits for individual products etc.


►    Sounds like a batch
     >  File in, statistics out


►    But: Data is globally distributed
►    Lots of data i.e. cannot be collected at
     a central place
►    Data should stay where it is


►    Some nodes might be offline or not available
►    Prefer incomplete answer over no answer at all


29.06.11    27
More Than CAP
►    CAP Theorem again
►    Consistency, Availability, Network Partitioning
►    You can only have two


►    But: We want Availability
►    …and a flexible trade off between Consistency and Network Partitioning
►    Like Casssandra

                                                                              C
►    I.e. CAP theorem is not the proper way to think about this




                                                                  P               A



29.06.11   28
Harvest and Yield
►    Yield: Probability of completing a request
►    Harvest: Fraction of data represented in the result


►    Harvest and Yield vs. CAP
►    Yield = 100% -> Availability
►    Harvest = 100% -> Consistency


►    Can be used to think about Cassandra configurations


►    Can also be used to execute some logic on all data
►    …and wait until enough harvest is there to answer a query


►    So: Send out a query to all log files
►    …and collect the results

29.06.11   29
Map / Reduce
►    Map: Apply a function to all data
     >  Emit (item name, 1) for each log file line
►    Master sorts by item name
►    Reduce: Add all (item name, 1) to the total score


►    Map can be done on any node
►    Master collects data



                                                         Reduce


                                                     Map     Map
Another Case Study
►    Financials


►    Build a Highly Available, High Throughput System, Low Latency System on
     Standard Hardware!
►    Just like Google and Amazon


►    Driver: Standard infrastructure – cheap and stable
►    Driver: Even more availability, throughput, scalability and lower latency


►    You will need to consider CAP, BASE, Harvest & Yield etc.
►    Very likely in a Private Cloud




29.06.11   31
Another Case Study
►    Random Project


►    Make deployment easier!
►    Make it easy to create test environment!
►    Driver: Business Agility and Developer Productivity
►    Will need to use automated installation + IaaS or PaaS
►    Might be in a Public or Private Cloud




29.06.11   32
Custom Self Service Portal




29.06.11   33
Conclusion
►    Current PaaS allow to run Enterprise applications unchanged
►    At one point you will need to change


►    CAP: Consistency, Availability, Partition Tolerance – choose two
►    Cloud: AP, no C


►    BASE: Basically Available, Soft State, Eventually Consistent
►    Can be implemented using Event Sourcing
►    …or a NoSQL persistence solution


►    Create multiple deployment artifacts to scale each part


►    Harvest / Yield: Fine grained CAP
►    Map / Reduce to run batches in the Cloud

29.06.11   34

More Related Content

PDF
Veeam suite v8
PPTX
Veeam - Digital Transformation event 29 feb - EuroSys
PPTX
Veeam Backup & Replication Tips and Tricks
PDF
What’s new in Veeam Availability Suite v9
PPTX
Rearchitecting Storage for Server Virtualization
PDF
Scaling Xen within Rackspace Cloud Servers
PDF
Xen community update
PPTX
Veeam webinar - Deduplication best practices
Veeam suite v8
Veeam - Digital Transformation event 29 feb - EuroSys
Veeam Backup & Replication Tips and Tricks
What’s new in Veeam Availability Suite v9
Rearchitecting Storage for Server Virtualization
Scaling Xen within Rackspace Cloud Servers
Xen community update
Veeam webinar - Deduplication best practices

What's hot (20)

PPT
Double-Take Software
PDF
Securing your cloud with Xen's advanced security features
PPTX
The 8 Advantages of Parallels Web Solutions for your Hosting Business - Andr...
PPTX
Integration with EMC VNX and VNXe hybrid storage arrays
PDF
Cloud Computing Hypervisors and Comparison Xen KVM
PDF
VM Live Migration Speedup in Xen
PDF
Xrm xensummit
PDF
Aplura virtualization slides
PPT
The Pensions Trust - VM Backup Experiences
PDF
Xen @ Google, 2011
PDF
VMware vSphere vMotion: 5.4 times faster than Hyper-V Live Migration
PDF
Business-critical MySQL with DR in vCloud Air
PPTX
Veean Backup & Replication
PPTX
Ansible & CloudStack - Configuration Management
PPTX
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
PPTX
VMworld 2015: vSphere Web Client- Yesterday, Today, and Tomorrow
PDF
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
PDF
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
PPTX
Inf bco2891 release candidate v11 copy
PPTX
Vnx series-technical-review-110616214632-phpapp02
Double-Take Software
Securing your cloud with Xen's advanced security features
The 8 Advantages of Parallels Web Solutions for your Hosting Business - Andr...
Integration with EMC VNX and VNXe hybrid storage arrays
Cloud Computing Hypervisors and Comparison Xen KVM
VM Live Migration Speedup in Xen
Xrm xensummit
Aplura virtualization slides
The Pensions Trust - VM Backup Experiences
Xen @ Google, 2011
VMware vSphere vMotion: 5.4 times faster than Hyper-V Live Migration
Business-critical MySQL with DR in vCloud Air
Veean Backup & Replication
Ansible & CloudStack - Configuration Management
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
VMworld 2015: vSphere Web Client- Yesterday, Today, and Tomorrow
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
Inf bco2891 release candidate v11 copy
Vnx series-technical-review-110616214632-phpapp02
Ad

Viewers also liked (20)

PDF
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
PDF
WSO2 Stratos 2010 September Workshop
PDF
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
PPTX
Cloud101-Introduction to cloud
PPTX
Cloud computing doing more with less
PPTX
Cloud roadmap
DOCX
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
PPTX
Cloud Computing: A New Trend in IT
PDF
Managing A Cloud Environment: How To Get Started And Which Way To Go
PPTX
Managing Trade-offs among Architectural Tactics using Feature models and Feat...
PDF
Is your infrastructure holding you back?
PDF
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
PPTX
How to move to the cloud
PDF
Concerns with cloud computing
PDF
The shortest path to cloud success - your roadmap
PDF
Building Cloud Tools for Netflix
PDF
Multi-tenancy in the cloud
PPTX
Saa s multitenant database architecture
PDF
Multi cloud PaaS
PPTX
Cloud: Session 7: Cloud Computing, Software as a Service, and Sales Forecasting
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
WSO2 Stratos 2010 September Workshop
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
Cloud101-Introduction to cloud
Cloud computing doing more with less
Cloud roadmap
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
Cloud Computing: A New Trend in IT
Managing A Cloud Environment: How To Get Started And Which Way To Go
Managing Trade-offs among Architectural Tactics using Feature models and Feat...
Is your infrastructure holding you back?
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
How to move to the cloud
Concerns with cloud computing
The shortest path to cloud success - your roadmap
Building Cloud Tools for Netflix
Multi-tenancy in the cloud
Saa s multitenant database architecture
Multi cloud PaaS
Cloud: Session 7: Cloud Computing, Software as a Service, and Sales Forecasting
Ad

Similar to Architectures For The Cloud (20)

PDF
Java in the Cloud : PaaS Platforms in Comparison
PDF
Java in the Cloud : PaaS Platforms in Comparison
PPTX
cluster computing
PPTX
PDF
How to get started with Oracle Cloud Infrastructure
PPTX
No sql databases
PPTX
Dimension data cloud for the enterprise architect
PPTX
LIQUID-A Scalable Deduplication File System For Virtual Machine Images
PPTX
Dell EMC Elastic Cloud Storage - Kemp at Network Field Day, DellTechWorld
PDF
Virtual Storage Center
PPTX
AWS Cloud Computing Tech Talks By Halieb Andemichael
PDF
Primend praktiline pilveseminar 2014 - Simplivity Omnicube, esimene samm pilve
PPSX
CloudStack + KVM: Your Local Cloud Lab
PPTX
TDS-16489U-R2 0215 EN
DOC
Consistency as a service auditing cloud consistency
PPTX
Microsoft Azure Cloud Basics Tutorial
PPTX
cloude computing
PPTX
W jak sposób architektura hipekonwergentna cisco simplivity usprawni działani...
ODP
PDF
Elastically Scaling Kafka Using Confluent
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
cluster computing
How to get started with Oracle Cloud Infrastructure
No sql databases
Dimension data cloud for the enterprise architect
LIQUID-A Scalable Deduplication File System For Virtual Machine Images
Dell EMC Elastic Cloud Storage - Kemp at Network Field Day, DellTechWorld
Virtual Storage Center
AWS Cloud Computing Tech Talks By Halieb Andemichael
Primend praktiline pilveseminar 2014 - Simplivity Omnicube, esimene samm pilve
CloudStack + KVM: Your Local Cloud Lab
TDS-16489U-R2 0215 EN
Consistency as a service auditing cloud consistency
Microsoft Azure Cloud Basics Tutorial
cloude computing
W jak sposób architektura hipekonwergentna cisco simplivity usprawni działani...
Elastically Scaling Kafka Using Confluent

More from Eberhard Wolff (20)

PDF
Architectures and Alternatives
PDF
Beyond Microservices
PDF
The Frontiers of Continuous Delivery
PDF
Four Times Microservices - REST, Kubernetes, UI Integration, Async
PDF
Microservices - not just with Java
PDF
Deployment - Done Right!
PDF
Data Architecture not Just for Microservices
PDF
How to Split Your System into Microservices
PDF
Microservices and Self-contained System to Scale Agile
PDF
How Small Can Java Microservices Be?
PDF
Data Architecturen Not Just for Microservices
PDF
Microservices: Redundancy=Maintainability
PDF
Self-contained Systems: A Different Approach to Microservices
PDF
Microservices Technology Stack
PDF
Software Architecture for Innovation
PDF
Five (easy?) Steps Towards Continuous Delivery
PDF
Nanoservices and Microservices with Java
PDF
Microservices: Architecture to Support Agile
PDF
Microservices: Architecture to scale Agile
PDF
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Architectures and Alternatives
Beyond Microservices
The Frontiers of Continuous Delivery
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Microservices - not just with Java
Deployment - Done Right!
Data Architecture not Just for Microservices
How to Split Your System into Microservices
Microservices and Self-contained System to Scale Agile
How Small Can Java Microservices Be?
Data Architecturen Not Just for Microservices
Microservices: Redundancy=Maintainability
Self-contained Systems: A Different Approach to Microservices
Microservices Technology Stack
Software Architecture for Innovation
Five (easy?) Steps Towards Continuous Delivery
Nanoservices and Microservices with Java
Microservices: Architecture to Support Agile
Microservices: Architecture to scale Agile
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
Teaching material agriculture food technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Machine learning based COVID-19 study performance prediction
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
Digital-Transformation-Roadmap-for-Companies.pptx
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Teaching material agriculture food technology
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Reach Out and Touch Someone: Haptics and Empathic Computing

Architectures For The Cloud

  • 1. Architectures For The Cloud Eberhard Wolff Architecture & Technology Manager adesso AG Twitter: @ewolff Blog: http://ewolff.com 29.06.11
  • 2. What is Cloud? ►  National Institute for Standards and Technology (NIST) Definition ►  On-demand self-service >  Through a portal, no human interaction >  Only pay what you need ►  Broad network access >  Standard access through the network ►  Resource pooling >  Server multiple customers with the same set of resources ►  Rapid elasticity >  More resources are available quickly ►  Measured Service >  Resources can be monitored 29.06.11
  • 3. Cloud Deployment Model ►  Public >  Available to general public ►  Private >  Available to only one organization ►  Community >  Available to several organizations ►  Hybrid >  Combination of multiple models 29.06.11 3
  • 4. IaaS – PaaS – SaaS Infrastructure Platform Software as a Service as a Service as a Service > Virtual Servers > Virtual App Server > Software or Service that you use > Similar to Virtualization > Handles Scale-Out > Components that you > Manage Everything > Mostly Managed by add/integrate into your Yourself Provider app
  • 5. Why Cloud? ►  Costs ►  CapEx (CAPital EXpenditure) vs. OpEx ("OPerational EXpenditure") ►  Only really works for Public Cloud ►  Business agility ►  Self Service portals - no more tickets ►  Can create production like environments cheaply and quickly ►  Original reason for Amazon to create a Cloud infrastructure: Software Engineers still spent 70% of their time on infrastructure ►  Also for Private Cloud ►  Business drives IT into the Cloud 29.06.11 5
  • 6. How Is Cloud Different?
  • 8. How is Cloud Different? ►  Can easily and cheaply add new resources >  Prefer starting new instances over highly available instances >  Prefer adding instances over using a more powerful instance >  Might end up with lots of instances ►  Prefer dealing with failure over providing a highly available network ►  So basically lots of non powerful instances with an unreliable network ►  How can you end up with a reliable system then? 29.06.11 8
  • 9. Enter Spring Biking! ►  The revolutionary web site to create customized bikes! ►  We got a few million € Venture Capital ►  We need... >  Catalog of all Mountain Bike parts and bikes >  System to configure custom Mountain Bikes >  Order system ►  Cloud good idea >  No CapEx >  Rapid elasticity -> easy to grow ►  Focusing on German market
  • 10. Spring Biking: Architecture ►  Standard Enterprise Architecture ►  Relational database Application (Order, Configuration, Catalog) Database 29.06.11 10
  • 11. Spring Biking: Architecture ►  Standard Enterprise Architecture Wait, didn’t you Application (Order, Configuration, ►  Relational database say it should run Catalog) in the Cloud? Database 29.06.11 11
  • 12. How Spring Biking Deals with Cloud Challenges ►  No state on the web tier >  i.e. no session >  State stored in database Application ►  No CAP issues on the web tier – no data (Order, ►  Easy to automatically start new instances if load Configuration, increases Catalog) ►  Every PaaS should deal with elastic scaling ►  Example: Amazon Elastic Beanstalk >  Takes a standard Java WAR >  Deploys it >  Add elastic scaling ►  Could build something similar yourself with an IaaS >  Automated deployment >  Elastic scaling and load balancing available from Amazon IaaS offerings 29.06.11 12
  • 13. How Spring Biking Deals with Cloud Challenges ►  Relational database fine for now >  Example: Amazon RDS (Relational Database Service) >  MySQL and Oracle >  MySQL: Multi data center replication >  Can deal with failure of one data center ►  Add Content Delivery Network (CDN) >  Not too many PaaS in Europe or Germany Database >  Latency effects revenue –  Every 100ms latency costs Amazon 1% of revenue >  So add CDN to lower latency 29.06.11 13
  • 14. Benefits for the Development Process ►  Trivial to get a new version out ►  Easy to create a production like environment for test or staging >  Take snapshot from production database >  Set up new database with snapshot >  Create a new environment with a different release of the software >  Automated for production >  Production-like sizing acceptable: You pay by the hour ►  This can also be done using Private Clouds! ►  Can be more important than cost reduction ►  Business Agility is a major driver for (private) Cloud! 29.06.11 14
  • 15. Next step: Spring Biking Goes Global! ►  Global demand for bikes is on all time high! ►  We need to globalize the offering ►  A central RDBMS for the global system is not acceptable >  Amazon RDS offers one uniform database for a Region (e.g. US-East, EU-West) >  Need a different solution for a global system ►  Just an example ►  Traditional Enterprise scales to a certain limit ►  The question is which ►  We are not all going to build Twitter or Facebook 29.06.11 15
  • 16. CAP Theorem ►  Consistency >  All nodes see the same data ►  Availability >  Node failure do not prevent survivors from operating ►  Partition Tolerance >  System continues to operate despite arbitrary message loss C ►  Can at max have two P A 29.06.11 16
  • 17. CAP Theorem Consistency RDBMS Quorum 2 Phase Commit Partition Tolerance Replication DNS Availability
  • 18. CAP Theorem in the Cloud ►  Need A – Availability >  A system that is not available is usually the worst thing >  Shutting down nodes is no option ►  Need P – Partition Tolerance >  Network is not under your control >  Lots of nodes -> partitioning even more likely ►  No chance for C – Consistency C >  Because we can’t ►  CA used to be OK with a highly available network and a few nodes P A 29.06.11 18
  • 19. BASE ►  Basically Available Soft state Eventually consistent ►  I.e. trade consistency for availability ►  Eventually consistent >  If no updates are sent for a while all previous updates will eventually propagate through the system >  Then all replicas are consistent >  Can deal with network partitioning: Message will be transferred later ►  All replicas are always available ►  Pun concerning ACID… 29.06.11 19
  • 20. BASE in Spring Biking Application Application Application Database Database Database EU-West US-East Asia-Pacific Changes to catalog Eventually propagated 29.06.11 20
  • 21. Network Partitioning / Inconsistency Application Application Application Database Database Database Eventually Inconsistent data is EU-West US-East Asia-Pacific consistent Network Partitioning 29.06.11 21
  • 22. Implementing BASE Using Event Sourcing ►  Do it yourself using a messaging system >  JMS (ActiveMQ …) >  RabbitMQ Event Domain >  Amazon Simple Queue Service (SQS) Model >  Amazon Simple Notification Server (SNS) >  Easy to duplicate state on nodes >  Fail safe: Message will eventually be transferred >  …and high latency is acceptable ►  Other reason to use Event Sourcing >  Capture all changes to an application state as a sequence of events >  Originates in Domain Driven Design >  Also used as a log of actions (to replay, reverse etc) ►  Might end up with an Event-driven Architecture >  Might add Complex Event Processing etc. 29.06.11 22
  • 23. Implementing BASE Using NoSQL ►  Some NoSQL databases include replication ►  Example: CouchDB >  Replication between nodes >  Master-master replication using versioning >  Trivial to set up >  All nodes have the same data >  Sharding only possible with additional proxies 29.06.11 23
  • 24. More Sophistacted ►  Apache Cassandra ►  Each node is master for certain data ►  Data is replicated to N nodes ►  Data is read from R nodes ►  After a write W nodes must acknowledge ►  N,R,W are configurable ►  Replication done automatically ►  Clustering built in ►  Tuneable CAP 29.06.11 24
  • 25. Different Parts Require Different Architecture ►  So far: Catalog >  Data must be available on each node >  Slight inconsistencies are OK Application >  i.e. new item added to catalog ►  Stock information should be consistent >  So customers are not disappointed Catalog >  Might use caching-like structure ►  Orders are immediately send to the back end >  No local storage at all Order ►  A lot more catalog browsing than ordering 29.06.11 25
  • 26. More load on catalog -> Less load on order -> More instances Less instances Catalog Catalog Order No local Stock Stock data Database Database All send to Cache Cache backend Updates Stock Master 29.06.11 26
  • 27. Handling Log Files ►  Business requirements >  Need to measure hits on web pages >  Need to measure hits for individual products etc. ►  Sounds like a batch >  File in, statistics out ►  But: Data is globally distributed ►  Lots of data i.e. cannot be collected at a central place ►  Data should stay where it is ►  Some nodes might be offline or not available ►  Prefer incomplete answer over no answer at all 29.06.11 27
  • 28. More Than CAP ►  CAP Theorem again ►  Consistency, Availability, Network Partitioning ►  You can only have two ►  But: We want Availability ►  …and a flexible trade off between Consistency and Network Partitioning ►  Like Casssandra C ►  I.e. CAP theorem is not the proper way to think about this P A 29.06.11 28
  • 29. Harvest and Yield ►  Yield: Probability of completing a request ►  Harvest: Fraction of data represented in the result ►  Harvest and Yield vs. CAP ►  Yield = 100% -> Availability ►  Harvest = 100% -> Consistency ►  Can be used to think about Cassandra configurations ►  Can also be used to execute some logic on all data ►  …and wait until enough harvest is there to answer a query ►  So: Send out a query to all log files ►  …and collect the results 29.06.11 29
  • 30. Map / Reduce ►  Map: Apply a function to all data >  Emit (item name, 1) for each log file line ►  Master sorts by item name ►  Reduce: Add all (item name, 1) to the total score ►  Map can be done on any node ►  Master collects data Reduce Map Map
  • 31. Another Case Study ►  Financials ►  Build a Highly Available, High Throughput System, Low Latency System on Standard Hardware! ►  Just like Google and Amazon ►  Driver: Standard infrastructure – cheap and stable ►  Driver: Even more availability, throughput, scalability and lower latency ►  You will need to consider CAP, BASE, Harvest & Yield etc. ►  Very likely in a Private Cloud 29.06.11 31
  • 32. Another Case Study ►  Random Project ►  Make deployment easier! ►  Make it easy to create test environment! ►  Driver: Business Agility and Developer Productivity ►  Will need to use automated installation + IaaS or PaaS ►  Might be in a Public or Private Cloud 29.06.11 32
  • 33. Custom Self Service Portal 29.06.11 33
  • 34. Conclusion ►  Current PaaS allow to run Enterprise applications unchanged ►  At one point you will need to change ►  CAP: Consistency, Availability, Partition Tolerance – choose two ►  Cloud: AP, no C ►  BASE: Basically Available, Soft State, Eventually Consistent ►  Can be implemented using Event Sourcing ►  …or a NoSQL persistence solution ►  Create multiple deployment artifacts to scale each part ►  Harvest / Yield: Fine grained CAP ►  Map / Reduce to run batches in the Cloud 29.06.11 34