SlideShare a Scribd company logo
Eberhard Wolff
adesso AG

Applications in the Cloud
About me
•    Eberhard Wolff
•    Architecture & Technology Manager at adesso
•    adesso is a leading IT consultancy in Germany
•    Speaker
•    Author (e.g. first German Spring book)
•    Blog: http://ewolff.com
•    Twitter: @ewolff
•    http://slideshare.com/ewolff
•    eberhard.wolff@adesso.de
How Is Cloud
 Different?
How Is Cloud Different?
• 
            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?
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
 Application     •  Standard
   (Order,          Enterprise
Configuration,
  Catalog)
                    Architecture

                 •  Relational
                    database
  Database
Spring Biking: Architecture
Wait, didn’t you
  Application
    (Order,
                  •  Standard
                     Enterprise

say it should run
 Configuration,
   Catalog)
                     Architecture

                  •  Relational
in the Cloud?
   Database
                     database
How Spring Biking Deals with
         Cloud Challenges
•  No state on the web tier
   –  i.e. no session
                                              Application
   –  State stored in database
•  Easy to automatically start new              (Order,
   instances if load increases               Configuration,
•  Every PaaS should deal with elastic         Catalog)
   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
How Spring Biking Deals with
        Cloud Challenges
•  Relational database fine for now
   –  Example: Amazon RDS (Relational
      Database Service)
   –  MySQL and Oracle                            Database
   –  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
   –  Latency effects revenue
      •  Every 100ms latency costs Amazon 1% of
         revenue
   –  So add CDN to lower latency
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!
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
   –  Latency
   –  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
CAP Theorem
•  Consistency
   –  All nodes see the same data

•  Availability
   –  Node failure do not prevent survivors from operating
                                                    C
•  Partition Tolerance
   –  System continues to operate despite
      arbitrary message loss
                                             P               A
•  Can at max have two
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                                         C
  –  Shutting down nodes is no option
•  Need P – Partition Tolerance
  –  Network is not under your control   P                 A
  –  Lots of nodes -> partitioning even more likely
•  No chance for C – Consistency
  –  Because we can’t
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…
BASE in Spring Biking
    Application         Application   Application




     Database           Database      Database

      EU-West             US-East       Asia-Pacific


Changes to catalog
Eventually propagated
Network Partitioning
    Application           Application   Application




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


           Network
           Partitioning
BASE Using Event Sourcing

                                             Event            Domain
•  Do it yourself using a                                      Model
   messaging system
   –    JMS, RabbitMQ …
   –    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.
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
More Sophisticated
•  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
Different Parts Require Different
             Architecture    Application
•  So far: Catalog
  –  Data must be available on each node
                                           Catalog
  –  Slight inconsistencies are OK
  –  i.e. new item added to catalog
•  Stock information must be consistent
  –  So customers are not disappointed         Order
  –  Might use caching-like structure
•  Orders are immediately send to the back end
  –  No local storage at all
•  A lot more catalog browsing than ordering
More load on catalog ->          Less load on order ->
                More instances                   Less instances


     Catalog                         Catalog               Order


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


     Updates
                                     Stock
                                     Master
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
More Than CAP
•  CAP Theorem again
•  Consistency, Availability, Network Partitioning
•  You can only have two                     C


•  But: We want Availability
•  …and a flexible trade off between P               A
   Consistency and Network Partitioning
•  Like Casssandra
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
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                     Reduce

•  Map can be done on any node
•  Master collects data 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
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
Custom Self Service Portal
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
Wir suchen Sie als
!    Software-Architekt (m/w)
!    Projektleiter (m/w)
!    Senior Software Engineer (m/w)


!    Kommen Sie zum Stand und gewinnen Sie ein iPad 2!

 jobs@adesso.de
 www.AAAjobs.de

More Related Content

What's hot

Big Data and Hadoop - History, Technical Deep Dive, and Industry Trends
Big Data and Hadoop - History, Technical Deep Dive, and Industry TrendsBig Data and Hadoop - History, Technical Deep Dive, and Industry Trends
Big Data and Hadoop - History, Technical Deep Dive, and Industry Trends
Esther Kundin
 
