Continuous Delivery of Continuous Delivery - … · Puppet (+ Shell + Perl) Jenkins ... 6/15/2016...
-
Upload
vuongtuong -
Category
Documents
-
view
229 -
download
0
Transcript of Continuous Delivery of Continuous Delivery - … · Puppet (+ Shell + Perl) Jenkins ... 6/15/2016...
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:
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