Cloudops fundamentals
    System Management

                   Bret Piatt
           Rackspace Hosting
Static configuration, meet the dodo bird
Severs "appear" based on demand..
Servers "disappear" and it isn't a problem "som...
"Instant" provisioning is not instant
To provision you have to get data to the new node....

5GB takes 7 minutes on a 100M...
So what do I do with all of my tools?
Many tools end up in the garbage..

..unless they add (or you
write) a dynamic confi...
Provision by API, configure by hand?!#?

    Chef




                            Puppet
Dev & Ops, sitting in a tree
Your revision control system is not just for source code...




Use it to track all system co...
Meet Pallet, your new cloud creating friend
Chef and Puppet are great for configuring systems...
...but we have to first.....
Get it right once, never make a mistake again
Embrace TDD (Test Driven Design) in Ops..

Get the requirements from the bus...
Let the software work for you
Continuous Integration (CI) is for operations too!



Ops needs a development world view..

...
"Those lazy Ops guys.."
Unit tests now become
app monitoring
configuration files..


..eliminate the, "Our test
suite does...
The moral of the story, "Ops.."
.. is more programatic as APIs replace long lead time steps.

..needs to leverage developm...
Questions?

      Twitter: @bpiatt
bret.piatt@rackspace.com
Upcoming SlideShare
Loading in …5
×

Cloudops fundamentals management, tdd, test driven design, continuous integration, CI

1,910 views
1,746 views

Published on

My presentation at the CloudOps Workshop of Cloud Connect 2010

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,910
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cloudops fundamentals management, tdd, test driven design, continuous integration, CI

  1. 1. Cloudops fundamentals System Management Bret Piatt Rackspace Hosting
  2. 2. Static configuration, meet the dodo bird Severs "appear" based on demand.. Servers "disappear" and it isn't a problem "sometimes".. Management systems must talk to the cloud APIs. The source of truth is no longer "the Visio".. Diagrams now show functional elements, not specific systems
  3. 3. "Instant" provisioning is not instant To provision you have to get data to the new node.... 5GB takes 7 minutes on a 100Mbps network.. 5TB takes 12 hours on a 1Gbps network.. 5PB takes a truck ... or 52 days on a 10Gbps network!
  4. 4. So what do I do with all of my tools? Many tools end up in the garbage.. ..unless they add (or you write) a dynamic configuration module.. ..Devops, you may need to code not just script..
  5. 5. Provision by API, configure by hand?!#? Chef Puppet
  6. 6. Dev & Ops, sitting in a tree Your revision control system is not just for source code... Use it to track all system configuration files... Who hasn't had a dream about the day they can see every change of a configuration file on a server over the entire lifespan?
  7. 7. Meet Pallet, your new cloud creating friend Chef and Puppet are great for configuring systems... ...but we have to first... have systems to provision! With Pallet you can create & configure systems in a management shell.. ;; We can create a node, by specifying a name tag and a template. ;; webserver-template is a vector specifying features we want in ;; our image. (start-node context :webserver webserver-template) ;; At this point we can manage instance counts as a map. ;; e.g ensure that we have two webserver nodes (with-node-templates templates (converge context {:webserver 2})) ;; Images are configured differently between clouds and os's. ;; We might want to update our machines to use the latest ;; package manager. pallet has a couple of templates, and ;; you can add your own, see resources/bootstrap. Templates ;; have a default implementation, but can be specialised ;; for a given tag or operating system family. (with-node-templates templates (converge context {:webserver 1} (bootstrap-with (bootstrap-template :ensure-resolve) (bootstrap-template :update-pkg-mgr))))
  8. 8. Get it right once, never make a mistake again Embrace TDD (Test Driven Design) in Ops.. Get the requirements from the business.. 1. Maintain 1,000,000 open connections 2. Process 1,000 events per second 3. Run for 1 week without errors Go build your tests.. Now hack the system until you have a configuration that passes #1 and #2, then let the tests run until it passes #3.. ..and since you built it with Chef/Puppet it is reusable!
  9. 9. Let the software work for you Continuous Integration (CI) is for operations too! Ops needs a development world view.. The job isn't done when, "Everything is working normal." Continually try to improve configurations in the sand box.. ..using TDD go from staging to production at improvement milestones or a "sprint" release cycle...agile operations!
  10. 10. "Those lazy Ops guys.." Unit tests now become app monitoring configuration files.. ..eliminate the, "Our test suite doesn't show the error you see in production" conflicts -- maintain a single suite. def test_sign_up http://wiki.github.com/brynary/webrat/ visit "/" click_link "Sign up" fill_in "Email", :with => "good@example.com" select "Free account" click_button "Register" ... end
  11. 11. The moral of the story, "Ops.." .. is more programatic as APIs replace long lead time steps. ..needs to leverage development best practices. ..is not about just "keeping the lights on." ..is about optimizing everything below the app. ..must change the processes in use today. ..is more technical now than ever before. ..is becoming "software development" at the system level.
  12. 12. Questions? Twitter: @bpiatt bret.piatt@rackspace.com

×