SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
devops
                          an introduction




                          Patrick Debois
Monday 14 February 2011
My Background
     • Independent consultant
     • Have worked in different roles
     • Agile and Infrastructure
     • Just Enough Developed Infrastructure - http://jedi.be
     • Started organizing devopsdays
     • Recently joined Cutter Consortium

Monday 14 February 2011
Background check?
                          analysts     database
                          developer    security
                          operations   middleware
                          testers      sales
                          network      manager
                          storage      hr people


Monday 14 February 2011
DEV         OPS



                              The
                            problem
Monday 14 February 2011
Agile already did a great job




Monday 14 February 2011
But they forgot some people




Monday 14 February 2011
Monday 14 February 2011
Traditional CI Overview




                          http://www.javaworld.com/javaworld/jw-12-2008/images/CIOverview.jpg
Monday 14 February 2011
Continuous Integration
                                Maturity Model




                      http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html
Monday 14 February 2011
The only way to
                          measure progress
                             is “Working
                              software”



Monday 14 February 2011
The only way to
                          measure progress
                             is “Working
                              software”
                           In production

Monday 14 February 2011
Monday 14 February 2011
Business Value
            Ordered by             Ordered by the value
          the value gained             protected




         Increase Change              Avoid Change
Monday 14 February 2011
IT Tooling is changing




Monday 14 February 2011
Virtualization
                                   • kvm
                                   • xen
                                   • solaris zones
                                   • vmware
                                   • virtualbox
                                   • ...

Monday 14 February 2011
Cloud showed
                          us how to scale




Monday 14 February 2011
Abstraction API




                 http://libvirt.org/   http://www.jclouds.org/

                                                  Adrian Cole
                                                   @jclouds
Monday 14 February 2011
Platform as a Service




Monday 14 February 2011
Hudson as Service




                           http://www.cloudbees.com/


Monday 14 February 2011
But who will
                            manage
                           your IAAS
                           platform?


Monday 14 February 2011
First steps of
                          Automation

                                    http://fai-project.org/

       https://fedorahosted.org/cobbler/

                                 http://spacewalk.redhat.com/



Monday 14 February 2011
Cloning




Monday 14 February 2011
Virtual Sprawl




Monday 14 February 2011
Configuration
                          Management

                                                     Chef
  http://www.cfengine.org/     http://www.opscode.com/chef


                               https://github.com/
                               hugoduncan/pallet
                                                     Pallet
http://www.puppetlabs.com
Monday 14 February 2011
Infrastructure as code
 # tomcat.pp

 class tomcat {

 !    package {
 !    ! "java-1.6.0-sun-compat":
 !    ! ! ensure => "installed";
 !    ! "tomcat6":
 !    ! ! require => [Package["java-1.6.0-sun-compat"], Package["ntc-tomcat-log4j"]],
 !    ! ! ensure => "installed";
 !    ! "tomcat6-admin-webapps":
 !    ! ! ensure => "installed";
 !    ! "log4j":
 !    ! ! ensure => "installed";
 !    ! "tanukiwrapper":
 !    ! ! ensure => "installed";
 !    ! "mysql-connector-java":
 !    ! ! ensure => "installed";
 !    }

 !    file {
 !    ! "/etc/init.d/tomcat6":
                         mode     =>   "0755",
                         owner    =>   "root",
                         group    =>   "root",
                         source   =>   "puppet:///tomcat/tomcat6.init";
      }

 !    user {
 !    ! "tomcat":
 !    ! ! ensure => "present",
 !    ! ! require => Package["tomcat6"];
 !    }
 }!
Monday 14 February 2011
Model Driven Infrastructure




Monday 14 February 2011
Definition
                                             of your
                                         infrastructure



                                     John E.Vincent
                                         @lusis
                          https://github.com/lusis/vogeler
Monday 14 February 2011
Version Control




Monday 14 February 2011
Reusable
                             components
                          https://github.com/camptocamp