Transforming Data Architecture Complexity at Sears - StampedeCon 2013
Transforming Data Architecture Complexity at Sears - StampedeCon 2013Transforming Data Architecture Complexity at Sears - StampedeCon 2013
Transforming Data Architecture Complexity at Sears - StampedeCon 2013
StampedeCon
 
AWS Webcast - Introduction to RDS Low Admin High Perf DBS
AWS Webcast - Introduction to RDS Low Admin High Perf DBSAWS Webcast - Introduction to RDS Low Admin High Perf DBS
AWS Webcast - Introduction to RDS Low Admin High Perf DBS
Amazon Web Services
 
AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...
AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...
AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...
Amazon Web Services
 
Divide and conquer in the cloud
Divide and conquer in the cloudDivide and conquer in the cloud
Divide and conquer in the cloud
Justin Swanhart
 
Using Hot and Cold Data in your SAP Analytics Landscape
Using Hot and Cold Data in your SAP Analytics LandscapeUsing Hot and Cold Data in your SAP Analytics Landscape
Using Hot and Cold Data in your SAP Analytics Landscape
sapbisignz
 
Bigdata workshop february 2015
Bigdata workshop  february 2015 Bigdata workshop  february 2015
Bigdata workshop february 2015
clairvoyantllc
 
Introduction to AWS Database Services
Introduction to AWS Database ServicesIntroduction to AWS Database Services
Introduction to AWS Database Services
Amazon Web Services
 
An introduction into Spark ML plus how to go beyond when you get stuck
An introduction into Spark ML plus how to go beyond when you get stuckAn introduction into Spark ML plus how to go beyond when you get stuck
An introduction into Spark ML plus how to go beyond when you get stuck
Data Con LA
 
Apache Tez : Accelerating Hadoop Query Processing
Apache Tez : Accelerating Hadoop Query ProcessingApache Tez : Accelerating Hadoop Query Processing
Apache Tez : Accelerating Hadoop Query Processing
Bikas Saha
 
Deploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analyticsDeploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analytics
DataWorks Summit
 
Apache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and FutureApache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and Future
DataWorks Summit
 
Admission Control in Impala
Admission Control in ImpalaAdmission Control in Impala
Admission Control in ImpalaCloudera, Inc.
 
Operationalizing YARN based Hadoop Clusters in the Cloud
Operationalizing YARN based Hadoop Clusters in the CloudOperationalizing YARN based Hadoop Clusters in the Cloud
Operationalizing YARN based Hadoop Clusters in the Cloud
DataWorks Summit/Hadoop Summit
 
Tune up Yarn and Hive
Tune up Yarn and HiveTune up Yarn and Hive
Tune up Yarn and Hive
rxu
 
Hadoop Backup and Disaster Recovery
Hadoop Backup and Disaster RecoveryHadoop Backup and Disaster Recovery
Hadoop Backup and Disaster Recovery
Cloudera, Inc.
 
The Impala Cookbook
The Impala CookbookThe Impala Cookbook
The Impala Cookbook
Cloudera, Inc.
 
Cloudera Impala
Cloudera ImpalaCloudera Impala
Cloudera Impala
Rajesh Gupta
 
Impala Resource Management - OUTDATED
Impala Resource Management - OUTDATEDImpala Resource Management - OUTDATED
Impala Resource Management - OUTDATED
Matthew Jacobs
 
Diagnosing MySQL performance problems
Diagnosing  MySQL performance problemsDiagnosing  MySQL performance problems
Diagnosing MySQL performance problems
Justin Swanhart
 

What's hot (20)

Big Data and Hadoop - History, Technical Deep Dive, and Industry Trends
Big Data and Hadoop - History, Technical Deep Dive, and Industry TrendsBig Data and Hadoop - History, Technical Deep Dive, and Industry Trends
Big Data and Hadoop - History, Technical Deep Dive, and Industry Trends
 
Transforming Data Architecture Complexity at Sears - StampedeCon 2013
Transforming Data Architecture Complexity at Sears - StampedeCon 2013Transforming Data Architecture Complexity at Sears - StampedeCon 2013
Transforming Data Architecture Complexity at Sears - StampedeCon 2013
 
