continuous delivery of continuous delivery - … · puppet (+ shell + perl) jenkins ... 6/15/2016...

21
6/15/2016 Continuous Delivery of Continuous Delivery file:///Users/ascheman/wrk/devopssquare/etka16/target/generated-slides/etka16.html 1/21 CONTINUOUS DELIVERY OF CONTINUOUS DELIVERY Gerd Aschemann

Upload: vuongtuong

Post on 28-Jul-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

6/15/2016 Continuous Delivery of Continuous Delivery

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

CONTINUOUS  DELIVERY  OF

CONTINUOUS  DELIVERY

Gerd Aschemann

6/15/2016 Continuous Delivery of Continuous Delivery

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

ENTWICKLERTAG  KARLSRUHE  2016

Gerd Aschemann

twitter:

[email protected]

http://aschemann.net

@GerdAschemann

6/15/2016 Continuous Delivery of Continuous Delivery

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

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?

6/15/2016 Continuous Delivery of Continuous Delivery

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

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)!

6/15/2016 Continuous Delivery of Continuous Delivery

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

ZIEL-­ARCHITEKTUR  (VEREINFACHT)

«Linux/Windows/OSX/...»

Developer-PC

LocalDevelopment

«Vagrant»

LocalVM

«Linux»

Meta-Build-Server

LatestDevelopment

«Vagrant»

LatestVM

«Git»

Local_Repository

«Jenkins»

Jenkins_Local«SCM-Manager»

SCM-Manager_Local

«Jenkins»

Jenkins_Master

«SCM-Manager»

SCM-Manager_Master«Git»

Latest_Repository

«Jenkins»

Jenkins_Latest«SCM-Manager»

SCM-Manager_Latest

Devops-Engineer

Vagrant Up

Vagrant Up

Pull Check Out

Change

Push

6/15/2016 Continuous Delivery of Continuous Delivery

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

STAGE  0:  BASE

modules/ (base/)

scripts/init.sh

puppet/init.pp

composites

scripts/run.sh

lists/minimal

Vagrantfile

6/15/2016 Continuous Delivery of Continuous Delivery

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

BASE/SCRIPTS/INIT.SH

Install puppet

Install puppet modules

stdlib

etckeeper

6/15/2016 Continuous Delivery of Continuous Delivery

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

BASE/PUPPET/INIT.PP

Purge packages (NFS, … )

Install packages (git, perl-test, … )

Setup hiera

Setup etckeeper!

6/15/2016 Continuous Delivery of Continuous Delivery

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

COMPOSITES

lists/minimal

6/15/2016 Continuous Delivery of Continuous Delivery

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

VAGRANTFILE

Environment

Boxname

Memory

IP/Port Ranges

Caching!

Provision: composite (minimal)

6/15/2016 Continuous Delivery of Continuous Delivery

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

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?

6/15/2016 Continuous Delivery of Continuous Delivery

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

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?

6/15/2016 Continuous Delivery of Continuous Delivery

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

STAGE  3:  DOCKER

Neu: modules/data

Neu: modules/docker

Manuelle/Inkrementelle Ausführung führt zu Fehler?!

Keine Änderung in Vagrantfile/composites

6/15/2016 Continuous Delivery of Continuous Delivery

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

STAGE  4:  NEXUS

Neu: modules/nexus

Keine Änderung in Vagrantfile/composites

Puppet Docker-Module erzeugt OS-Service (Nexus)

6/15/2016 Continuous Delivery of Continuous Delivery

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

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

6/15/2016 Continuous Delivery of Continuous Delivery

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

USE  CASES

Kontinuierliche Fortentwicklung der CDP

Automatisierter regelmäßiger (Neu) Aufbau der CDP

Testen neuer Komponenten(versionen)

Testen neuer Prozesse

Schulung/Einarbeitung

6/15/2016 Continuous Delivery of Continuous Delivery

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

ENVIRONMENTS  /  CD  STAGES

Development/Continuous Integration (Automatisierte Tests)

User Acceptance Test (Exploratives Testen)

(Performance/Exception/… Tests)

Produktion

6/15/2016 Continuous Delivery of Continuous Delivery

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

OFFENE  FRAGE(N)

Was ist mit dem Zustand (in Produktion)?

Administrativer Zustand → PaC

Operativer Zustand → it  depends

Repositories

Alte Instanz(en) vorhalten?

Backup?

6/15/2016 Continuous Delivery of Continuous Delivery

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

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???

6/15/2016 Continuous Delivery of Continuous Delivery

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

LINKS

Beispiele:

Slides:

https://github.com/devopssquare/demo-­etka16

https://github.com/devopssquare/helloworld

https://github.com/devopssquare/helloworld-­seed

http://aschemann.net/gerd/publications/cdofcd-­etka2016.pdf

6/15/2016 Continuous Delivery of Continuous Delivery

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

DANKE!