2. Agenda
• The paradigm shift
• Real life use case
• Challenges running a database in the cloud
• Available solutions
• Q&A
3. 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
4. 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)
6. Architectural Evolution - Rollout
• You are ready to roll your new eCommerce app
• Will deploy in the cloud (price, time to market, flexibility, “cool”)
17. The Challenges
• Availability
• Elasticity
• Manageability
• Cost
Solved for the Web and application levels
Imagine an equivalent solution for your database…
18. 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, …
21. 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
23. 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:
24. 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
25. 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
28. 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
32. 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