Monday 14 February 2011
Code/Server Smells
                                   Private Playground
                                   The sysadmin uses the system as his toy
                                   playground, doesn't clean up.
                                    • /tmp & /var/tmp full of old install files
                                    • / full of files
                                   Gready Server
                                   One server that does every function
                                    • combined mail and web and dns and
                                      fileshares
                                    • all users on the same system
                                   Root is the cause of all evil
                                    •   last show login all root
                                    •   no sudo is activated
                                    •   no sshd keys for logins
                                    •   nfs share/root?
                                    •   Chmod 777
                                    •   most processes run as root

Monday 14 February 2011
Sharing Recipes/Code




                             http://cookbooks.opscode.com/


http://forge.puppetlabs.com/
Monday 14 February 2011
CI for systems




Monday 14 February 2011
CI for systems (2)




Monday 14 February 2011
Pipelines concept




Monday 14 February 2011
Automation
                          without tests is




Monday 14 February 2011
cucumber-nagios
    Feature: google.com
         It should be up
         And I should be able to search for things

              Scenario: Searching for things
              When I visit "http://www.google.com"
              And I fill in "q" with "wikipedia"
              And I press "Google Search"
              Then I should see "www.wikipedia.org"


   $ cucumber-nagios google.feature
   Critical: 0, Warning: 0, 4 okay | passed=4, failed=0



                                                 Lindsay Holmwood
                                                      @auxesis
Monday 14 February 2011
cucumber-ssh
Scenario: Checking /etc/passwd
  When I ssh to "example.org" with the following credentials:
   | username | password       | keyfile                |
   | jacob    | spifeofstrife | /home/jacob/.ssh/id_dsa |
  And I run "cat /etc/passwd"
  Then I should see "jacob" in the output




                                        Lindsay Holmwood
                                             @auxesis
Monday 14 February 2011
cucumber-apache
apache.feature
Feature:
  In order to deploy my application
  As a systems administrator
  I want to know that the config files are legal

    Scenario: Valid Apache config
      Given a config file template apache2.conf in etc/apache2
      When I generate it
      Then there should be a file called apache2.conf in etc/ap
      And it should be valid




                                               Julian Simpson
http://pastie.org/693713
                                               @builddoctor
Monday 14 February 2011
cucumber-puppet

  Feature: cucumber-puppet
    In order to run my puppet manifest's test suite
    As an admin
    I want the cucumber-puppet gem installed

       Scenario: Install cucumber-puppet
             Given a node of class "cucumber-puppet"
             When I compile the catalog
             Then gem "cucumber-puppet" should be "installed"




                                           Nikolay Sturm
https://github.com/nistude/cucumber-puppet
                                             @nistude
Monday 14 February 2011
The life of a System
                                Birth, Adoption
                                     Life
                                   Retired
                                    Death




Monday 14 February 2011
Veewee

                                Allows an easy way
                            to build your own basebox




https://github.com/jedi4ever/veewee Patrick Debois
                                    @patrickdebois

Monday 14 February 2011
Veewee usage

                   • gem install veewee
                   • vagrant basebox define ‘ubuntu-64’ mybox
                    • preseed.cfg + postinstall.sh
                   • vagrant basebox build mybox
                   • vagrant export mybox

Monday 14 February 2011
Vagrant
                                          Allows an easy way
                                     to use the production recipes
                                     in your own dev environment



                  http://vagrantup.com/      Mitchell Hashimoto
                                                 @mitchellh

Monday 14 February 2011
Vagrant usage

                   • vagrant add mybox.box (adds the box)
                   • vagrant init myapp (starts a project)
                   • vagrant up (startup a box)
                   • vagrant ssh (logs into the box)
                   • vagrant provision (runs recipes)

Monday 14 February 2011
Sample Project

                     •    ProjectX (git repo)
                          • Vagrantfile
                          • [manifests] (git submodule)
                                  •
                                 tomcat ...
                                  •
                                 ubuntu ..
                          • [src] (git submodule)
                          • [definitions]
                              •
                              preseed.cfg


Monday 14 February 2011
Global Ownership
      It’s the                         It’s the
    javascript                        network
             It’s the                       It’s the
            backend                         server
                           It’s the                It’s the
                          database                 storage




Monday 14 February 2011
IAAS and PAAS blurring




                    Pull in both your recipes and your code

Monday 14 February 2011
I know
                             all that

                          What’s new?




Monday 14 February 2011
The map
      is not
   the territory
             Alfred Korzybski