AWS Webcast - Introduction to RDS Low Admin High Perf DBS
AWS Webcast - Introduction to RDS Low Admin High Perf DBSAWS Webcast - Introduction to RDS Low Admin High Perf DBS
AWS Webcast - Introduction to RDS Low Admin High Perf DBS
 
AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...
AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...
AWS Storage Tiers for Enterprise Workloads - Best Practices (STG301) | AWS re...
 
Divide and conquer in the cloud
Divide and conquer in the cloudDivide and conquer in the cloud
Divide and conquer in the cloud
 
Using Hot and Cold Data in your SAP Analytics Landscape
Using Hot and Cold Data in your SAP Analytics LandscapeUsing Hot and Cold Data in your SAP Analytics Landscape
Using Hot and Cold Data in your SAP Analytics Landscape
 
Bigdata workshop february 2015
Bigdata workshop  february 2015 Bigdata workshop  february 2015
Bigdata workshop february 2015
 
Introduction to AWS Database Services
Introduction to AWS Database ServicesIntroduction to AWS Database Services
Introduction to AWS Database Services
 
An introduction into Spark ML plus how to go beyond when you get stuck
An introduction into Spark ML plus how to go beyond when you get stuckAn introduction into Spark ML plus how to go beyond when you get stuck
An introduction into Spark ML plus how to go beyond when you get stuck
 
Apache Tez : Accelerating Hadoop Query Processing
Apache Tez : Accelerating Hadoop Query ProcessingApache Tez : Accelerating Hadoop Query Processing
Apache Tez : Accelerating Hadoop Query Processing
 
Deploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analyticsDeploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analytics
 
Apache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and FutureApache Hadoop YARN: Present and Future
Apache Hadoop YARN: Present and Future
 
Admission Control in Impala
Admission Control in ImpalaAdmission Control in Impala
Admission Control in Impala
 
Operationalizing YARN based Hadoop Clusters in the Cloud
Operationalizing YARN based Hadoop Clusters in the CloudOperationalizing YARN based Hadoop Clusters in the Cloud
Operationalizing YARN based Hadoop Clusters in the Cloud
 
Tune up Yarn and Hive
Tune up Yarn and HiveTune up Yarn and Hive
Tune up Yarn and Hive
 
Hadoop Backup and Disaster Recovery
Hadoop Backup and Disaster RecoveryHadoop Backup and Disaster Recovery
Hadoop Backup and Disaster Recovery
 
The Impala Cookbook
The Impala CookbookThe Impala Cookbook
The Impala Cookbook
 
Cloudera Impala
Cloudera ImpalaCloudera Impala
Cloudera Impala
 
Impala Resource Management - OUTDATED
Impala Resource Management - OUTDATEDImpala Resource Management - OUTDATED
Impala Resource Management - OUTDATED
 
Diagnosing MySQL performance problems
Diagnosing  MySQL performance problemsDiagnosing  MySQL performance problems
Diagnosing MySQL performance problems
 

Viewers also liked

Solucion 2
Solucion 2Solucion 2
Solucion 2roampa
 
Google Dart Pecha Kucha from OOP 2012
Google Dart Pecha Kucha from OOP 2012Google Dart Pecha Kucha from OOP 2012
Google Dart Pecha Kucha from OOP 2012Eberhard Wolff
 
C:\Documents And Settings\Administrador\Escritorio\Administrador De Dispositivos
C:\Documents And Settings\Administrador\Escritorio\Administrador De DispositivosC:\Documents And Settings\Administrador\Escritorio\Administrador De Dispositivos
C:\Documents And Settings\Administrador\Escritorio\Administrador De Dispositivosroampa
 
Future of Java
Future of JavaFuture of Java
Future of Java
Eberhard Wolff
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
Eberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
Eberhard Wolff
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
Eberhard Wolff
 

Viewers also liked (7)

Solucion 2
Solucion 2Solucion 2
Solucion 2
 
Google Dart Pecha Kucha from OOP 2012
Google Dart Pecha Kucha from OOP 2012Google Dart Pecha Kucha from OOP 2012
Google Dart Pecha Kucha from OOP 2012
 
