Running Your Database in the Cloud Eran Levin VP R&D - Xeround
Agenda The paradigm shift Real life use case Challenges running a database in the cloud Available solutions Q&A
The Paradigm Shift From Dedicated On premise Over provisioned Self managed Without compromising functionality, performance, availability, … To Shared resources Cloud hosted Pay-per-use Managed service
The Paradigm Shift The Cloud Availability issues Stateless Limited control (HW, Virtualization, Networking) Expectations (reduce capital and operational costs) Databases Mission critical, lossless Statefull Usage patterns (data and throughput)
Use Case eCommerce Application
Architectural Evolution - Rollout You are ready to roll your new eCommerce app Will deploy in the cloud (price, time to market, flexibility, “cool”)
Arch. Evolution - Failover Active Passive
Arch. Evolution – Traffic Increase Load Balancer
Arch. Evolution – Application Scaling Load Balancer
Arch. Evolution – Database Failover ActivePassive Load Balancer
Arch. Evolution – DB Read Scaling Master R R R Load Balancer
Architectural Evolution – DB Write Scaling Master R R R Load Balancer
Arch. Evolution – Anticipating the Peak Master R R R Load Balancer R R
Arch. Evolution – Scaling Down Master R R R Load Balancer
Arch. Evolution – Version Upgrade Master R R R Load Balancer Master R R R Load Balancer
Running Your Database in the Cloud The Challenges
The Challenges Availability Elasticity Manageability Cost Solved for the Web and application levels Imagine an equivalent solution for your database…
Meeting the Challenges Build your own For example - MySQL on EC2, Postgres on Rackspace, … Acquire instances Install the database according to your architecture Self manage your database Database-as-a-Service For example - Amazon RDS, Xeround, Database.com, …
The Challenges Availability
Availability Standby machine Replication Failover mechanism Source:
Cloud Availability Solutions Amazon RDS Multi Zone Master – Slave configuration Up to 3 minutes recovery Double the cost Maintenance window Xeround “Master-Master” configuration Multiple replicas of the data Always-on
The Challenges Scalability
Scalability – Scale Up vs. Scale Out Scale Up Select next available configuration (EC2, RDS) Relatively simple but limited scalability Scale Out Add additional resources Complicated but high scalability RDS Read replicas Source:
Shared Everything vs. Shared Nothing Shared Everything Scale throughput but limited due to shared resources Storage and networking limitations in the cloud ScaleDB Shared Nothing Horizontal data partition / sharding Unlimited scalability Many design and implementation challenges
Shared Nothing in the Cloud Xeround Virtual partitioning – decoupling of data and resources Linear scalability for both reads and writes Automatic balancing and repartition following changes in data and / or resources with no downtime ScaleBase / dbShards Automatically partition the data and direct queries to right databases Original databases deployment, management and cost Partitioning events MySQL Cluster NOT supported on virtual environments
Elasticity Scaling out/up AND in/down One of the Cloud justifications (but what about databases)
The Challenges Manageability
Manageability Self-serve is a fundamental characteristic of cloud computing DBaaS should provide User management DB management Control and Monitoring Backup and restore …… API to enable extendibility and interaction with the cloud ecosystem Solutions: Amazon RDS, Xeround, FathomDB
Build Your Own Source:
Database as a Service
The Challenges Cost
Cost Pay-per-use is another fundamental characteristic of cloud computing Achieving this model requires: Elasticity – scale resources according to actual usage No over provisioning No idle standby machines Sharing resources to share cost Measuring exact usage
Q & A
Running Your Database in the Cloud Thank You Visit us in Booth 407