Cloud meets Fog & PuppetA Story of Version Controlled Infrastructure   Habeeb Rahman | apigee | @habi_pk | pk.habi@gmail.com
About:apigee        We love APIsDevelopers => API <= Enterprises           Usergrid
Take 1Third-party web  tool and ...
….Following Manual TasksShareImages   CreateInstancesOnebyOneInstallPackages         InstallLicenseCreateEBSVolumes      O...
Take 2Cloud meets puppet and ...  (aws console, git, puppet)
….Following Manual TasksShareImages   CreateInstancesOnebyOneInstallPackages         InstallLicenseCreateEBSVolumes      O...
Take 3  Cloud meets Fog and …(puppet cloud provisioner, fog, ruby)
….Following Manual TasksShareImages   CreateInstancesOnebyOneInstallPackages         InstallLicenseCreateEBSVolumes      O...
Customer in a yaml file...
Git version controls PuppetConfigurations & Cloud Deployments     (Yes! Version Controlled Infrastructure)
Git hooksPre-update => puppet syntax checks(puppet parser, puppet lint)Post-update => sync with regional puppet masters
PuppetGit branches => Puppet environmentsSingle puppet master => Test Dev Productionmanifests and files/data => Separate g...
Why Fog?
Cross service compatibility(multitude of services=> Storage, Compute, DNS…)Avoid vendor lock-in(Vendor independent=>EC2, R...
gem install fog
require ‘fog’
~/.fog
Fog quick starter kitLook at the test suites (thanks to TDD)https://github.com/fog/fog/blob/master/tests/aws/requests/comp...
Fog command line[root@zebra ~]$ less ~/.fog[root@zebra ~]$ fog testaws Welcome to fog interactive! :testaws provides AWS>>
ec2 = Fog::Compute.new(  provider:              "AWS",  aws_access_key_id:     "KEY",  aws_secret_access_key: "SECRET")rsc...
Open Source Fog alternatives        libcloud (Python)          jclouds (Java)        deltacloud (Ruby)
Why Ruby?
“Ruby is designed for programmer      productivity and fun”     Matsumoto(creator of the ruby language)
everything-ruby by Ajey Gorehttp://confreaks.com/videos/921-rubyconfindia2012-everything-ruby
irb is your friend             (ruby interactive shell)root@zebra:~/$ irb1.9.3-p125 :001 >             irb alternative = >...
The Layers of Abstraction...
Fog => Cloud abstraction
Puppet => OS abstraction
Notes to self >>
Start small...
...and iterate reiterate &        re reiterate
Select right tools(Plenty of tools => Puppet/Chef/Cfengine/Ansible     but what is good for you/team/culture?)
Design your SaaS but make sure its            ops ready  (from the day you start the design)
http://puppetlabs.com/http://fog.iohttp://git-scm.com/http://ansible.github.com/
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Upcoming SlideShare
Loading in...5
×

Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure

4,161

Published on

Talk at rootconf - A conference at Bangalore for sysadmins.
Gist of the talk:-
Puppet is a great configuration management tool and git is great at version controlling.AWS lets you create instances in few clicks. But when it comes to large deployments only automation(where tools come together) can make you productive and happy. I will take you through following.. Fog - The Ruby cloud services library and how it helps you to create vendor neutral cloud deployments, Puppet- Multi region puppet masters, Ruby- How Ruby pulls the strings together in EC2/ELB/RDS creation, Security group creation, IP authorization, Route53 DNS etc, Git- how we use git to version control deployment configs/configurations.

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,161
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
36
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure

  1. 1. Cloud meets Fog & PuppetA Story of Version Controlled Infrastructure Habeeb Rahman | apigee | @habi_pk | pk.habi@gmail.com
  2. 2. About:apigee We love APIsDevelopers => API <= Enterprises Usergrid
  3. 3. Take 1Third-party web tool and ...
  4. 4. ….Following Manual TasksShareImages CreateInstancesOnebyOneInstallPackages InstallLicenseCreateEBSVolumes OpenPortsAttachEIP GenerateServerConfigApply Patches GenerateNagiosConfig + a Few Misc
  5. 5. Take 2Cloud meets puppet and ... (aws console, git, puppet)
  6. 6. ….Following Manual TasksShareImages CreateInstancesOnebyOneInstallPackages InstallLicenseCreateEBSVolumes OpenPortsAttachEIP GenerateServerConfigApplyPatches GenerateNagiosConfig + a Few Misc
  7. 7. Take 3 Cloud meets Fog and …(puppet cloud provisioner, fog, ruby)
  8. 8. ….Following Manual TasksShareImages CreateInstancesOnebyOneInstallPackages InstallLicenseCreateEBSVolumes OpenPortsAttachEIP GenerateServerConfigApplyPatches GenerateNagiosConfig + a Few Misc
  9. 9. Customer in a yaml file...
  10. 10. Git version controls PuppetConfigurations & Cloud Deployments (Yes! Version Controlled Infrastructure)
  11. 11. Git hooksPre-update => puppet syntax checks(puppet parser, puppet lint)Post-update => sync with regional puppet masters
  12. 12. PuppetGit branches => Puppet environmentsSingle puppet master => Test Dev Productionmanifests and files/data => Separate git repoPuppet masters per AWS regionsHiera: a pluggable hierarchical data store
  13. 13. Why Fog?
  14. 14. Cross service compatibility(multitude of services=> Storage, Compute, DNS…)Avoid vendor lock-in(Vendor independent=>EC2, Rackspace, Slicehost, Linode…)Power of Ruby
  15. 15. gem install fog
  16. 16. require ‘fog’
  17. 17. ~/.fog
  18. 18. Fog quick starter kitLook at the test suites (thanks to TDD)https://github.com/fog/fog/blob/master/tests/aws/requests/compute/instance_tests.rb
  19. 19. Fog command line[root@zebra ~]$ less ~/.fog[root@zebra ~]$ fog testaws Welcome to fog interactive! :testaws provides AWS>>
  20. 20. ec2 = Fog::Compute.new( provider: "AWS", aws_access_key_id: "KEY", aws_secret_access_key: "SECRET")rsc = Fog::Compute.new( provider: "Rackspace", rackspace_api_key: "KEY", rackspace_username: "SECRET")ec2.servers.create( flavor_id: "c1.medium", image_id: "ami-6936fb00", # Ubuntu 10.04 LTS key_name: "mykeyname", groups: ["default"],)rsc.servers.create( flavor_id: 5, # 4GB Memory image_id: 49, # Ubuntu 10.04 LTS name: my_server_name)
  21. 21. Open Source Fog alternatives libcloud (Python) jclouds (Java) deltacloud (Ruby)
  22. 22. Why Ruby?
  23. 23. “Ruby is designed for programmer productivity and fun” Matsumoto(creator of the ruby language)
  24. 24. everything-ruby by Ajey Gorehttp://confreaks.com/videos/921-rubyconfindia2012-everything-ruby
  25. 25. irb is your friend (ruby interactive shell)root@zebra:~/$ irb1.9.3-p125 :001 > irb alternative = > pry (gem install pry)
  26. 26. The Layers of Abstraction...
  27. 27. Fog => Cloud abstraction
  28. 28. Puppet => OS abstraction
  29. 29. Notes to self >>
  30. 30. Start small...
  31. 31. ...and iterate reiterate & re reiterate
  32. 32. Select right tools(Plenty of tools => Puppet/Chef/Cfengine/Ansible but what is good for you/team/culture?)
  33. 33. Design your SaaS but make sure its ops ready (from the day you start the design)
  34. 34. http://puppetlabs.com/http://fog.iohttp://git-scm.com/http://ansible.github.com/
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×