• May 6, 2012
• May 6, 2012
Robert Harker
Yahoo! Sports
harker@harker.com
(Up arrow, down arrow to move between slides)
Contents
Cloud Computing
DevOps
Slide Format Under Construction, Using Cool New Python Based Formatting Tool
"A cloud is a pool of resources accessed via an API"
Marten Mickos, CEO Eucalyptus
Implication:
API calls create, manage and destroy objects
Objects are referenced with UUIDs
No more configuring ifcfg-eth0 or fstab
Systems management is tools based
You no longer worry about hosts
Upgrade an image - create 100 instances -> verify -> destroy old instances
Configuration management tools are mandatory: Puppet, Chef
Continuous integration provides automated builds and deploys
Everything is an object
Many/most log parameters are UUID Based
Basic troubleshooting Procedure
Create new instance - test/verify/add -> destroy old instance
Chronic/endemic problems still require old style debugging
Instance stores:
Glance, LVM partitions, iSCSI?
Object stores:
URL - blob of Data
Permanent data stores:
MySQL, NoSQL
Limited Lifespan:
log Files, queries, raw tracking
Typical three (plus 1) tier model
Simple scaling: add one more
Scale your MySQL cluster to a public cloud?
How about?
Load balancers, firewall ACLs, monitoring, caches,
host data collection, visitor data collection,
authorization and authentication
Amazon EC3, Eucalyptus, OpenStack, OpenShift, Hadoop?
IaaS, PaaS, SaaS, NaaS
Probably more secure than your private cloud
Expensive for long term large scale deploys
New Instance of Server Deployment
Not likely to replace existing business mission critical services
Self service development environments
Off load applications that are horizontally scalable
Billing/chagre back?
Traditional:
install code on each node and restart apps
Image based upgrade:
update gold image then replicate
Minimal OS install:
Ground up rebuild then replicate
Automated package/configuration management is critical
Puppet, Chef, Igor?
Automated tools manage the build/deploy process
Builds for every SVN check-in
Regular automated test/deploy
How often do you deploy to production?
Weekly?, daily?, hourly?, every successful build?
Rollback has to be no brainer
A test environment is a "runway",
The length is selectable
FE, API, DB, cache, tools, , . . .
Development/QA hosts recreated with each build?
Robert Harker
Yahoo! Sports
harker@harker.com