SlideShare a Scribd company logo
1 of 153
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 Plan
Yet Another Cloud Library?




               Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
The Plan
Yet Another Cloud Library?
        Blind Date




                Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
The Plan
Yet Another Cloud Library?
        Blind Date
    Reader Exercises




                Blueprints for Willborough Home - btobin - flickr.com/photos/btobin/4456582998
The Plan
Yet 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
Progress

615+ followers




                 Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
Progress

615+ followers
  54+ forks




                 Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
Progress

615+ followers
  54+ forks
28+ contributors




                 Nice. - ianhampton - flickr.com/photos/ianhampton/1197107567
Progress

 615+ followers
   54+ forks
 28+ contributors
25,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 experience




exploratory programming



                     Golfland start - twid - flickr.com/photos/twid/410697715
Installation
Installation
geymus ~ ⌘ sudo gem install fog
Installation
geymus ~ ⌘ sudo gem install fog
Successfully installed fog-X.Y.Z
Installation
geymus ~ ⌘ sudo gem install fog
Successfully installed fog-X.Y.Z
geymus ~ ⌘ fog
Installation
geymus ~ ⌘ sudo gem install fog
Successfully installed fog-X.Y.Z
geymus ~ ⌘ 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/fog
geymus ~ ⌘ fog
bin/fog
geymus ~ ⌘ fog
 Welcome to fog interactive!
 :default credentials provide AWS
bin/fog
geymus ~ ⌘ fog
 Welcome to fog interactive!
 :default credentials provide AWS
>> command_goes_here
bin/fog
geymus ~ ⌘ fog
 Welcome to fog interactive!
 :default credentials provide AWS
>> command_goes_here
return_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
Collections
interface 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 #all
returns 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.create
ArgumentError: image_id is required ...
Collection #get
Collection #get
returns 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
Models
representation 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 #save
provision 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.save
ArgumentError: image_id is required ...
Model #reload
Model #reload
update 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_for
poll 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 ... []>
>> _.destroy
true
Requests




           API Docs - thesmith - flickr.com/photos/thesmith/4574969567
Requests
down and dirty with specifics




                     API Docs - thesmith - flickr.com/photos/thesmith/4574969567
Requests
down 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
>
Reader
Exercises
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
Configuration
for more complex/repeatable setup
Configuration
      for more complex/repeatable setup
  chef - http://opscode.com/chef
puppet - 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.create
ArgumentError: image_id is required ...
servers#create
>> Bluebox[:compute].servers.create
ArgumentError: image_id is required ...
>> Rackspace[:compute].servers.create
servers#create
>> Bluebox[:compute].servers.create
ArgumentError: image_id is required ...
>> Rackspace[:compute].servers.create
ArgumentError: image_id and name are required ...
servers#create
>> Bluebox[:compute].servers.create
ArgumentError: image_id is required ...
>> Rackspace[:compute].servers.create
ArgumentError: image_id and name are required ...
>> Slicehost[:compute].servers.create
servers#create
>> Bluebox[:compute].servers.create
ArgumentError: image_id is required ...
>> Rackspace[:compute].servers.create
ArgumentError: image_id and name are required ...
>> Slicehost[:compute].servers.create
ArgumentError: image_id and name are required ...
servers#create
>> Bluebox[:compute].servers.create
ArgumentError: image_id is required ...
>> Rackspace[:compute].servers.create
ArgumentError: image_id and name are required ...
>> Slicehost[:compute].servers.create
ArgumentError: 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 to
better 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 Help
additional resources (see also: README)
Getting Help
    additional resources (see also: README)
      bugs - http://github.com/geemus/fog/issues
         irc - irc://irc.freenode.net/ruby-fog
mailing 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 Involved
additional resources (see also: README)
Get Involved
      additional resources (see also: README)
   guide - github.com/geemus/fog/wiki/contributor-guide
providers - 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

More Related Content

What's hot

Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012Michael Peacock
 
Powershell for Log Analysis and Data Crunching
 Powershell for Log Analysis and Data Crunching Powershell for Log Analysis and Data Crunching
Powershell for Log Analysis and Data CrunchingMichelle D'israeli
 
優しいWAFの作り方
優しいWAFの作り方優しいWAFの作り方
優しいWAFの作り方techmemo
 
Fullstack Conference - Proxies before proxies: The hidden gems of Javascript...
Fullstack Conference -  Proxies before proxies: The hidden gems of Javascript...Fullstack Conference -  Proxies before proxies: The hidden gems of Javascript...
Fullstack Conference - Proxies before proxies: The hidden gems of Javascript...Tim Chaplin
 