C:\Documents And Settings\Administrador\Escritorio\Administrador De Dispositivos
C:\Documents And Settings\Administrador\Escritorio\Administrador De DispositivosC:\Documents And Settings\Administrador\Escritorio\Administrador De Dispositivos
C:\Documents And Settings\Administrador\Escritorio\Administrador De Dispositivos
 
Future of Java
Future of JavaFuture of Java
Future of Java
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
 

Similar to Applications in the Cloud

Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon Redshift
Amazon Web Services
 
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
Mohamed Sayed
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systemselliando dias
 
Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012Michael Peacock
 
No sql databases
No sql databases No sql databases
No sql databases
Ankit Dubey
 
Yes sql08 inmemorydb
Yes sql08 inmemorydbYes sql08 inmemorydb
Yes sql08 inmemorydb
Daniel Austin
 
Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
Amazon Web Services
 
Ceate a Scalable Cloud Architecture
Ceate a Scalable Cloud ArchitectureCeate a Scalable Cloud Architecture
Ceate a Scalable Cloud Architecture
Amazon Web Services
 
AWS re:Invent 2013 Recap
AWS re:Invent 2013 RecapAWS re:Invent 2013 Recap
AWS re:Invent 2013 Recap
Barry Jones
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
LinkedIn
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWSMigrating enterprise workloads to AWS
Migrating enterprise workloads to AWSTom Laszewski
 
Petabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructurePetabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructureelliando dias
 
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and InfrastrctureRevolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
sabnees
 
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
Amazon Web Services
 
High Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of ViewHigh Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of View
aragozin
 
AWS Innovation at Scale
AWS Innovation at ScaleAWS Innovation at Scale
AWS Innovation at Scale
Amazon Web Services
 
M6d cassandrapresentation
M6d cassandrapresentationM6d cassandrapresentation
M6d cassandrapresentationEdward Capriolo
 
Spring in the Cloud
Spring in the CloudSpring in the Cloud
Spring in the Cloud
Eberhard Wolff
 
AWS Innovation at Scale – Rodney Haywood
AWS Innovation at Scale – Rodney HaywoodAWS Innovation at Scale – Rodney Haywood
AWS Innovation at Scale – Rodney Haywood
Amazon Web Services
 

Similar to Applications in the Cloud (20)

Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon Redshift
 
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
 
Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012
 
NoSQL_Night
NoSQL_NightNoSQL_Night
NoSQL_Night
 
No sql databases
No sql databases No sql databases
No sql databases
 
Yes sql08 inmemorydb
Yes sql08 inmemorydbYes sql08 inmemorydb
Yes sql08 inmemorydb
 
Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
 
Ceate a Scalable Cloud Architecture
Ceate a Scalable Cloud ArchitectureCeate a Scalable Cloud Architecture
Ceate a Scalable Cloud Architecture
 
AWS re:Invent 2013 Recap
AWS re:Invent 2013 RecapAWS re:Invent 2013 Recap
AWS re:Invent 2013 Recap
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWSMigrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
 
Petabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructurePetabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructure
 
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and InfrastrctureRevolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
 
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924AWS Webcast - Managing Big Data in the AWS Cloud_20140924
AWS Webcast - Managing Big Data in the AWS Cloud_20140924
 
High Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of ViewHigh Performance Computing - Cloud Point of View
High Performance Computing - Cloud Point of View
 
AWS Innovation at Scale
AWS Innovation at ScaleAWS Innovation at Scale
AWS Innovation at Scale
 
M6d cassandrapresentation
M6d cassandrapresentationM6d cassandrapresentation
M6d cassandrapresentation
 
Spring in the Cloud
Spring in the CloudSpring in the Cloud
Spring in the Cloud
 
AWS Innovation at Scale – Rodney Haywood
AWS Innovation at Scale – Rodney HaywoodAWS Innovation at Scale – Rodney Haywood
AWS Innovation at Scale – Rodney Haywood
 

