May 4-5 2008
Moscone Center
San Francisco, CA

CloudComputing

From StartupCamp

Jump to: navigation, search

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.

http://wiki.startupcamp.org/wiki/StartupCamp5DiscussionIdeas#EdwardMGoldberg:_Topic:_I_have_my_head_in_the_Clouds

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
Personal tools