PowerShell User Group Hamburg - PowerCLI
PowerShell User Group Hamburg - PowerCLIPowerShell User Group Hamburg - PowerCLI
PowerShell User Group Hamburg - PowerCLIMarkus Kraus
 
Amazon Route53へのドメイン移管
Amazon Route53へのドメイン移管Amazon Route53へのドメイン移管
Amazon Route53へのドメイン移管Jin k
 
We All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) SubmarineWe All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) SubmarineFITC
 
Real time voice call integration - Confoo 2012
Real time voice call integration - Confoo 2012Real time voice call integration - Confoo 2012
Real time voice call integration - Confoo 2012Michael Peacock
 
Terraform in deployment pipeline
Terraform in deployment pipelineTerraform in deployment pipeline
Terraform in deployment pipelineAnton Babenko
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceAmazon Web Services
 
3 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 20153 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 2015Manuel Bernhardt
 
VMUGIT UC 2013 - 07c Veeam
VMUGIT UC 2013 - 07c VeeamVMUGIT UC 2013 - 07c Veeam
VMUGIT UC 2013 - 07c VeeamVMUG IT
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021TomStraub5
 
Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)Juan Andrés Valenzuela
 
(DEV201) AWS SDK For Go: Gophers Get Going with AWS
(DEV201) AWS SDK For Go: Gophers Get Going with AWS(DEV201) AWS SDK For Go: Gophers Get Going with AWS
(DEV201) AWS SDK For Go: Gophers Get Going with AWSAmazon Web Services
 

What's hot (20)

Nubilus Perl
Nubilus PerlNubilus Perl
Nubilus Perl
 
Final terraform
Final terraformFinal terraform
Final terraform
 
Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012
 
Powershell for Log Analysis and Data Crunching
 Powershell for Log Analysis and Data Crunching Powershell for Log Analysis and Data Crunching
Powershell for Log Analysis and Data Crunching
 
優しいWAFの作り方
優しいWAFの作り方優しいWAFの作り方
優しいWAFの作り方
 
Fullstack Conference - Proxies before proxies: The hidden gems of Javascript...
Fullstack Conference -  Proxies before proxies: The hidden gems of Javascript...Fullstack Conference -  Proxies before proxies: The hidden gems of Javascript...
Fullstack Conference - Proxies before proxies: The hidden gems of Javascript...
 
PowerShell User Group Hamburg - PowerCLI
PowerShell User Group Hamburg - PowerCLIPowerShell User Group Hamburg - PowerCLI
PowerShell User Group Hamburg - PowerCLI
 
Amazon Route53へのドメイン移管
Amazon Route53へのドメイン移管Amazon Route53へのドメイン移管
Amazon Route53へのドメイン移管
 
Refactoring Infrastructure Code
Refactoring Infrastructure CodeRefactoring Infrastructure Code
Refactoring Infrastructure Code
 
We All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) SubmarineWe All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) Submarine
 
Real time voice call integration - Confoo 2012
Real time voice call integration - Confoo 2012Real time voice call integration - Confoo 2012
Real time voice call integration - Confoo 2012
 
Deploying SharePoint @ Cloud
Deploying SharePoint @ CloudDeploying SharePoint @ Cloud
Deploying SharePoint @ Cloud
 
Terraform in deployment pipeline
Terraform in deployment pipelineTerraform in deployment pipeline
Terraform in deployment pipeline
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line Interface
 
3 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 20153 things you must know to think reactive - Geecon Kraków 2015
3 things you must know to think reactive - Geecon Kraków 2015
 
VMUGIT UC 2013 - 07c Veeam
VMUGIT UC 2013 - 07c VeeamVMUGIT UC 2013 - 07c Veeam
VMUGIT UC 2013 - 07c Veeam
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
 
Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)
 
Dockercompose
DockercomposeDockercompose
Dockercompose
 
(DEV201) AWS SDK For Go: Gophers Get Going with AWS
(DEV201) AWS SDK For Go: Gophers Get Going with AWS(DEV201) AWS SDK For Go: Gophers Get Going with AWS
(DEV201) AWS SDK For Go: Gophers Get Going with AWS
 

Viewers also liked

Simplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS EnvironmentSimplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS EnvironmentEngine Yard
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Engine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture EnhancementsEngine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture EnhancementsEngine Yard
 
IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...
IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...
IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...SOASTA
 
Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...
Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...
Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...SOASTA
 
