CloudComputing
From StartupCamp
Contents |
"The definition of a Cloud of Computing" Edward M. Goldberg
"A large collection of computers that are accessible to the Internet and available for use buy the Internet Community. Each user of the Cloud can have as many or as few resources as they can afford to use for as long as they decide they want to pay for the resource. Each computer resource provides private computer system for the user, to be used as; single systems or in grids, arrays or as defined by the users software. The number of servers appears to the user to be unlimited, but in fact my have reasonable high limits. Each of the systems has access to a common Storage System." Edward M. Goldberg
IMHO, This is what people are all talking about when they talk about Clouds. We will be talking more about this topic at the Camp this week. Come by and spend a wooden nickel. I could use a new iPOD Touch, but I have no idea what I would do with a REAL Server, I use the Cloud for all of my development today. I need to shoot for Third Place.
Outline
Table of Contents
Topic: Background
* Definition of Cloud Computing * History of Network Computer Services * Places to learn more about Large Computer Deployments
Topic: Planning
* Planning a Cloud Deployment * Design Guide for Large Computer Systems * When to start thinking about How To Scale * How to Budget time and cost
Topic: Software Parts
* Software that enables the Cloud * Load Balancers * Database Master Slave Arrays * Memcached, Computer Arrays of Memory use for Cache
Topic: Software Development Tools
* Software Source Control and Deployment to the Cloud * Perspective of when and why to use other ways than typical capistrano vlad. * Separation of development deployment using a cloud and cloud deployment for production. * What exactly to automate. * SVN
Topic: QA
* QA
* Scripted test plans
* Sepeatable verification of important features -- new, old and interaction in between
* Automation
* Mock objects - robots
* Google appengine dev environment server
* Run dev offcloud (get it? offline... offcloud)
* Setup for test automation (unit testing one assert per method)
* Integration testing
* High level -- should treat thinks like objects
* Example, plugins/test/integration/wizard.rb (presses the next button over and over until done)
* Doesn't catch all bugs that should really be caught at lower level -- when to have test overlap? cascading failure and unit/functional/integration/
* Separate how, focus on what -- to avoid brittle tests
* Using a shim test/mocks/development/right_scale.rb for instance
* Classic analogy is a payment gateway ( cost per test and time of network transit for slow interaction)
* Sloud cpu for autotesting discourages the goal of running your tests constantly
* Not interested necessarily in non-deterministic testing of network latency (thats more analytics testing)
Topic: Testing Performance
* Performance Testing - When to start * Slashdot - Growth that was not predicted.
Topic: Production Updates
* Staging new releases * Fall Back when it breaks
Topic: Ops
* Ops Control * Analytics * Failure Detection * Alerts and Escalations
Topic: Goals
* System Engineering Goals * Never to late to rethink the way it scales with load * Up Time Requirements * Performance Requirements * Backups and Data Storage Needs
Resources
* Cloud Resources * List of Web Sites
