SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Jean-Pierre König   @jpkoenig



DEVOPS
PROGRAMMIERST DU NOCH ODER BETREIBST DU SCHON?

14.03.12
Agenda
2


    •   Status Quo – „Wall of Confusion“
    •   Agile Movement, Software Entwicklung
    •   DevOps
    •   DevOps @memonews




                                               14.03.12
About me

Jean-Pierre König
Head of Technology,
  MeMo News AG
Dipl. Informatiker

Tags: Agile, BigData,
  Hadoop



                        14.03.12
Status Quo

WALL OF CONFUSION
IT Welt

• Softwareentwicklung & Systembetrieb
  organisatorisch klar getrennt
• Auslagerung von Organisationseinheiten in
  andere Unternehmen
                                  FOO Inc.



      ...   Finanzen   Personal    Software     Betrieb     Verkauf   ...




                                  BAR Corp.   Outsourcing




                                               Betrieb




                                                                            14.03.12
Gründe
• Skaleneffekt beim Konsolidieren des
  Systembetriebs nutzen
  • Personalbedarf im Betrieb steigt nicht zwangsläufig
    proportional zur Anzahl der zu betreuenden Systeme
    Betrieb mehrerer Systeme bündeln und an
    ausgewiesene Organisationseinheiten übergeben ist
    wirtschaftlich vorteilhaft
• Betriebs- und Administrationsaufgaben erfordern
  anderes Mitarbeiterprofil



                                                  14.03.12
Ergebnis

• Etablierte „Schnittstelledefinition“ zwischen
  beiden Welten – Wall of Confusion
        • Wie überführt man Software in den Betrieb?
        • Wie kann man sicherstellen, dass der Betreib
          den Anforderungen der Stakeholder gerecht
          wird?
        • ...
• Prozesse, Metriken, SLA‘s, Regelungen, ...
Die IT Infrastructure Library (ITIL) ist eine Sammlung von Best Practices bzw. Good Practices in einer Reihe von Publikationen, die eine
mögliche Umsetzung eines IT-Service-Managements (ITSM) beschreiben und inzwischen international als De-facto-Standard hierfür
gelten.
Quelle: http://de.wikipedia.org/wiki/IT_Infrastructure_Library



                                                                                                                           14.03.12
Ergebnis (2)
        I want                               I want
        change!                              stability!

Dev                                 Ops




• automatisiert                      • formal

Allenfalls eine funktionale Zusammenarbeit, aber wenig effizient
bzw. effektiv.

                                                              14.03.12
Devs

ZEIT FÜR VERÄNDERUNG
Warum?

Bis zur Jahrtausendwende - klassische Software
  Entwicklungsmethoden etabliert
Nachteilig:
  • Plangetrieben
  • Vollständige Erfassung aller Anforderungen nur
    mit immensem Aufwand möglich
  • „Keine“ Flexibilität bei geschäftlicher,
    gesetzlicher oder technischer Veränderung
  • ...
Klassisch




                                                                                               Releasezyklus
                               Releasezyklus
                    zentrale
                    QA
                                               zentrale
                                               QA
Initialisierung                                                  zentrale
                                                                 QA
                      Analyse
                                                                                zentrale
                                                                                QA
                                                  Entwurf
                                                                                              zentrale
                                                                                              QA
                                                                 Realisierung


                                                                                 Einführung


                                                                                                               Nutzung




                                                                                                                         Zeit
              ...                                           Dev                    Ops                    Ops
                                                                                                           + Anwender
                                               Time to Release
                                                                                                                                14.03.12
Agile, Agile, Agile

Seit ca. 2003 Kanban & Scrum im Aufwand
Ziele:
  • Risiko minimieren, an Anforderungen vorbei zu
    entwickeln
  • Entwicklungskosten einsparen, Time-To-Market
Voraussetzungen:
  • Besseres Zusammenspiel zwischen Entwicklern
    und Nutzern, Anwender einbinden
  • Kürzere Entwicklungszyklen

                                            14.03.12
Agile/Iterativ
„Agilisierter Wasserfall“




                                                                                           Releasezyklus
                             Releasezyklus


                                                                            zentrale
                                                                            QA
                                                                                          zentrale
                                                                                          QA
       Sprint 1      2      3                  4 ...            n
   Analyse & Analyse & Design
        Analyse & Analyse & Design
             Design
                  Design                                 Analyse & Design    Einführung


   Implementierung
        Implementierung
             Implementierung
                  Implementierung                         Implementierung                                  Nutzung


     Test & Demo & Demo
          Test & Demo & Demo
               Test Test                                   Test & Demo



                                                                                                                     Zeit
                                             Scrum Team (Dev)                  Ops                    Ops
                                                                                                       + Anwender
  Time to Release                             + (Proxy-) Anwender
                                                                                                                            14.03.12
Die Lösung