Using JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingUsing JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingSOASTA
 
Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015SOASTA
 
DPM in Pictures
DPM in PicturesDPM in Pictures
DPM in PicturesSOASTA
 
Reinventing the Modern Information Pipeline: Paxata and MapR
Reinventing the Modern Information Pipeline: Paxata and MapRReinventing the Modern Information Pipeline: Paxata and MapR
Reinventing the Modern Information Pipeline: Paxata and MapRLilia Gutnik
 
Aws vs. Azure: 5 Things You Need To Know
Aws vs. Azure: 5 Things You Need To KnowAws vs. Azure: 5 Things You Need To Know
Aws vs. Azure: 5 Things You Need To KnowScalr
 
Engine Yard Partner Program 2014
Engine Yard Partner Program 2014Engine Yard Partner Program 2014
Engine Yard Partner Program 2014Engine Yard
 
Slack presentation
Slack presentationSlack presentation
Slack presentationblevz
 

Viewers also liked (18)

Simplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS EnvironmentSimplifying PCI on a PaaS Environment
Simplifying PCI on a PaaS Environment
 
Cohodatawebinar
Cohodatawebinar Cohodatawebinar
Cohodatawebinar
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Engine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture EnhancementsEngine Yard Cloud Architecture Enhancements
Engine Yard Cloud Architecture Enhancements
 
Slack
SlackSlack
Slack
 
IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...
IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...
IRCE 2016 Speaking Session – The Small Things That Add Up: How to Find What D...
 
Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...
Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...
Rewriting The Revenue Rules: From Mobile-First To Mobile-Only Mobile Shopping...
 
Scalr Demo
Scalr DemoScalr Demo
Scalr Demo
 
Using JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingUsing JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous Testing
 
Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015
 
DPM in Pictures
DPM in PicturesDPM in Pictures
DPM in Pictures
 
Prezi
PreziPrezi
Prezi
 
Reinventing the Modern Information Pipeline: Paxata and MapR
Reinventing the Modern Information Pipeline: Paxata and MapRReinventing the Modern Information Pipeline: Paxata and MapR
Reinventing the Modern Information Pipeline: Paxata and MapR
 
Prezi slideshare
Prezi slidesharePrezi slideshare
Prezi slideshare
 
Aws vs. Azure: 5 Things You Need To Know
Aws vs. Azure: 5 Things You Need To KnowAws vs. Azure: 5 Things You Need To Know
Aws vs. Azure: 5 Things You Need To Know
 
Engine Yard Partner Program 2014
Engine Yard Partner Program 2014Engine Yard Partner Program 2014
Engine Yard Partner Program 2014
 
Slack
SlackSlack
Slack
 
Slack presentation
Slack presentationSlack presentation
Slack presentation
 

Similar to geemus (Wesley Beary) cloud architect

Kube-AWS
Kube-AWSKube-AWS
Kube-AWSCoreOS
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloudKyle Rames
 
What Is AWS Elastic Kubernetes Service
 What Is AWS Elastic Kubernetes Service What Is AWS Elastic Kubernetes Service
What Is AWS Elastic Kubernetes ServiceAMELIAOLIVIA2
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformMinku Lee
 
A Crash Course on Serverless Applications in Python
A Crash Course on Serverless Applications in PythonA Crash Course on Serverless Applications in Python
A Crash Course on Serverless Applications in PythonJames Saryerwinnie
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSYevgeniy Brikman
 
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with DockerVSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with DockerMarc Müller
 
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...POSSCON
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
Itb session v_memcached
Itb session v_memcachedItb session v_memcached
Itb session v_memcachedSkills Matter
 
CoreOS in a Nutshell
CoreOS in a NutshellCoreOS in a Nutshell
CoreOS in a NutshellCoreOS
 
Crud operations using aws dynamo db with flask ap is and boto3
Crud operations using aws dynamo db with flask ap is and boto3Crud operations using aws dynamo db with flask ap is and boto3
Crud operations using aws dynamo db with flask ap is and boto3Katy Slemon
 
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetKubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetPer Bernhardt
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudIsaac Christoffersen
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasminePaulo Ragonha
 
What\'s new in Rails 2.1
What\'s new in Rails 2.1What\'s new in Rails 2.1
What\'s new in Rails 2.1Keith Pitty
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the CloudWesley Beary
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricksJavier Eguiluz
 
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜崇之 清水
 

Similar to geemus (Wesley Beary) cloud architect (20)

