• Save
Geemus
 

Geemus

on

  • 790 views

 

Statistics

Views

Total Views
790
Views on SlideShare
790
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Geemus Geemus Presentation Transcript

  • geemus (Wesley Beary)cloud architect field, sun reflected - dsevilla - flickr.com/photos/dsevilla/3531297705
  • Why? York Minster in the Fog - karlequin - flickr.com/photos/karlequin/440648686
  • Why?seize the infrastructure York Minster in the Fog - karlequin - flickr.com/photos/karlequin/440648686
  • Leave with Theft - ibcbulk - flickr.com/photos/ibcbulk/256435870
  • Leave with provisioning config Theft - ibcbulk - flickr.com/photos/ibcbulk/256435870
  • Leave with provisioning config DIY Theft - ibcbulk - flickr.com/photos/ibcbulk/256435870
  • The Plan Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
  • The PlanYet Another Cloud Library? Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
  • The PlanYet Another Cloud Library? Blind Date Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
  • The PlanYet Another Cloud Library? Blind Date Reader Exercises Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
  • The PlanYet Another Cloud Library? Blind Date Reader Exercises Next Steps Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
  • Yet Another Cloud Library?
  • the commodity market - baconandeggs - flickr.com/photos/baconandeggs/1490449135
  • Want the commodity market - baconandeggs - flickr.com/photos/baconandeggs/1490449135
  • Vendor Lockin Jail Kitty - 50362297@N07 - flickr.com/photos/50362297@N07/4673066549
  • Vendor Lockin Have Jail Kitty - 50362297@N07 - flickr.com/photos/50362297@N07/4673066549
  • Non-Standard - olivander - flickr.com/photos/olivander/198180580
  • Hope? Non-Standard - olivander - flickr.com/photos/olivander/198180580
  • Knowledge Silos Silos - zoomzoom - flickr.com/photos/zoomzoom/304135268
  • Knowledge Silos Demolish! Silos - zoomzoom - flickr.com/photos/zoomzoom/304135268
  • Progress Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
  • Progress615+ followers Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
  • Progress615+ followers 54+ forks Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
  • Progress615+ followers 54+ forks28+ contributors Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
  • Progress 615+ followers 54+ forks 28+ contributors25,000+ downloads Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
  • Blind Date
  • Golfland start - twid - flickr.com/photos/twid/410697715
  • overabundance of choice lack of experience Golfland start - twid - flickr.com/photos/twid/410697715
  • overabundance of choice lack of experienceexploratory programming Golfland start - twid - flickr.com/photos/twid/410697715
  • Installation
  • Installationgeymus ~ ⌘ sudo gem install fog
  • Installationgeymus ~ ⌘ sudo gem install fogSuccessfully installed fog-X.Y.Z
  • Installationgeymus ~ ⌘ sudo gem install fogSuccessfully installed fog-X.Y.Zgeymus ~ ⌘ fog
  • Installationgeymus ~ ⌘ sudo gem install fogSuccessfully installed fog-X.Y.Zgeymus ~ ⌘ fog To run as default, add the following to ~/.fog:default: :aws_access_key_id: INTENTIONALLY_LEFT_BLANK :aws_secret_access_key: INTENTIONALLY_LEFT_BLANK [...]
  • bin/fog
  • bin/foggeymus ~ ⌘ fog
  • bin/foggeymus ~ ⌘ fog Welcome to fog interactive! :default credentials provide AWS
  • bin/foggeymus ~ ⌘ fog Welcome to fog interactive! :default credentials provide AWS>> command_goes_here
  • bin/foggeymus ~ ⌘ fog Welcome to fog interactive! :default credentials provide AWS>> command_goes_herereturn_value_goes_here
  • Providers
  • Providers>> providers
  • Providers>> providers[AWS]
  • Providers>> providers[AWS] Support for: AWS, Bluebox, Rackspace, Slicehost, Terremark vCloud Initial support for: GoGrid, Linode, Local, NewServers
  • Services
  • Services>> AWS.services
  • Services>> AWS.services[:compute, :elb, :simpledb, :storage]
  • Services>> AWS.services[:compute, :elb, :simpledb, :storage] compute and storage are shared other services are unique
  • Collections
  • Collections>> AWS[:compute].collections
  • Collections>> AWS[:compute].collections[:addresses, ..., :volumes]
  • Collections>> AWS[:compute].collections[:addresses, ..., :volumes] flavors, images and servers are shared in compute directories and files are shared in storage other collections are unique
  • Collections Star Wars Collection - ception - flickr.com/photos/ception/356449209
  • Collectionsinterface to cloud resources Star Wars Collection - ception - flickr.com/photos/ception/356449209
  • Collections interface to cloud resources#all - returns all matching resources#new - initializes a local model#create - provisions a new resource#get - returns a particular resource#reload - update to latest remote state Star Wars Collection - ception - flickr.com/photos/ception/356449209
  • Collection #all
  • Collection #allreturns all matching resources
  • Collection #all returns all matching resources>> AWS[:compute].addresses.all
  • Collection #all returns all matching resources>> AWS[:compute].addresses.all<Fog::AWS::Compute::Addresses ... []>
  • Collection #all returns all matching resources>> AWS[:compute].addresses.all<Fog::AWS::Compute::Addresses ... []>>> AWS[:compute].addresses
  • Collection #all returns all matching resources>> AWS[:compute].addresses.all<Fog::AWS::Compute::Addresses ... []>>> AWS[:compute].addresses<Fog::AWS::Compute::Addresses ... []>
  • Collection #new
  • Collection #new initializes a local model
  • Collection #new initializes a local model>> AWS[:compute].addresses.new
  • Collection #new initializes a local model>> AWS[:compute].addresses.new<Fog::AWS::Compute::Address public_ip=nil ... >
  • Collection #create
  • Collection #create provisions a new resource
  • Collection #create provisions a new resource>> AWS[:compute].addresses.create
  • Collection #create provisions a new resource>> AWS[:compute].addresses.create<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >
  • Collection #create provisions a new resource>> AWS[:compute].addresses.create<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >>> AWS[:compute].servers.create
  • Collection #create provisions a new resource>> AWS[:compute].addresses.create<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >>> AWS[:compute].servers.createArgumentError: image_id is required ...
  • Collection #get
  • Collection #getreturns a particular resource
  • Collection #get returns a particular resource>> AWS[:compute].addresses.get(‘x.y.z’)
  • Collection #get returns a particular resource>> AWS[:compute].addresses.get(‘x.y.z’)<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >
  • Collection #reload
  • Collection #reload update to latest remote state
  • Collection #reload update to latest remote state>> AWS[:compute].addresses.all.reload
  • Collection #reload update to latest remote state>> AWS[:compute].addresses.all.reload<Fog::AWS::Compute::Addresses ... []>
  • Models Flying Into Boston 005 - Tilt Shift - tostie14 - flickr.com/photos/tostie14/117610830
  • Modelsrepresentation of a cloud resource Flying Into Boston 005 - Tilt Shift - tostie14 - flickr.com/photos/tostie14/117610830
  • Models representation of a cloud resource #save - provision or update resource #reload - update to latest remote state#wait_for - poll block until timeout or true #destroy - destroy resource Flying Into Boston 005 - Tilt Shift - tostie14 - flickr.com/photos/tostie14/117610830
  • Model #save
  • Model #saveprovision or update resource
  • Model #save provision or update resource>> AWS[:compute].addresses.new.save
  • Model #save provision or update resource>> AWS[:compute].addresses.new.save<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >
  • Model #save provision or update resource>> AWS[:compute].addresses.new.save<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >>> AWS[:compute].servers.new.save
  • Model #save provision or update resource>> AWS[:compute].addresses.new.save<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >>> AWS[:compute].servers.new.saveArgumentError: image_id is required ...
  • Model #reload
  • Model #reloadupdate to latest remote state
  • Model #reload update to latest remote state>> address = AWS[:compute].addresses.new.save
  • Model #reload update to latest remote state>> address = AWS[:compute].addresses.new.save<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >
  • Model #reload update to latest remote state>> address = AWS[:compute].addresses.new.save<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >>> address.reload
  • Model #reload update to latest remote state>> address = AWS[:compute].addresses.new.save<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >>> address.reload<Fog::AWS::Compute::Address public_ip=‘x.y.z’ ... >
  • Model #wait_for
  • Model #wait_forpoll a block until timeout or true
  • Model #wait_for poll a block until timeout or true>> AWS[:compute].servers.create(:image_id => ‘ami’)
  • Model #wait_for poll a block until timeout or true>> AWS[:compute].servers.create(:image_id => ‘ami’)<Fog::AWS::Compute::Server ... []>
  • Model #wait_for poll a block until timeout or true>> AWS[:compute].servers.create(:image_id => ‘ami’)<Fog::AWS::Compute::Server ... []>>> _.wait_for { ready? }
  • Model #wait_for poll a block until timeout or true>> AWS[:compute].servers.create(:image_id => ‘ami’)<Fog::AWS::Compute::Server ... []>>> _.wait_for { ready? }{:duration=>20}
  • Model #destroy
  • Model #destroy destroy resource
  • Model #destroy destroy resource>> AWS[:compute].servers.create(:image_id => ‘i-x’)
  • Model #destroy destroy resource>> AWS[:compute].servers.create(:image_id => ‘i-x’)<Fog::AWS::Compute::Server ... []>
  • Model #destroy destroy resource>> AWS[:compute].servers.create(:image_id => ‘i-x’)<Fog::AWS::Compute::Server ... []>>> _.destroy
  • Model #destroy destroy resource>> AWS[:compute].servers.create(:image_id => ‘i-x’)<Fog::AWS::Compute::Server ... []>>> _.destroytrue
  • Requests API Docs - thesmith - flickr.com/photos/thesmith/4574969567
  • Requestsdown and dirty with specifics API Docs - thesmith - flickr.com/photos/thesmith/4574969567
  • Requestsdown and dirty with specifics provides flexibility and power but requires vendor specifics API Docs - thesmith - flickr.com/photos/thesmith/4574969567
  • Requests
  • Requests>> AWS[:compute].requests
  • Requests>> AWS[:compute].requests[:allocate_address, ..., :stop_instances]
  • Requests>> AWS[:compute].requests[:allocate_address, ..., :stop_instances] requests are unique across providers
  • e.g. #allocate_address
  • e.g. #allocate_address>> AWS[:compute].allocate_address
  • e.g. #allocate_address>> AWS[:compute].allocate_address#<Excon::Response@headers={...},@body={"requestId"=>"a-b-c", "publicIp"=>"x.y.z"},@status=200>
  • ReaderExercises
  • Got Infrastructure New IBM Z10 Mainframe - pchow98 - flickr.com/photos/pchow98/2545281504
  • Got Infrastructure now what? New IBM Z10 Mainframe - pchow98 - flickr.com/photos/pchow98/2545281504
  • servers#bootstrap
  • servers#bootstrap>> AWS[:compute].servers.bootstrap( :image_id => ‘ami’, :private_key_path => ‘~/.ssh/id_rsa’, :public_key_path => ‘~/.ssh/id_rsa.pub’)
  • servers#bootstrap>> AWS[:compute].servers.bootstrap( :image_id => ‘ami’, :private_key_path => ‘~/.ssh/id_rsa’, :public_key_path => ‘~/.ssh/id_rsa.pub’)<Fog::AWS::Compute::Server ... []>
  • servers#bootstrap>> AWS[:compute].servers.bootstrap( :image_id => ‘ami’, :private_key_path => ‘~/.ssh/id_rsa’, :public_key_path => ‘~/.ssh/id_rsa.pub’)<Fog::AWS::Compute::Server ... []>>> _.ssh(‘pwd’)
  • servers#bootstrap>> AWS[:compute].servers.bootstrap( :image_id => ‘ami’, :private_key_path => ‘~/.ssh/id_rsa’, :public_key_path => ‘~/.ssh/id_rsa.pub’)<Fog::AWS::Compute::Server ... []>>> _.ssh(‘pwd’)[#<Fog::SSH::Result @stdout=”/Users/root” ...>]
  • servers#bootstrap>> AWS[:compute].servers.bootstrap( :image_id => ‘ami’, :private_key_path => ‘~/.ssh/id_rsa’, :public_key_path => ‘~/.ssh/id_rsa.pub’)<Fog::AWS::Compute::Server ... []>>> _.ssh(‘pwd’)[#<Fog::SSH::Result @stdout=”/Users/root” ...>]>> _.ssh(‘foo’, ‘bar’)
  • servers#bootstrap>> AWS[:compute].servers.bootstrap( :image_id => ‘ami’, :private_key_path => ‘~/.ssh/id_rsa’, :public_key_path => ‘~/.ssh/id_rsa.pub’)<Fog::AWS::Compute::Server ... []>>> _.ssh(‘pwd’)[#<Fog::SSH::Result @stdout=”/Users/root” ...>]>> _.ssh(‘foo’, ‘bar’)[#<Fog::SSH::Result ...>, #<Fog::SSH::Result ...>]
  • Configuration
  • Configurationfor more complex/repeatable setup
  • Configuration for more complex/repeatable setup chef - http://opscode.com/chefpuppet - http://puppetlabs.com/puppet/introduction
  • Switching Providers? Light Switch Complicator - lenore-m - flickr.com/photos/lenore-m/510420532
  • servers#create
  • servers#create>> Bluebox[:compute].servers.create
  • servers#create>> Bluebox[:compute].servers.createArgumentError: image_id is required ...
  • servers#create>> Bluebox[:compute].servers.createArgumentError: image_id is required ...>> Rackspace[:compute].servers.create
  • servers#create>> Bluebox[:compute].servers.createArgumentError: image_id is required ...>> Rackspace[:compute].servers.createArgumentError: image_id and name are required ...
  • servers#create>> Bluebox[:compute].servers.createArgumentError: image_id is required ...>> Rackspace[:compute].servers.createArgumentError: image_id and name are required ...>> Slicehost[:compute].servers.create
  • servers#create>> Bluebox[:compute].servers.createArgumentError: image_id is required ...>> Rackspace[:compute].servers.createArgumentError: image_id and name are required ...>> Slicehost[:compute].servers.createArgumentError: image_id and name are required ...
  • servers#create>> Bluebox[:compute].servers.createArgumentError: image_id is required ...>> Rackspace[:compute].servers.createArgumentError: image_id and name are required ...>> Slicehost[:compute].servers.createArgumentError: image_id and name are required ... different parameters, same methods
  • Simulation John Manning John’s Flight Simulator - yugen - flickr.com/photos/yugen/3119723360
  • Simulation make believing your way tobetter infrastructure John Manning John’s Flight Simulator - yugen - flickr.com/photos/yugen/3119723360
  • Simulation make believing your way to better infrastructure Fog.mock! or⌘ FOG_MOCK=true fog John Manning John’s Flight Simulator - yugen - flickr.com/photos/yugen/3119723360
  • Next Steps
  • Getting Help
  • Getting Helpadditional resources (see also: README)
  • Getting Help additional resources (see also: README) bugs - http://github.com/geemus/fog/issues irc - irc://irc.freenode.net/ruby-fogmailing list - http://groups.google.com/group/ruby-fog
  • The Future Rettrofuturism - grumbler - flickr.com/photos/grumbler/297064185
  • The Future modularity Rettrofuturism - grumbler - flickr.com/photos/grumbler/297064185
  • The Future modularity providers Rettrofuturism - grumbler - flickr.com/photos/grumbler/297064185
  • The Future modularity providers abstractions Rettrofuturism - grumbler - flickr.com/photos/grumbler/297064185
  • The Future modularity providers abstractions testing Rettrofuturism - grumbler - flickr.com/photos/grumbler/297064185
  • Get Involved
  • Get Involvedadditional resources (see also: README)
  • Get Involved additional resources (see also: README) guide - github.com/geemus/fog/wiki/contributor-guideproviders - github.com/geemus/fog/wiki/providers users - github.com/geemus/fog/wiki/in-the-wild
  • Questions? Clouds oven IL-RT50 - richardcox - flickr.com/photos/richardcox/3892767597