DEVOPS
DevOps
Auch: Continuous Delivery, Continuous Deployment



                    Releasezyklus


                                    Releasezyklus


                                                    Releasezyklus


                                                                    Releasezyklus




                                                                                                             Releasezyklus
      Sprint 1       2                 3                    4         ...                      n
  Analyse & Design Design Design Design
         Analyse &
                Analyse &
                       Analyse &                                                          Analyse & Design


   Implementierung
         Implementierung
                Implementierung
                      Implementierung                                                     Implementierung


    Test & Demo Demo Demo Demo
           Test & Test & Test &                                                             Test & Demo


     Einführung
            Einführung
                   Einführung
                          Einführung                                                         Einführung


      Nutzung
            Nutzung
                  Nutzung
                        Nutzung                                                               Nutzung


                                                                                    Delivery Team                            Zeit
                                                                                     + (Proxy-) Anwender
  Time to Release
                                                                                                                                    14.03.12
DevOps steht für ...

• Engere Verbindung von Entwicklungsabteilung
  und Systembetrieb unter Zuhilfenahme agiler
  Praktiken
  • Entsprechende Kultur im Umgang miteinander
• Werkzeuge, mit denen sich Betriebsaufgaben
  automatisieren lassen
  • Zunahme der Häufigkeit von Änderungen bei
    gleichzeitiger Risikominimierung



                                                14.03.12
DevOps

... is emerging set of
   principles, methods
   and practices for
   communication,                                DevOps

   collaboration and
   integration between                         Technology
                                               Operations


   ...
   [wikipedia]




Patrick Debois prägte den Begriff 2009 erstmalig auf der
devopsdays.org Konferenz

                                                            14.03.12
Funktionierts?

• Google (2010): > 20‘000 Experimente führten
  zu mehr als 500 Updates verschiedener
  Algorithmen – fast 2 mal täglich
• Wordpress (2005-2010):
  > 25‘000 Releases – ca. 16 pro Tag
• Etsy, (2010): > 25 Releases/Tag




                                        14.03.12
DevOps

PRINCIPLES
DevOps Principles

•   Reproducible, automated releasing
•   Fail fast – fail early – fail often
•   Don’t hack under stress – find, fix & start over!
•   Everything is under version control
•   Don‘t blame others
•   It‘s not (mine|yours|theirs ) – it‘s our
•   Continuous improvement


                                               14.03.12
DevOps

TOOLS
Tools (1)

„Infrastructure as Code“



                                 Betriebshandbuch
                    Dev                                                        Ops


    • „nicht“ versiert in Shell Programmierung                   • „keine“ tiefen Kenntnisse über das
    • „keine“ fundierte Kenntnisse im Umgang                     Verhalten von Anwendungen auf dem
    mit Unix-Systemen                                            Zielsystem
                                                                 • „wenig“ Informationen über die Funktionen
                                                                 einer Anwendungen
                                                                 • „wenig“ Informationen zur Konfiguration


     1.   Gemeinsames Vokabular (DSL) definieren
     2.   Gemeinsames Beschreiben aller notwendigen Schritte
     3.   Direkte Überführung in ein ausführbares Programm
     4.   Versionierung des Programms zusammen mit der Software

     •    Sehr schnelle betriebsfertige Einrichtung mehrerer Systeme aus einer einheitlichen Quelle


                                                                                                  14.03.12
Tools (2)

Deployment von Anwendung



                              Betriebshandbuch
                  Dev                                                     Ops


   • „keine“ Informationen zu                              •„wenig“ Informationen zur Installation einer
   Installationspfaden und Environment                     Anwendung auf dem Zielsystem
   Variablen




    1.   Gemeinsames Vokabular (DSL) definieren                                               capistrano
    2.   Gemeinsames Beschreiben aller notwendigen Schritte                                   Fabric
    3.   Direkte Überführung in ein ausführbares Programm
    4.   Versionierung des Programms zusammen mit der Software

    •    Sehr schnelles Deployment einer lauffähigen Anwendung pro Umgebung


                                                                                             14.03.12
DevOps

@MEMO


         14.03.12
Infrastructure as Code
                       [Basics]                                        [Basics]

• Open-Source          Name=k3‐s14
                       Networks[]=lan
                       IPv4forwarding=enabled
                                                                       Name=memo‐test‐hmaster
                                                                       IPbase=10.147.55
                                                                       Fixed=1


  Software, YMC AG
                                                                       VirtualIP=disabled
                       AdminGroups[]=ymcRootAccessToAnyHost            HA[]=disabled
                                                                       Port=22
                       cnames[]=disabled
                                                                       Servers[]=k3‐s14

• Produktiver          LVM[]=root
                       LVM[]=swap                                      cnames[]=disabled



  Einsatz: Schweizer
                       [LVM_root]                                      Admins[]=ymc‐jaou
                       Size=10G                                        Admins[]=memo‐jeko
                       Filesystem=ext4                                 Admins[]=memo‐vaki
                                                                       Admins[]=memo‐niku

  Fernsehen            [LVM_swap]
                       Size=5G
                       Filesystem=swap
                                                                       Admins[]=memo‐chgu

                                                                       LVM[]=disabled