More from Eberhard Wolff

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
Eberhard Wolff
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
Eberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
Eberhard Wolff
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Eberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
Eberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
Eberhard Wolff
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
Eberhard Wolff
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
Eberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
Eberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
Eberhard Wolff
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
Eberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
Eberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
Eberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
Eberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
Eberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
Eberhard Wolff
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Eberhard Wolff
 
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Eberhard Wolff
 

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
 

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Applications in the Cloud

  • 2. About me •  Eberhard Wolff •  Architecture & Technology Manager at adesso •  adesso is a leading IT consultancy in Germany •  Speaker •  Author (e.g. first German Spring book) •  Blog: http://ewolff.com •  Twitter: @ewolff •  http://slideshare.com/ewolff •  eberhard.wolff@adesso.de
  • 3. How Is Cloud Different?
  • 4. How Is Cloud Different?
  • 5.
  • 6. •  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?
  • 7. 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
  • 8. Spring Biking: Architecture Application •  Standard (Order, Enterprise Configuration, Catalog) Architecture •  Relational database Database
  • 9. Spring Biking: Architecture Wait, didn’t you Application (Order, •  Standard Enterprise say it should run Configuration, Catalog) Architecture •  Relational in the Cloud? Database database
  • 10. How Spring Biking Deals with Cloud Challenges •  No state on the web tier –  i.e. no session Application –  State stored in database •  Easy to automatically start new (Order, instances if load increases Configuration, •  Every PaaS should deal with elastic Catalog) 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
  • 11. How Spring Biking Deals with Cloud Challenges •  Relational database fine for now –  Example: Amazon RDS (Relational Database Service) –  MySQL and Oracle Database –  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 –  Latency effects revenue •  Every 100ms latency costs Amazon 1% of revenue –  So add CDN to lower latency
  • 12. 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!
  • 13. 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 –  Latency –  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
  • 14. CAP Theorem •  Consistency –  All nodes see the same data •  Availability –  Node failure do not prevent survivors from operating C •  Partition Tolerance –  System continues to operate despite arbitrary message loss P A •  Can at max have two
  • 15. CAP Theorem Consistency RDBMS Quorum 2 Phase Commit Partition Tolerance Replication DNS Availability
  • 16. CAP Theorem in the Cloud •  Need A – Availability –  A system that is not available is usually the worst thing C –  Shutting down nodes is no option •  Need P – Partition Tolerance –  Network is not under your control P A –  Lots of nodes -> partitioning even more likely •  No chance for C – Consistency –  Because we can’t
  • 17. 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…
  • 18. BASE in Spring Biking Application Application Application Database Database Database EU-West US-East Asia-Pacific Changes to catalog Eventually propagated
  • 19. Network Partitioning Application Application Application Database Database Database Eventually Inconsistent data is EU-West US-East Asia-Pacific consistent Network Partitioning
  • 20. BASE Using Event Sourcing Event Domain •  Do it yourself using a Model messaging system –  JMS, RabbitMQ … –  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.
  • 21. 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
  • 22. More Sophisticated •  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
  • 23. Different Parts Require Different Architecture Application •  So far: Catalog –  Data must be available on each node Catalog –  Slight inconsistencies are OK –  i.e. new item added to catalog •  Stock information must be consistent –  So customers are not disappointed Order –  Might use caching-like structure •  Orders are immediately send to the back end –  No local storage at all •  A lot more catalog browsing than ordering
  • 24. More load on catalog -> Less load on order -> More instances Less instances Catalog Catalog Order No local Stock Stock data Database Database All send Cache Cache to backend Updates Stock Master
  • 25. 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
  • 26. More Than CAP •  CAP Theorem again •  Consistency, Availability, Network Partitioning •  You can only have two C •  But: We want Availability •  …and a flexible trade off between P A Consistency and Network Partitioning •  Like Casssandra
  • 27. 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
  • 28. 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 Reduce •  Map can be done on any node •  Master collects data Map Map
  • 29. 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
  • 30. 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
  • 32. 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
  • 33. Wir suchen Sie als !  Software-Architekt (m/w) !  Projektleiter (m/w) !  Senior Software Engineer (m/w) !  Kommen Sie zum Stand und gewinnen Sie ein iPad 2! jobs@adesso.de www.AAAjobs.de