Kube-AWS
Kube-AWSKube-AWS
Kube-AWS
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
What Is AWS Elastic Kubernetes Service
 What Is AWS Elastic Kubernetes Service What Is AWS Elastic Kubernetes Service
What Is AWS Elastic Kubernetes Service
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
 
A Crash Course on Serverless Applications in Python
A Crash Course on Serverless Applications in PythonA Crash Course on Serverless Applications in Python
A Crash Course on Serverless Applications in Python
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with DockerVSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
 
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Itb session v_memcached
Itb session v_memcachedItb session v_memcached
Itb session v_memcached
 
CoreOS in a Nutshell
CoreOS in a NutshellCoreOS in a Nutshell
CoreOS in a Nutshell
 
Crud operations using aws dynamo db with flask ap is and boto3
Crud operations using aws dynamo db with flask ap is and boto3Crud operations using aws dynamo db with flask ap is and boto3
Crud operations using aws dynamo db with flask ap is and boto3
 
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetKubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid Cloud
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
What\'s new in Rails 2.1
What\'s new in Rails 2.1What\'s new in Rails 2.1
What\'s new in Rails 2.1
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
 
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
 

More from Engine Yard

Getting Started with PHP on Engine Yard Cloud
Getting Started with PHP on Engine Yard CloudGetting Started with PHP on Engine Yard Cloud
Getting Started with PHP on Engine Yard CloudEngine Yard
 
The Tao of Documentation
The Tao of DocumentationThe Tao of Documentation
The Tao of DocumentationEngine Yard
 
Innovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a ServiceInnovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a ServiceEngine Yard
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to RubyEngine Yard
 
JRuby: Enhancing Java Developers Lives
JRuby: Enhancing Java Developers LivesJRuby: Enhancing Java Developers Lives
JRuby: Enhancing Java Developers LivesEngine Yard
 
High Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedHigh Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedEngine Yard
 
Release Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment FrictionRelease Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment FrictionEngine Yard
 
JRuby Jam Session
JRuby Jam Session JRuby Jam Session
JRuby Jam Session Engine Yard
 
Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story Engine Yard
 
Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel Engine Yard
 
JRuby: Apples and Oranges
JRuby: Apples and OrangesJRuby: Apples and Oranges
JRuby: Apples and OrangesEngine Yard
 
Developing a Language
Developing a LanguageDeveloping a Language
Developing a LanguageEngine Yard
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby SystemsEngine Yard
 
Everything Rubinius
Everything RubiniusEverything Rubinius
Everything RubiniusEngine Yard
 
Rails Hosting and the Woes
Rails Hosting and the WoesRails Hosting and the Woes
Rails Hosting and the WoesEngine Yard
 

More from Engine Yard (15)

Getting Started with PHP on Engine Yard Cloud
Getting Started with PHP on Engine Yard CloudGetting Started with PHP on Engine Yard Cloud
Getting Started with PHP on Engine Yard Cloud
 
The Tao of Documentation
The Tao of DocumentationThe Tao of Documentation
The Tao of Documentation
 
Innovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a ServiceInnovate Faster in the Cloud with a Platform as a Service
Innovate Faster in the Cloud with a Platform as a Service
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 
JRuby: Enhancing Java Developers Lives
JRuby: Enhancing Java Developers LivesJRuby: Enhancing Java Developers Lives
JRuby: Enhancing Java Developers Lives
 
High Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. ThreadedHigh Performance Ruby: Evented vs. Threaded
High Performance Ruby: Evented vs. Threaded
 
Release Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment FrictionRelease Early & Release Often: Reducing Deployment Friction
Release Early & Release Often: Reducing Deployment Friction
 
JRuby Jam Session
JRuby Jam Session JRuby Jam Session
JRuby Jam Session
 
Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story Rubinius and Ruby | A Love Story
Rubinius and Ruby | A Love Story
 
Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel Rails Antipatterns | Open Session with Chad Pytel
Rails Antipatterns | Open Session with Chad Pytel
 
JRuby: Apples and Oranges
JRuby: Apples and OrangesJRuby: Apples and Oranges
JRuby: Apples and Oranges
 
Developing a Language
Developing a LanguageDeveloping a Language
Developing a Language
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby Systems
 
Everything Rubinius
Everything RubiniusEverything Rubinius
Everything Rubinius
 
Rails Hosting and the Woes
Rails Hosting and the WoesRails Hosting and the Woes
Rails Hosting and the Woes
 

geemus (Wesley Beary) cloud architect

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n