• PHP-basiert,
                       [Network_lan]                                   Mount[]=disabled
                       Interfaces[]=1
                       IP=10.147.213.14                                [k3‐s14]
                       Netmask=255.255.0.0                             Number=1

  automatisiert        Gateway=10.147.89.254
                       Layout=single
                       Routes[]=disabled
                                                                       ...
                       [Interface_lan1]
                       hwAddr=00:1b:05:93:d5:0e
                       ConnectedToInfo=r2‐s5

                       [Monitoring]
                       CheckGroups[]=ymcClusterNodeDefaultCheckGroup




                                                                                  14.03.12
Deployment
                               [9:33:14] nkuebler:processr git:(master) $ cap unicorn:start

• Web Anwendung                   triggering start callbacks for `unicorn:start'
                                * executing `multistage:ensure'
                               *** Defaulting to `rapid‐test'
                                * executing `rapid‐test'

       • capistrano             * executing `unicorn:start'
                                * executing `unicorn:start_production'
                                * executing "if [ ‐f /usr/share/memo‐processr/shared/pids/unicorn.pid ] 
                               && kill ‐0 $(</usr/share/memo‐processr/shared/pids/unicorn.pid) 

• Java Anwendung               >/dev/null 2>&1; then echo 'unicorn already running'; else echo 
                               'starting unicorn...'; source /usr/local/rvm/environments/ruby‐1.9.2‐
                               p290; cd /usr/share/memo‐processr/current && /usr/share/memo‐
                               processr/shared/binstubs/unicorn ‐E production ‐D ‐c /usr/share/memo‐

       • Jenkins*              processr/current/config/unicorn/production.rb; fi"
                                  servers: ["k3‐s7.ymchq", "k3‐s8.ymchq", "k3‐s9.ymchq", "k3‐
                               s10.ymchq", "k3‐s19.ymchq", "k3‐s20.ymchq"]
           (PostBuildSteps)       [k3‐s7.ymchq] executing command
                                  [k3‐s8.ymchq] executing command
                                  [k3‐s9.ymchq] executing command

       • capistrano*              [k3‐s10.ymchq] executing command
                                  [k3‐s19.ymchq] executing command
                                  [k3‐s20.ymchq] executing command
                               ** [out :: k3‐s19.ymchq] starting unicorn...
                               ** [out :: k3‐s10.ymchq] starting unicorn...
                               ** [out :: k3‐s7.ymchq] starting unicorn...
                               ** [out :: k3‐s20.ymchq] starting unicorn...
                               ** [out :: k3‐s8.ymchq] starting unicorn...
                               ** [out :: k3‐s9.ymchq] starting unicorn...
                                  command finished in 4967ms
                                * executing `unicorn:start_test'
                                * executing "if [ ‐f /usr/share/memo‐processr/shared/pids/unicorn.pid ] 
                               && kill ‐0 $(</usr/share/memo‐processr/shared/pids/unicorn.pid) 
                               >/dev/null 2>&1; then echo 'unicorn already running'; else echo 
                               'starting unicorn...'; source /usr/local/rvm/environments/ruby‐1.9.2‐
                               p290; cd /usr/share/memo‐processr/current && /usr/share/memo‐
                               processr/shared/binstubs/unicorn ‐E production ‐D ‐c /usr/share/memo‐
                               processr/current/config/unicorn/test.rb; fi"
                                  servers: ["k3‐s17.ymchq"]
                                  [k3‐s17.ymchq] executing command
* (noch) nicht in Produktion   ** [out :: k3‐s17.ymchq] starting unicorn...
                                  command finished in 3884ms
                                                                                         14.03.12
jean-pierre.koenig@menonews.com

DANKE!
Quellen & Literatur
http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/
http://devopsdays.org/
http://www.agileweboperations.com/20-devops-guys
http://en.wikipedia.org/wiki/DevOps
http://dev2ops.org/blog/2010/2/22/what-is-devops.html
http://continuousdelivery.com/


Tools:
•    http://wiki.opscode.com/display/chef/Home
•    http://puppetlabs.com/
•    https://github.com/capistrano/capistrano/wiki/Documentation-v2.x
•    http://docs.fabfile.org/en/1.4.0/index.html
•    http://rundeck.org/


Beispiele:
•    Google: http://insidesearch.blogspot.com/2011/11/ten-recent-algorithm-changes.html
•    Wordpress: http://toni.org/2010/05/19/
•    Etsy: http://codeascraft.etsy.com/2011/02/04/

Weitere ähnliche Inhalte

Was ist angesagt?

VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019Markus Speth
 
E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018Johann-Peter Hartmann
 
Realisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBRealisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBMinerva SoftCare GmbH
 
Infrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-UmfeldInfrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-UmfeldDaniel Steiger
 
BizDevOps - Die prozessorientierte IT-Organisation
BizDevOps - Die prozessorientierte IT-OrganisationBizDevOps - Die prozessorientierte IT-Organisation
BizDevOps - Die prozessorientierte IT-OrganisationUwe Weng
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefernMayflower GmbH
 
Lean development 04
Lean development 04Lean development 04
Lean development 04SuperB2
 
Scrum - Von traditionellen Ansaetzen zu agilen Methoden wie Scrum
Scrum - Von traditionellen Ansaetzen zu agilen Methoden wie ScrumScrum - Von traditionellen Ansaetzen zu agilen Methoden wie Scrum
Scrum - Von traditionellen Ansaetzen zu agilen Methoden wie ScrumRalf Ohlenbostel
 
Agil in der Normativen Welt
Agil in der Normativen WeltAgil in der Normativen Welt
Agil in der Normativen WeltThomas Arends
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukastencusy GmbH
 
DevOps day - feature teams
DevOps day  - feature teamsDevOps day  - feature teams
DevOps day - feature teamsWalter Strametz
 
Scrum Workshop
Scrum WorkshopScrum Workshop
Scrum Workshopmrdoubleb
 
Organisation 4.0
Organisation 4.0Organisation 4.0
Organisation 4.0Uwe Weng
 

Was ist angesagt? (20)

DevOps Meetup Freiburg - DevOps in Practice
DevOps Meetup Freiburg - DevOps in PracticeDevOps Meetup Freiburg - DevOps in Practice
DevOps Meetup Freiburg - DevOps in Practice
 
VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019
 
E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018
 
Agile BI in der Praxis - DevOps4BI
Agile BI in der Praxis - DevOps4BIAgile BI in der Praxis - DevOps4BI
Agile BI in der Praxis - DevOps4BI
 
Agile BI in der Praxis - Agiles Testen
Agile BI in der Praxis - Agiles TestenAgile BI in der Praxis - Agiles Testen
Agile BI in der Praxis - Agiles Testen
 
Realisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWBRealisierung des Application Lifecycle Management im OWB
Realisierung des Application Lifecycle Management im OWB
 
Infrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-UmfeldInfrastruktur agil bauen - der DBA im SAFe-Umfeld
Infrastruktur agil bauen - der DBA im SAFe-Umfeld
 
BizDevOps - Die prozessorientierte IT-Organisation
BizDevOps - Die prozessorientierte IT-OrganisationBizDevOps - Die prozessorientierte IT-Organisation
BizDevOps - Die prozessorientierte IT-Organisation
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Lean development 04
Lean development 04Lean development 04
Lean development 04
 
Scrum - Von traditionellen Ansaetzen zu agilen Methoden wie Scrum
Scrum - Von traditionellen Ansaetzen zu agilen Methoden wie ScrumScrum - Von traditionellen Ansaetzen zu agilen Methoden wie Scrum
Scrum - Von traditionellen Ansaetzen zu agilen Methoden wie Scrum
 
Agile Business Software mit der Enterprise Cloud
Agile Business Software mit der Enterprise CloudAgile Business Software mit der Enterprise Cloud
Agile Business Software mit der Enterprise Cloud
 
Agil in der Normativen Welt
Agil in der Normativen WeltAgil in der Normativen Welt
Agil in der Normativen Welt
 
Advanced Continuous Integration
Advanced Continuous IntegrationAdvanced Continuous Integration
Advanced Continuous Integration
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukasten
 
DevOps day - feature teams
DevOps day  - feature teamsDevOps day  - feature teams
DevOps day - feature teams
 
Scrum Workshop
Scrum WorkshopScrum Workshop
Scrum Workshop
 
ConSol Unternehmenspräsentation 2019
ConSol Unternehmenspräsentation 2019ConSol Unternehmenspräsentation 2019
ConSol Unternehmenspräsentation 2019
 
Organisation 4.0
Organisation 4.0Organisation 4.0
Organisation 4.0
 
Das Mindset von DevOps
Das Mindset von DevOpsDas Mindset von DevOps
Das Mindset von DevOps
 

Andere mochten auch

Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewIBM UrbanCode Products
 
Continuous integration eine Einführung für Unkundige
Continuous integration   eine Einführung für UnkundigeContinuous integration   eine Einführung für Unkundige
Continuous integration eine Einführung für Unkundigeabuwipp
 
Accenture DevOps: Delivering applications at the pace of business
Accenture DevOps: Delivering applications at the pace of businessAccenture DevOps: Delivering applications at the pace of business
Accenture DevOps: Delivering applications at the pace of businessAccenture Technology
 
Desarrollo sostenible
Desarrollo sostenibleDesarrollo sostenible
Desarrollo sostenibleWILS2015
 
The Jasna Gora wunders
The Jasna Gora wundersThe Jasna Gora wunders
The Jasna Gora wundersErasmus+
 
entorno y primeros pasos de powerpoint
entorno y primeros pasos de powerpointentorno y primeros pasos de powerpoint
entorno y primeros pasos de powerpointsalmardze
 
Open Government Data im Bundesumweltamt
Open Government Data im BundesumweltamtOpen Government Data im Bundesumweltamt
Open Government Data im BundesumweltamtOpen Knowledge Austria
 
soziales semantisches web
soziales semantisches websoziales semantisches web
soziales semantisches web_veronika_
 
Bernd Fuhlert: Code of conduct zum Datenschutz
Bernd Fuhlert: Code of conduct zum DatenschutzBernd Fuhlert: Code of conduct zum Datenschutz
Bernd Fuhlert: Code of conduct zum DatenschutzBernd Fuhlert
 
Pensamiento sistematico
Pensamiento sistematicoPensamiento sistematico
Pensamiento sistematicomaryyalitza
 
Ökonomisches Potential ür den Standort
Ökonomisches Potential ür den StandortÖkonomisches Potential ür den Standort
Ökonomisches Potential ür den StandortOpen Knowledge Austria
 
Cierre de Práctica Investigativa Rural en la vereda San José
Cierre de Práctica Investigativa Rural en la vereda San JoséCierre de Práctica Investigativa Rural en la vereda San José
Cierre de Práctica Investigativa Rural en la vereda San JoséIvan Gutierrez
 

Andere mochten auch (20)

Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
 
Continuous integration eine Einführung für Unkundige
Continuous integration   eine Einführung für UnkundigeContinuous integration   eine Einführung für Unkundige
Continuous integration eine Einführung für Unkundige
 
Continuous Delivery Maturity Model
Continuous Delivery Maturity ModelContinuous Delivery Maturity Model
Continuous Delivery Maturity Model
 
The Future of DevOps and UrbanCode
The Future of DevOps and UrbanCodeThe Future of DevOps and UrbanCode
The Future of DevOps and UrbanCode
 
Accenture DevOps: Delivering applications at the pace of business
Accenture DevOps: Delivering applications at the pace of businessAccenture DevOps: Delivering applications at the pace of business
Accenture DevOps: Delivering applications at the pace of business
 
Desarrollo sostenible
Desarrollo sostenibleDesarrollo sostenible
Desarrollo sostenible
 
The Jasna Gora wunders
The Jasna Gora wundersThe Jasna Gora wunders
The Jasna Gora wunders
 
entorno y primeros pasos de powerpoint
entorno y primeros pasos de powerpointentorno y primeros pasos de powerpoint
entorno y primeros pasos de powerpoint
 
Open Government Data im Bundesumweltamt
Open Government Data im BundesumweltamtOpen Government Data im Bundesumweltamt
Open Government Data im Bundesumweltamt
 
Fundación de Córdoba y de Santa Fe
Fundación de Córdoba y de Santa FeFundación de Córdoba y de Santa Fe
Fundación de Córdoba y de Santa Fe
 
soziales semantisches web
soziales semantisches websoziales semantisches web
soziales semantisches web
 
Bernd Fuhlert: Code of conduct zum Datenschutz
Bernd Fuhlert: Code of conduct zum DatenschutzBernd Fuhlert: Code of conduct zum Datenschutz
Bernd Fuhlert: Code of conduct zum Datenschutz
 
Pensamiento sistematico
Pensamiento sistematicoPensamiento sistematico
Pensamiento sistematico
 
Ökonomisches Potential ür den Standort
Ökonomisches Potential ür den StandortÖkonomisches Potential ür den Standort
Ökonomisches Potential ür den Standort
 
OKC March Madness
OKC March MadnessOKC March Madness
OKC March Madness
 
Delitos informáticos
Delitos informáticosDelitos informáticos
Delitos informáticos
 
Poder Ejecutivo
Poder EjecutivoPoder Ejecutivo
Poder Ejecutivo
 
Cierre de Práctica Investigativa Rural en la vereda San José
Cierre de Práctica Investigativa Rural en la vereda San JoséCierre de Práctica Investigativa Rural en la vereda San José
Cierre de Práctica Investigativa Rural en la vereda San José
 
Convenciones y acuerdos de trabajo
Convenciones y acuerdos de trabajoConvenciones y acuerdos de trabajo
Convenciones y acuerdos de trabajo
 
Effimag präsentation05
Effimag präsentation05Effimag präsentation05
Effimag präsentation05
 

Ähnlich wie DevOps - Programmierst Du noch oder betreibst Du schon?

Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'scamunda services GmbH
 
Lean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungLean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungSuperB2
 
SwissQ Agile Trends & Benchmarks 2012 (Deutsch)
 SwissQ Agile Trends & Benchmarks 2012 (Deutsch) SwissQ Agile Trends & Benchmarks 2012 (Deutsch)
SwissQ Agile Trends & Benchmarks 2012 (Deutsch)SwissQ Consulting AG
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Kanban, Lean, and Scrum
Kanban, Lean, and ScrumKanban, Lean, and Scrum
Kanban, Lean, and ScrumThomas Moedl
 
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012IBM Switzerland
 
Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...
Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...
Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...camunda services GmbH
 
We Do Web Sphere Deutsch Webcast On24
We Do Web Sphere Deutsch   Webcast On24We Do Web Sphere Deutsch   Webcast On24
We Do Web Sphere Deutsch Webcast On24Christoph Goertz
 
Rails und Scrum in großen Projekten
Rails und Scrum in großen ProjektenRails und Scrum in großen Projekten
Rails und Scrum in großen ProjektenPhillip Oertel
 

Ähnlich wie DevOps - Programmierst Du noch oder betreibst Du schon? (20)

20110321 activiti märz
20110321 activiti märz20110321 activiti märz
20110321 activiti märz
 
20110203 jug stuttgart
20110203 jug stuttgart20110203 jug stuttgart
20110203 jug stuttgart
 
YOUR SL GmbH
YOUR SL GmbHYOUR SL GmbH
YOUR SL GmbH
 
20110406 activiti mai
20110406 activiti mai20110406 activiti mai
20110406 activiti mai
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
 
Lean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungLean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-Entwicklung
 
SwissQ Agile Trends & Benchmarks 2012 (Deutsch)
 SwissQ Agile Trends & Benchmarks 2012 (Deutsch) SwissQ Agile Trends & Benchmarks 2012 (Deutsch)
SwissQ Agile Trends & Benchmarks 2012 (Deutsch)
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
20110223 activiti
20110223 activiti20110223 activiti
20110223 activiti
 
2012 05-30 camunda fox de
2012 05-30 camunda fox  de2012 05-30 camunda fox  de
2012 05-30 camunda fox de
 
20110406 activiti april
20110406 activiti april20110406 activiti april
20110406 activiti april
 
Kanban, Lean, and Scrum
Kanban, Lean, and ScrumKanban, Lean, and Scrum
Kanban, Lean, and Scrum
 
20110311 activiti mathema
20110311 activiti mathema20110311 activiti mathema
20110311 activiti mathema
 
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
 
Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...
Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...
Roadshow 2019: Praxistipps für die erfolgreiche Einführung von Camunda in Ihr...
 
We Do Web Sphere Deutsch Webcast On24
We Do Web Sphere Deutsch   Webcast On24We Do Web Sphere Deutsch   Webcast On24
We Do Web Sphere Deutsch Webcast On24
 
Game Design Dokumentation und Projekt Management
Game Design Dokumentation und Projekt Management Game Design Dokumentation und Projekt Management
Game Design Dokumentation und Projekt Management
 
Camunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - DeutschCamunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - Deutsch
 
Rails und Scrum in großen Projekten
Rails und Scrum in großen ProjektenRails und Scrum in großen Projekten
Rails und Scrum in großen Projekten
 

DevOps - Programmierst Du noch oder betreibst Du schon?

  • 1. Jean-Pierre König @jpkoenig DEVOPS PROGRAMMIERST DU NOCH ODER BETREIBST DU SCHON? 14.03.12
  • 2. Agenda 2 • Status Quo – „Wall of Confusion“ • Agile Movement, Software Entwicklung • DevOps • DevOps @memonews 14.03.12
  • 3. About me Jean-Pierre König Head of Technology, MeMo News AG Dipl. Informatiker Tags: Agile, BigData, Hadoop 14.03.12
  • 4. Status Quo WALL OF CONFUSION
  • 5. IT Welt • Softwareentwicklung & Systembetrieb organisatorisch klar getrennt • Auslagerung von Organisationseinheiten in andere Unternehmen FOO Inc. ... Finanzen Personal Software Betrieb Verkauf ... BAR Corp. Outsourcing Betrieb 14.03.12
  • 6. Gründe • Skaleneffekt beim Konsolidieren des Systembetriebs nutzen • Personalbedarf im Betrieb steigt nicht zwangsläufig proportional zur Anzahl der zu betreuenden Systeme Betrieb mehrerer Systeme bündeln und an ausgewiesene Organisationseinheiten übergeben ist wirtschaftlich vorteilhaft • Betriebs- und Administrationsaufgaben erfordern anderes Mitarbeiterprofil 14.03.12
  • 7. Ergebnis • Etablierte „Schnittstelledefinition“ zwischen beiden Welten – Wall of Confusion • Wie überführt man Software in den Betrieb? • Wie kann man sicherstellen, dass der Betreib den Anforderungen der Stakeholder gerecht wird? • ... • Prozesse, Metriken, SLA‘s, Regelungen, ... Die IT Infrastructure Library (ITIL) ist eine Sammlung von Best Practices bzw. Good Practices in einer Reihe von Publikationen, die eine mögliche Umsetzung eines IT-Service-Managements (ITSM) beschreiben und inzwischen international als De-facto-Standard hierfür gelten. Quelle: http://de.wikipedia.org/wiki/IT_Infrastructure_Library 14.03.12
  • 8. Ergebnis (2) I want I want change! stability! Dev Ops • automatisiert • formal Allenfalls eine funktionale Zusammenarbeit, aber wenig effizient bzw. effektiv. 14.03.12
  • 10. Warum? Bis zur Jahrtausendwende - klassische Software Entwicklungsmethoden etabliert Nachteilig: • Plangetrieben • Vollständige Erfassung aller Anforderungen nur mit immensem Aufwand möglich • „Keine“ Flexibilität bei geschäftlicher, gesetzlicher oder technischer Veränderung • ...
  • 11. Klassisch Releasezyklus Releasezyklus zentrale QA zentrale QA Initialisierung zentrale QA Analyse zentrale QA Entwurf zentrale QA Realisierung Einführung Nutzung Zeit ... Dev Ops Ops + Anwender Time to Release 14.03.12
  • 12. Agile, Agile, Agile Seit ca. 2003 Kanban & Scrum im Aufwand Ziele: • Risiko minimieren, an Anforderungen vorbei zu entwickeln • Entwicklungskosten einsparen, Time-To-Market Voraussetzungen: • Besseres Zusammenspiel zwischen Entwicklern und Nutzern, Anwender einbinden • Kürzere Entwicklungszyklen 14.03.12
  • 13. Agile/Iterativ „Agilisierter Wasserfall“ Releasezyklus Releasezyklus zentrale QA zentrale QA Sprint 1 2 3 4 ... n Analyse & Analyse & Design Analyse & Analyse & Design Design Design Analyse & Design Einführung Implementierung Implementierung Implementierung Implementierung Implementierung Nutzung Test & Demo & Demo Test & Demo & Demo Test Test Test & Demo Zeit Scrum Team (Dev) Ops Ops + Anwender Time to Release + (Proxy-) Anwender 14.03.12
  • 15. DevOps Auch: Continuous Delivery, Continuous Deployment Releasezyklus Releasezyklus Releasezyklus Releasezyklus Releasezyklus Sprint 1 2 3 4 ... n Analyse & Design Design Design Design Analyse & Analyse & Analyse & Analyse & Design Implementierung Implementierung Implementierung Implementierung Implementierung Test & Demo Demo Demo Demo Test & Test & Test & Test & Demo Einführung Einführung Einführung Einführung Einführung Nutzung Nutzung Nutzung Nutzung Nutzung Delivery Team Zeit + (Proxy-) Anwender Time to Release 14.03.12
  • 16. DevOps steht für ... • Engere Verbindung von Entwicklungsabteilung und Systembetrieb unter Zuhilfenahme agiler Praktiken • Entsprechende Kultur im Umgang miteinander • Werkzeuge, mit denen sich Betriebsaufgaben automatisieren lassen • Zunahme der Häufigkeit von Änderungen bei gleichzeitiger Risikominimierung 14.03.12
  • 17. DevOps ... is emerging set of principles, methods and practices for communication, DevOps collaboration and integration between Technology Operations ... [wikipedia] Patrick Debois prägte den Begriff 2009 erstmalig auf der devopsdays.org Konferenz 14.03.12
  • 18. Funktionierts? • Google (2010): > 20‘000 Experimente führten zu mehr als 500 Updates verschiedener Algorithmen – fast 2 mal täglich • Wordpress (2005-2010): > 25‘000 Releases – ca. 16 pro Tag • Etsy, (2010): > 25 Releases/Tag 14.03.12
  • 20. DevOps Principles • Reproducible, automated releasing • Fail fast – fail early – fail often • Don’t hack under stress – find, fix & start over! • Everything is under version control • Don‘t blame others • It‘s not (mine|yours|theirs ) – it‘s our • Continuous improvement 14.03.12
  • 22. Tools (1) „Infrastructure as Code“ Betriebshandbuch Dev Ops • „nicht“ versiert in Shell Programmierung • „keine“ tiefen Kenntnisse über das • „keine“ fundierte Kenntnisse im Umgang Verhalten von Anwendungen auf dem mit Unix-Systemen Zielsystem • „wenig“ Informationen über die Funktionen einer Anwendungen • „wenig“ Informationen zur Konfiguration 1. Gemeinsames Vokabular (DSL) definieren 2. Gemeinsames Beschreiben aller notwendigen Schritte 3. Direkte Überführung in ein ausführbares Programm 4. Versionierung des Programms zusammen mit der Software • Sehr schnelle betriebsfertige Einrichtung mehrerer Systeme aus einer einheitlichen Quelle 14.03.12
  • 23. Tools (2) Deployment von Anwendung Betriebshandbuch Dev Ops • „keine“ Informationen zu •„wenig“ Informationen zur Installation einer Installationspfaden und Environment Anwendung auf dem Zielsystem Variablen 1. Gemeinsames Vokabular (DSL) definieren capistrano 2. Gemeinsames Beschreiben aller notwendigen Schritte Fabric 3. Direkte Überführung in ein ausführbares Programm 4. Versionierung des Programms zusammen mit der Software • Sehr schnelles Deployment einer lauffähigen Anwendung pro Umgebung 14.03.12
  • 24. DevOps @MEMO 14.03.12
  • 25. Infrastructure as Code [Basics] [Basics] • Open-Source Name=k3‐s14 Networks[]=lan IPv4forwarding=enabled Name=memo‐test‐hmaster IPbase=10.147.55 Fixed=1 Software, YMC AG VirtualIP=disabled AdminGroups[]=ymcRootAccessToAnyHost HA[]=disabled Port=22 cnames[]=disabled Servers[]=k3‐s14 • Produktiver LVM[]=root LVM[]=swap cnames[]=disabled Einsatz: Schweizer [LVM_root] Admins[]=ymc‐jaou Size=10G Admins[]=memo‐jeko Filesystem=ext4 Admins[]=memo‐vaki Admins[]=memo‐niku Fernsehen [LVM_swap] Size=5G Filesystem=swap Admins[]=memo‐chgu LVM[]=disabled • PHP-basiert, [Network_lan] Mount[]=disabled Interfaces[]=1 IP=10.147.213.14 [k3‐s14] Netmask=255.255.0.0 Number=1 automatisiert Gateway=10.147.89.254 Layout=single Routes[]=disabled ... [Interface_lan1] hwAddr=00:1b:05:93:d5:0e ConnectedToInfo=r2‐s5 [Monitoring] CheckGroups[]=ymcClusterNodeDefaultCheckGroup 14.03.12
  • 26. Deployment [9:33:14] nkuebler:processr git:(master) $ cap unicorn:start • Web Anwendung triggering start callbacks for `unicorn:start' * executing `multistage:ensure' *** Defaulting to `rapid‐test' * executing `rapid‐test' • capistrano * executing `unicorn:start' * executing `unicorn:start_production' * executing "if [ ‐f /usr/share/memo‐processr/shared/pids/unicorn.pid ]  && kill ‐0 $(</usr/share/memo‐processr/shared/pids/unicorn.pid)  • Java Anwendung >/dev/null 2>&1; then echo 'unicorn already running'; else echo  'starting unicorn...'; source /usr/local/rvm/environments/ruby‐1.9.2‐ p290; cd /usr/share/memo‐processr/current && /usr/share/memo‐ processr/shared/binstubs/unicorn ‐E production ‐D ‐c /usr/share/memo‐ • Jenkins* processr/current/config/unicorn/production.rb; fi" servers: ["k3‐s7.ymchq", "k3‐s8.ymchq", "k3‐s9.ymchq", "k3‐ s10.ymchq", "k3‐s19.ymchq", "k3‐s20.ymchq"] (PostBuildSteps) [k3‐s7.ymchq] executing command [k3‐s8.ymchq] executing command [k3‐s9.ymchq] executing command • capistrano* [k3‐s10.ymchq] executing command [k3‐s19.ymchq] executing command [k3‐s20.ymchq] executing command ** [out :: k3‐s19.ymchq] starting unicorn... ** [out :: k3‐s10.ymchq] starting unicorn... ** [out :: k3‐s7.ymchq] starting unicorn... ** [out :: k3‐s20.ymchq] starting unicorn... ** [out :: k3‐s8.ymchq] starting unicorn... ** [out :: k3‐s9.ymchq] starting unicorn... command finished in 4967ms * executing `unicorn:start_test' * executing "if [ ‐f /usr/share/memo‐processr/shared/pids/unicorn.pid ]  && kill ‐0 $(</usr/share/memo‐processr/shared/pids/unicorn.pid)  >/dev/null 2>&1; then echo 'unicorn already running'; else echo  'starting unicorn...'; source /usr/local/rvm/environments/ruby‐1.9.2‐ p290; cd /usr/share/memo‐processr/current && /usr/share/memo‐ processr/shared/binstubs/unicorn ‐E production ‐D ‐c /usr/share/memo‐ processr/current/config/unicorn/test.rb; fi" servers: ["k3‐s17.ymchq"] [k3‐s17.ymchq] executing command * (noch) nicht in Produktion ** [out :: k3‐s17.ymchq] starting unicorn... command finished in 3884ms 14.03.12
  • 28. Quellen & Literatur http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/ http://devopsdays.org/ http://www.agileweboperations.com/20-devops-guys http://en.wikipedia.org/wiki/DevOps http://dev2ops.org/blog/2010/2/22/what-is-devops.html http://continuousdelivery.com/ Tools: • http://wiki.opscode.com/display/chef/Home • http://puppetlabs.com/ • https://github.com/capistrano/capistrano/wiki/Documentation-v2.x • http://docs.fabfile.org/en/1.4.0/index.html • http://rundeck.org/ Beispiele: • Google: http://insidesearch.blogspot.com/2011/11/ten-recent-algorithm-changes.html • Wordpress: http://toni.org/2010/05/19/ • Etsy: http://codeascraft.etsy.com/2011/02/04/