Monday 14 February 2011
Optimize the whole not
                          just the individual parts




                             Systems Thinking
Monday 14 February 2011
Value Stream Mapping




Monday 14 February 2011
People make it happen




Monday 14 February 2011
Culture & Mindset




Monday 14 February 2011
Collaboration
 not only when things go wrong
                                                    Sysadmins
                                          Testers
                          Analysts                               Security
Developers




                                                                  Network
                                 UI
                                                    Architects
                              Designers

Monday 14 February 2011
No rock star mentality




                          Mine are bigger then yours
Monday 14 February 2011
Craftsmanship




Monday 14 February 2011
Trust




Monday 14 February 2011
Collaboration
 not only when things go wrong
                                                    Sysadmins
                                          Testers
                          Analysts                               Security
Developers




                                                                  Network
                                 UI
                                                    Architects
                              Designers

Monday 14 February 2011
Starting a devops
                              culture =
                           restoring trust




                                       http://voetstappen.blogspot.com/

Monday 14 February 2011
Interesting Books




Monday 14 February 2011
Want to know more?


                              #devops & #infratalk
                                 on twitter & irc
                              http://devopsdays.org
                              http://devopscafe.org
                             http://planetdevops.net
                              devops googlegroup
                          devops-toolchain googlegroup



Monday 14 February 2011
Questions?




Monday 14 February 2011
The End




Monday 14 February 2011

Contenu connexe

En vedette

En vedette (16)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Devops 4 Saas
Devops 4 SaasDevops 4 Saas
Devops 4 Saas
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Introduction to devops 2016
Introduction to devops 2016Introduction to devops 2016
Introduction to devops 2016
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Introduction to DevOps - Rackspace tech night
Introduction to DevOps - Rackspace tech nightIntroduction to DevOps - Rackspace tech night
Introduction to DevOps - Rackspace tech night
 
DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps Introduction and the launch of DASA
DevOps Introduction and the launch of DASADevOps Introduction and the launch of DASA
DevOps Introduction and the launch of DASA
 
DevOps Demystified
DevOps DemystifiedDevOps Demystified
DevOps Demystified
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 

Similaire à DevOps Introduction @Cegeka

GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
Stefane Fermigier
 
Carton CPAN dependency manager
Carton CPAN dependency managerCarton CPAN dependency manager
Carton CPAN dependency manager
Tatsuhiko Miyagawa
 
Android presentation 2011
Android presentation 2011Android presentation 2011
Android presentation 2011
Bram Vandeputte
 
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Guillaume Laforge
 
How execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environmentHow execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environment
Andrea Bozzoni
 
Using+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applicationsUsing+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applications
Muhammad Ikram Ul Haq
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 

Similaire à DevOps Introduction @Cegeka (20)

Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshop
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
 
Deploying on the cutting edge
Deploying on the cutting edgeDeploying on the cutting edge
Deploying on the cutting edge
 
Carton CPAN dependency manager
Carton CPAN dependency managerCarton CPAN dependency manager
Carton CPAN dependency manager
 
The Dark Depths of iOS [CodeMash 2011]
The Dark Depths of iOS [CodeMash 2011]The Dark Depths of iOS [CodeMash 2011]
The Dark Depths of iOS [CodeMash 2011]
 
RunDeck
RunDeckRunDeck
RunDeck
 
OTA WIreless Deployment
OTA WIreless DeploymentOTA WIreless Deployment
OTA WIreless Deployment
 
Android presentation 2011
Android presentation 2011Android presentation 2011
Android presentation 2011
 
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
 
Secrets of the GWT
Secrets of the GWTSecrets of the GWT
Secrets of the GWT
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
 
How execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environmentHow execute perfomance tests in a continuous delivery environment
How execute perfomance tests in a continuous delivery environment
 
How to execute the performance tests during a build in a continuous delivery ...
How to execute the performance tests during a build in a continuous delivery ...How to execute the performance tests during a build in a continuous delivery ...
How to execute the performance tests during a build in a continuous delivery ...
 
The Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentThe Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile development
 
CommonJS Frameworks
CommonJS FrameworksCommonJS Frameworks
CommonJS Frameworks
 
Using+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applicationsUsing+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applications
 
