pool party presentation
TRANSCRIPT
Pool Party!Autoscaling on EC2
EC2 for the criminally lazyautoElastic cloud computing on EC2
Ari Lerner http://www.citrusbyte.com
Amazon’s EC2
• Clustered, web-service
• Easy scaled computing
• Completely customizable
• Pay for only what you use
• Highly elastic
• Incredibly flexible
What Issues• No auto-scaling
• No load-balancing
• Non-persistent instance data storage
• Volatile with no failover solution
Pool Party• Self-healing computing clusters
• Auto-scales cloud based on user-configured parameters
• Inherent load-balancing
• Persistent data storage on instances using s3
• Failover safety
• CloudSpeak DSL – easily communicate with your cloud
How?
Load Balancing Haproxy
Fail safety Heartbeat
How?
Persistent data storage
S3F(use)
Auto-scaling PoolParty
*nix
HAProxyThis application-agnostic, hot-swappable load-balancer built from the ground up for high availability clusters is speedy because of it’s closeness to the os.
HeartbeatRobust, enterprise-standard services monitor that provides pool party failover capabilities.
S3FsS3 backed filesystem in userspace (FUSE) uses little-to-no caching to reduce race conditions. Pool party uses the unlimited s3 data-store to provide instances access to the same data across the instances while providing an easy deployable.
Load Balancing
Masternode0
node1node2
Web server/DB Server/Memcached server/local
machine request, etc.
Failover (instance)
Master
node0
node1
node2
Failover (instance)
Master
node0
node1
node2
Failover (instance)
Master
node0
node1node2
Failover (master)
Master
node0
node1
node2
Failover (master)
Master
node0
node1
node2
Failover (master)
Master
node0node0
node1
Persistent data store
Masternode0
node1
node2
S3:/your_bucket
Auto-scaling
Masternode0
node1
node2
Can serve 0.23 req/sec and cpu
load is 0.70
Can serve 20.1 req/sec and cpu
load is 0.95
Can serve 3.8 req/sec and cpu
load is 0.72
Average req/sec = 8.04Average cpu load = 0.77
Auto-scaling
Masternode0
node1
node2
Can serve 0.23 req/sec and cpu
load is 0.70
Can serve 20.1 req/sec and cpu
load is 0.95
Can serve 3.8 req/sec and cpu
load is 0.72
Average req/sec = 8.04Average cpu load = 0.77
HEAVY
LOAD!!!
Auto-scaling
Masternode0
node1
node2
Can serve 12.2 req/sec and cpu
load is 0.50
Can serve 20.1 req/sec and cpu
load is 0.35
Can serve 10.2 req/sec and cpu
load is 0.45
node3
Can serve 20.1 req/sec and cpu
load is 0.35
Auto-scaling
Masternode0
node1
node2
Can serve 12.2 req/sec and cpu
load is 0.50
Can serve 20.1 req/sec and cpu
load is 0.35
Can serve 10.2 req/sec and cpu
load is 0.45
node3
Can serve 20.1 req/sec and cpu
load is 0.35
Phew! Load is back to normal
CloudSpeak
• pool
• start | stop | restart | list | maintain
• instance
• start | stop | reconfigure | install | ssh | scp | cmd | start_maintain | stop_maintain
Usage example
Start with rake dev:setup
source ~/.key_pool_keys
pool start
pool list
instance ssh
pool stop
Upcoming featuresin development
• Speeding up configuration-time
• Plugin and extensible support
• Front-end client
• Monitor logging
• Capistrano deployment
Questions?
Resources
• http://www.poolpartyrb.com
• http://www.citrusbyte.com
• http://aws.amazon.com/
• mailto: [email protected]
Thanks