2016 Continuous Delivery of Continuous Delivery

6/15/2016 Continuous Delivery of Continuous Delivery CONTINUOUS  DELIVERY  OF CONTINUOUS  DELIVERY Gerd Aschemann file:///Users/ascheman/wrk/devopss...
2 downloads 1 Views 1MB Size
6/15/2016

Continuous Delivery of Continuous Delivery

CONTINUOUS  DELIVERY  OF CONTINUOUS  DELIVERY Gerd Aschemann

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

1/21

6/15/2016

Continuous Delivery of Continuous Delivery

ENTWICKLERTAG  KARLSRUHE  2016 Gerd Aschemann [email protected] http://aschemann.net twitter: @GerdAschemann

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

2/21

6/15/2016

Continuous Delivery of Continuous Delivery

FRAGESTUNDE Wer nutzt Continuous Integration? Wer betreibt Continuous Delivery? Wer setzt auf Infrastructure  as  Code (IaC)? Wer baut seine CIP/CDP per IaC? Wem sagt das alles gar nichts?

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

3/21

6/15/2016

Continuous Delivery of Continuous Delivery

EIN  DRAMA  IN  FÜNF  AUFZÜGEN  Vagrant-Setup! Demonstration von CD4CD Vagrant Puppet (+ Shell + Perl) Jenkins (+ Maven) Docker/Nexus Was/Wie/Warum oder Warum nicht? → Platform  as  Code  (PaC)!

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

4/21

6/15/2016

Continuous Delivery of Continuous Delivery

ZIEL-­ARCHITEKTUR  (VEREINFACHT) Devops-Engineer Change

«Linux/Windows/OSX/...» Developer-PC «Linux» Meta-Build-Server

LocalDevelopment «Git» Local_Repository

«Jenkins» Jenkins_Master

Vagrant Up

Push

Pull

«Vagrant» LocalVM «SCM-Manager» SCM-Manager_Local

Check Out

LatestDevelopment «Jenkins» Jenkins_Local

«SCM-Manager» SCM-Manager_Master

«Git» Latest_Repository

Vagrant Up

«Vagrant» LatestVM «SCM-Manager» SCM-Manager_Latest

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

«Jenkins» Jenkins_Latest

5/21

6/15/2016

Continuous Delivery of Continuous Delivery

STAGE  0:  BASE modules/ (base/) scripts/init.sh puppet/init.pp composites scripts/run.sh lists/minimal Vagrantfile

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

6/21

6/15/2016

Continuous Delivery of Continuous Delivery

BASE/SCRIPTS/INIT.SH Install puppet Install puppet modules stdlib etckeeper

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

7/21

6/15/2016

Continuous Delivery of Continuous Delivery

BASE/PUPPET/INIT.PP Purge packages (NFS, …) Install packages (git, perl-test, …) Setup hiera Setup etckeeper!

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

8/21

6/15/2016

Continuous Delivery of Continuous Delivery

COMPOSITES lists/minimal

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

9/21

6/15/2016

Continuous Delivery of Continuous Delivery

VAGRANTFILE Environment Boxname Memory IP/Port Ranges Caching! Provision: composite (minimal)

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

10/21

6/15/2016

Continuous Delivery of Continuous Delivery

STAGE  1:  JENKINS Neu: modules/jenkins-native scripts/init.sh: Wie gehabt puppet/init.pp !!! composite/lists: jenkins-only NEU: scripts/test.pl  Das ist ein Unit-Test!  Ist das ein Unit-Test?

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

11/21

6/15/2016

Continuous Delivery of Continuous Delivery

STAGE  2:  JENKINS  INTEGRATION  TEST Neu: modules/it-jenkins-minimal scripts, composites: Wie gehabt puppet/init.sh Seed Job HelloWorld Integrations-Test: Wurden die Jobs ausgeführt?

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

12/21

6/15/2016

Continuous Delivery of Continuous Delivery

STAGE  3:  DOCKER Neu: modules/data Neu: modules/docker Manuelle/Inkrementelle Ausführung führt zu Fehler?! Keine Änderung in Vagrantfile/composites

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

13/21

6/15/2016

Continuous Delivery of Continuous Delivery

STAGE  4:  NEXUS Neu: modules/nexus Keine Änderung in Vagrantfile/composites  Puppet Docker-Module erzeugt OS-Service (Nexus)

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

14/21

6/15/2016

Continuous Delivery of Continuous Delivery

STAGE  5:  JENKINS  +  NEXUS  INTEGRATION TEST Neu: modules/jenkins-settings-nexus-localhost Neu: modules/it-jenkins-nexus-minimal Neu: composites/lists/it-jenkins-nexus-minimal

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

15/21

6/15/2016

Continuous Delivery of Continuous Delivery

USE  CASES Kontinuierliche Fortentwicklung der CDP Automatisierter regelmäßiger (Neu) Aufbau der CDP Testen neuer Komponenten(versionen) Testen neuer Prozesse Schulung/Einarbeitung

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

16/21

6/15/2016

Continuous Delivery of Continuous Delivery

ENVIRONMENTS  /  CD  STAGES Development/Continuous Integration (Automatisierte Tests) User Acceptance Test (Exploratives Testen) (Performance/Exception/… Tests) Produktion

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

17/21

6/15/2016

Continuous Delivery of Continuous Delivery

OFFENE  FRAGE(N) Was ist mit dem Zustand (in Produktion)? Administrativer Zustand → PaC Operativer Zustand → it  depends Repositories Alte Instanz(en) vorhalten? Backup?

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

18/21

6/15/2016

Continuous Delivery of Continuous Delivery

FAZIT CD-Plattform als PaC realisiert Nutzung von Virtualisierung und Containern Modularisierung und Aggregation Puppet ist oft hakelig (Ansible auch) Ausblick: Feedback-Loops/Monitoring fehlt Unabhängigkeit von Puppet/Ansible/Salt/Chef???

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

19/21

6/15/2016

Continuous Delivery of Continuous Delivery

LINKS Beispiele: https://github.com/devopssquare/demo-­etka16 https://github.com/devopssquare/helloworld https://github.com/devopssquare/helloworld-­seed Slides: http://aschemann.net/gerd/publications/cdofcd-­ etka2016.pdf

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

20/21

6/15/2016

Continuous Delivery of Continuous Delivery

DANKE!

file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html

21/21