Fosdem2011
Fosdem2011Fosdem2011
Fosdem2011
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web apps
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Plone IDE - the future of Plone development
Plone IDE - the future of Plone developmentPlone IDE - the future of Plone development
Plone IDE - the future of Plone development
 

DevOps Introduction @Cegeka

  • 1. devops an introduction Patrick Debois Monday 14 February 2011
  • 2. My Background • Independent consultant • Have worked in different roles • Agile and Infrastructure • Just Enough Developed Infrastructure - http://jedi.be • Started organizing devopsdays • Recently joined Cutter Consortium Monday 14 February 2011
  • 3. Background check? analysts database developer security operations middleware testers sales network manager storage hr people Monday 14 February 2011
  • 4. DEV OPS The problem Monday 14 February 2011
  • 5. Agile already did a great job Monday 14 February 2011
  • 6. But they forgot some people Monday 14 February 2011
  • 8. Traditional CI Overview http://www.javaworld.com/javaworld/jw-12-2008/images/CIOverview.jpg Monday 14 February 2011
  • 9. Continuous Integration Maturity Model http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html Monday 14 February 2011
  • 10. The only way to measure progress is “Working software” Monday 14 February 2011
  • 11. The only way to measure progress is “Working software” In production Monday 14 February 2011
  • 13. Business Value Ordered by Ordered by the value the value gained protected Increase Change Avoid Change Monday 14 February 2011
  • 14. IT Tooling is changing Monday 14 February 2011
  • 15. Virtualization • kvm • xen • solaris zones • vmware • virtualbox • ... Monday 14 February 2011
  • 16. Cloud showed us how to scale Monday 14 February 2011
  • 17. Abstraction API http://libvirt.org/ http://www.jclouds.org/ Adrian Cole @jclouds Monday 14 February 2011
  • 18. Platform as a Service Monday 14 February 2011
  • 19. Hudson as Service http://www.cloudbees.com/ Monday 14 February 2011
  • 20. But who will manage your IAAS platform? Monday 14 February 2011
  • 21. First steps of Automation http://fai-project.org/ https://fedorahosted.org/cobbler/ http://spacewalk.redhat.com/ Monday 14 February 2011
  • 23. Virtual Sprawl Monday 14 February 2011
  • 24. Configuration Management Chef http://www.cfengine.org/ http://www.opscode.com/chef https://github.com/ hugoduncan/pallet Pallet http://www.puppetlabs.com Monday 14 February 2011
  • 25. Infrastructure as code # tomcat.pp class tomcat { ! package { ! ! "java-1.6.0-sun-compat": ! ! ! ensure => "installed"; ! ! "tomcat6": ! ! ! require => [Package["java-1.6.0-sun-compat"], Package["ntc-tomcat-log4j"]], ! ! ! ensure => "installed"; ! ! "tomcat6-admin-webapps": ! ! ! ensure => "installed"; ! ! "log4j": ! ! ! ensure => "installed"; ! ! "tanukiwrapper": ! ! ! ensure => "installed"; ! ! "mysql-connector-java": ! ! ! ensure => "installed"; ! } ! file { ! ! "/etc/init.d/tomcat6": mode => "0755", owner => "root", group => "root", source => "puppet:///tomcat/tomcat6.init"; } ! user { ! ! "tomcat": ! ! ! ensure => "present", ! ! ! require => Package["tomcat6"]; ! } }! Monday 14 February 2011
  • 27. Definition of your infrastructure John E.Vincent @lusis https://github.com/lusis/vogeler Monday 14 February 2011
  • 28. Version Control Monday 14 February 2011
  • 29. Reusable components https://github.com/camptocamp Monday 14 February 2011
  • 30. Code/Server Smells Private Playground The sysadmin uses the system as his toy playground, doesn't clean up. • /tmp & /var/tmp full of old install files • / full of files Gready Server One server that does every function • combined mail and web and dns and fileshares • all users on the same system Root is the cause of all evil • last show login all root • no sudo is activated • no sshd keys for logins • nfs share/root? • Chmod 777 • most processes run as root Monday 14 February 2011
  • 31. Sharing Recipes/Code http://cookbooks.opscode.com/ http://forge.puppetlabs.com/ Monday 14 February 2011
  • 32. CI for systems Monday 14 February 2011
  • 33. CI for systems (2) Monday 14 February 2011
  • 35. Automation without tests is Monday 14 February 2011
  • 36. cucumber-nagios Feature: google.com It should be up And I should be able to search for things Scenario: Searching for things When I visit "http://www.google.com" And I fill in "q" with "wikipedia" And I press "Google Search" Then I should see "www.wikipedia.org" $ cucumber-nagios google.feature Critical: 0, Warning: 0, 4 okay | passed=4, failed=0 Lindsay Holmwood @auxesis Monday 14 February 2011
  • 37. cucumber-ssh Scenario: Checking /etc/passwd When I ssh to "example.org" with the following credentials: | username | password | keyfile | | jacob | spifeofstrife | /home/jacob/.ssh/id_dsa | And I run "cat /etc/passwd" Then I should see "jacob" in the output Lindsay Holmwood @auxesis Monday 14 February 2011
  • 38. cucumber-apache apache.feature Feature: In order to deploy my application As a systems administrator I want to know that the config files are legal Scenario: Valid Apache config Given a config file template apache2.conf in etc/apache2 When I generate it Then there should be a file called apache2.conf in etc/ap And it should be valid Julian Simpson http://pastie.org/693713 @builddoctor Monday 14 February 2011
  • 39. cucumber-puppet Feature: cucumber-puppet In order to run my puppet manifest's test suite As an admin I want the cucumber-puppet gem installed Scenario: Install cucumber-puppet Given a node of class "cucumber-puppet" When I compile the catalog Then gem "cucumber-puppet" should be "installed" Nikolay Sturm https://github.com/nistude/cucumber-puppet @nistude Monday 14 February 2011
  • 40. The life of a System Birth, Adoption Life Retired Death Monday 14 February 2011
  • 41. Veewee Allows an easy way to build your own basebox https://github.com/jedi4ever/veewee Patrick Debois @patrickdebois Monday 14 February 2011
  • 42. Veewee usage • gem install veewee • vagrant basebox define ‘ubuntu-64’ mybox • preseed.cfg + postinstall.sh • vagrant basebox build mybox • vagrant export mybox Monday 14 February 2011
  • 43. Vagrant Allows an easy way to use the production recipes in your own dev environment http://vagrantup.com/ Mitchell Hashimoto @mitchellh Monday 14 February 2011
  • 44. Vagrant usage • vagrant add mybox.box (adds the box) • vagrant init myapp (starts a project) • vagrant up (startup a box) • vagrant ssh (logs into the box) • vagrant provision (runs recipes) Monday 14 February 2011
  • 45. Sample Project • ProjectX (git repo) • Vagrantfile • [manifests] (git submodule) • tomcat ... • ubuntu .. • [src] (git submodule) • [definitions] • preseed.cfg Monday 14 February 2011
  • 46. Global Ownership It’s the It’s the javascript network It’s the It’s the backend server It’s the It’s the database storage Monday 14 February 2011
  • 47. IAAS and PAAS blurring Pull in both your recipes and your code Monday 14 February 2011
  • 48. I know all that What’s new? Monday 14 February 2011
  • 49. The map is not the territory Alfred Korzybski Monday 14 February 2011
  • 50. Optimize the whole not just the individual parts Systems Thinking Monday 14 February 2011
  • 51. Value Stream Mapping Monday 14 February 2011
  • 52. People make it happen Monday 14 February 2011
  • 53. Culture & Mindset Monday 14 February 2011
  • 54. Collaboration not only when things go wrong Sysadmins Testers Analysts Security Developers Network UI Architects Designers Monday 14 February 2011
  • 55. No rock star mentality Mine are bigger then yours Monday 14 February 2011
  • 58. Collaboration not only when things go wrong Sysadmins Testers Analysts Security Developers Network UI Architects Designers Monday 14 February 2011
  • 59. Starting a devops culture = restoring trust http://voetstappen.blogspot.com/ Monday 14 February 2011
  • 61. Want to know more? #devops & #infratalk on twitter & irc http://devopsdays.org http://devopscafe.org http://planetdevops.net devops googlegroup devops-toolchain googlegroup Monday 14 February 2011
  • 63. The End Monday 14 February 2011