SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
Continuous Integration
im Rechenzentrum
Michael Prokop
Roadmap
• Begriffsklärung + Gründe für CI
• CI-Server Jenkins
• CI mit Debian-Paketen
• Weitere Beispiele für Einsatz von
CI/CD im Rechenzentrum
• Best Practices
Begriffsklärung
• Continuous Integration
• Continuous Deployment
• Continuous Delivery
Warum CI?
Unabhängigkeit
Quelle: http://decarabia.soup.io/post/241926962/Image
Skalierbarkeit
Quelle: http://up.arab-x.com/May12/M9b65492.jpg
Reproduzierbar
Quelle: http://www.flickr.com/photos/route79/13120127/
Berechenbar
Quelle: http://xkcd.com/612/
Versionskontrolle
• Nur was unterVersionskontrolle ist zählt
• DistributedVCS ftw!
% make
alleine ist NICHT genug
Quelle: http://xkcd.com/303/
Jenkins
das “Wordpress der CI-Server”
Jenkins
• Open Source (MIT Lizenz)
• wöchentliche && LTS-Releases
• >60k Installationen (Stand Ende März)
• >700 Plugins (Stand Mitte April)
• Community
FAQ #1 - Java?!
• ja, RAM hilft
• nein, man braucht keinen Javacode
anzugreifen
• nein, unterstützt nicht nur Java-Projekte
FAQ #2: Blau?! Gelb?!
• http://jenkins-ci.org/content/why-does-
jenkins-have-blue-balls
Getting Started
% curl -L -o jenkins.war 
http://mirrors.jenkins-ci.org/war/latest/
jenkins.war
% java -jar jenkins.war
% $BROWSER http://0.0.0.0:8080
Disclaimer: bitte die (Upstream-)Software-
Bestandteile einer
Buildpipeline, u.a.
• Build Artifacts (*.jar, *.deb, *.rpm,...)
• Stages (development, testing, production,...)
• Q/A-Tests (unit/component/system/...)
• Notifications
https://www.youtube.com/watch?v=1EGk2rvZe8A
CI mit Debian-Paketen
jenkins-debian-glue
Debian Packaging
• dpkg [v3] + debhelper [v8]
• dh-make, dh-make-perl, dh-make-php, dh-
make-ruby/gem2deb
• fpm (https://github.com/jordansissel/fpm)
• {cvs,svn,git,...}-buildpackage
• cowbuilder/pbuilder/sbuild/...
• reprepro/dak/freight/...
jenkins-debian-glue.org
• Debian-Pakete kontrolliert bauen
• Auch für Nicht-Debian-Entwickler
benutzbar (reprepro/freight/cowbuilder/...)
• Unterstützt Subversion + Git ootb
• Vorwiegend Shell, ein wenig Ruby/Python/
Perl (je nach Einsatz) -> leicht adaptierbar
jenkins-debian-glue
im Praxiseinsatz
• Grml (http://jenkins.grml.org/)
• hostet u.a. dpkg, FAI, initramfs-tools
• PostgreSQL (https://wiki.postgresl.org/wiki/
Apt)
• Icinga (http://icingabuild.dus.dg-i.net)
• LLVM Debian/Ubuntu (http://llvm.org/apt/)
Source-Pakete
• (Upstream-)Source (orig.tar.gz)
• Debian-Änderungen (debian.tar.gz) [opt.]
• Control-Datei (.dsc)
Wichtig: nur einmal pro Paket Erstellen
Binary-Pakete
• *_all.deb/*_amd64.deb/*_i386.deb
• *.changes, *.dsc, *.tar.gz
Wichtig: pro Architektur einmal Bauen
(Ausnahme für “Architecture: all”)
Repository
• reprepro und freight Handling ootb
• http://mirrorer.alioth.debian.org/
• https://github.com/rcrowley/freight/
• standardmässig ein Repository pro Projekt
• sog. Release-Repository + trunk-release-
Repository einfach aktivierbar
-> kein manuelles Setup/Management notwendig
Q/A-Tests
• lintian: Paketqualität
• autopkgtest: Paket-Tests in definierter
Umgebung
• piuparts: Install/Deinstall/Upgrade-Tests
• perlcritics/checkbashism/...: Code-Policies
Resultat als TAP/jUnit/...-Report in Jenkins
jenkins-debian-glue
• *-source -> Source-Paket
• *-binaries -> Binary-Paket(e)
• *-repos -> Repository-Handling (optional)
• *-piuparts -> Install/Deinstall/Upgrade-
Testing (optional)
Bsp. für Dependencies
Bsp. für Dependencies
Deployment von j-d-g
• siehe http://jenkins-debian-glue.org/
• in <15 Minuten (auch auf EC2) mit
minimalem Aufwand testbar
Default Deployment
von jenkins-debian-glue
Weitere Einsatzbeispiele im
Rechenzentrum
Puppet, Custom ISOs, Dokumentation,...
puppet-lint
• https://github.com/rodjek/puppet-lint
• Integration inVCS pre-commit-Hook (z.B.
auch gemeinsam mit Syntax-Check)
• https://gitorious.org/puppet-helpers/
puppet-helpers
Puppet Environments
• z.B.:
• development
• staging
• production
• https://puppetlabs.com/blog/git-workflow-
and-puppet-environments/
Puppet Testing
• RSpec-Puppet (http://rspec-puppet.com/)
• https://puppetlabs.com/blog/the-next-
generation-of-puppet-module-testing/
• https://github.com/camptocamp/puppet-
spec
Verifzieren vom System
• RSpec tests
• http://serverspec.org/
• mspectator
• https://github.com/raphink/mspectator
• Tests::Server
• http://search.cpan.org/dist/Test-Server/
Custom Grml ISOs
• grml-live.git (http://grml.org/grml-live/): templates/
boot/isolinux/* anpassen
• Bootoptionen (z.B. netscript=http://example.org/
path/to/deployment.sh)
• Bootsplash Layout (z.B. Firmenlogo)
• % sudo grml2iso -c templates -o custom.iso grml.iso
• Teil von grml2usb (http://grml.org/grml2usb/)
Admin-Doku
• z.B. mit Sphinx (reStructured TeXt, Such-
Feature in HTML-Ausgabe inkludiert!)
• automatisch via Jenkins-Job bauen ausVCS
• immer aktuelle Dokumentation für alle
zugänglich (HTML, PDF,...)
Vagrant/Veewee
• Vagrant base boxes +VMs mitVeewee
automatisch bauen
• https://github.com/jedi4ever/veewee
• Testen/Entwicklung mitVagrant
• http://www.vagrantup.com/
• Entwickler können Puppet/Chef/...-
Rezepte schreiben und testen!
Best Practices
... oder nicht jeder muss die
gleichen Schmerzen erleben
Automatisieren
was weh tut
Quelle: http://www.flickr.com/photos/ctrl-l/3579073698/
Timestamper Plugin
Test Anything Protocol
+ Plugin
Bruce Schneier Plugin
... knows Alice and Bob's shared
secret.
“discard old builds”
Quelle: http://www.flickr.com/photos/epsos/5575089139/
Hardware nutzen
teuer
schnelle
Entwicklerzeit ist
Homogenität
Quelle: http://www.flickr.com/photos/baggis/226567107/
Builds triggern
und nicht pollen
Jenkins Jobs Handling
• Erstellen von Jobs automatisieren
• Configs inVCS speichern
• https://wiki.jenkins-ci.org/display/JENKINS/
SCM+Sync+configuration+plugin
• jenkins-job-builder & CO
• https://github.com/openstack-infra/jenkins-job-
builder
• ... viele weitere Tools: https://gist.github.com/
mika/5237127
Externe Abhängigkeiten
beseitigen
Beispiele was schiefgehen kann (BTDT):
• Github
• PyPI
• RubyGems
• Percona Repository
• ....
There are only two hard
problems in Computer Science:
cache invalidation, naming things
and off-by-one errors.
Jenkins Master als
Controlinstanz
+ Jenkins Slaves fürs
Bauen
Dashboards
• View auf Repository
• View auf Build-Status
• Frontend für Bauen von Releases
• ...
Low-Hanging Fruits
für Speedup
• tmpfs
• eatmydata
• lokaler Package-Mirror
Puppet mit mcollective
mcollective ftw!
% mco rpc package apt_update
% mco package update 
jenkins-debian-glue 
-W /jenkins-slave/
Achtung vor Catch-22
1) CI-Upgrade geht nicht wegen Bug,
Bugfix von Plugin hängt aber
von neuer CI-Version ab
2) Buildskripte die unter dem CI-System
stecken kommen vom CI-System selbst
....
Wartungsfenster auch
für CI-Umgebung
schaffen
Recap
• Keine Angst vor Jenkins
• Verfügbare Jenkins-Plugins anschauen
• Automatisierung (Paketmanagement,
Configuration Management,...)
• Kein manuelles SSH (fabric, mcollective,....)
• Tests schreiben
• Dashboards
Fragen || Wünsche?
@mikagrml
mika @ github
michael-prokop.at/blog/
grml-solutions.com

Weitere ähnliche Inhalte

Was ist angesagt?

Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance ReloadedGregor Goldbach
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...inovex GmbH
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppetinovex GmbH
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantChristoph Möller
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsBild GmbH & Co. KG
 
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHEntwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHstijink
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit MavenStefan Scheidt
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedRené Winkelmeyer
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetRalf Abramowitsch
 
Von Test nach live mit Rex
Von Test nach live mit RexVon Test nach live mit Rex
Von Test nach live mit Rexinovex GmbH
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!JanWeinschenker
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3Roman Hutterer
 

Was ist angesagt? (20)

Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppet
 
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkins
 
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbHEntwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
Entwicklungsprozess und Arbeit mit Symfony2 in der fotocommunity GmbH
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
 
Von Test nach live mit Rex
Von Test nach live mit RexVon Test nach live mit Rex
Von Test nach live mit Rex
 
Wordpress im docker
Wordpress im dockerWordpress im docker
Wordpress im docker
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Arquillian
ArquillianArquillian
Arquillian
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
 

Ähnlich wie OSDC 2013 | Continuous Integration in data centers by Michael Prokop

OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!Tobias Schneck
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployMark Lechtermann
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...Marc Müller
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeos890
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everythingcusy GmbH
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnMartin Seibert
 
Creative codingday 2_10012014_vor
Creative codingday 2_10012014_vorCreative codingday 2_10012014_vor
Creative codingday 2_10012014_vorJeongHo Park
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit RexJan Gehring
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?inovex GmbH
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows ContainerThomas Wilhelm Wiefel
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenFotiosKaramitsos
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastrukturinovex GmbH
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 

Ähnlich wie OSDC 2013 | Continuous Integration in data centers by Michael Prokop (20)

OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpike
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickeln
 
Creative codingday 2_10012014_vor
Creative codingday 2_10012014_vorCreative codingday 2_10012014_vor
Creative codingday 2_10012014_vor
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit Rex
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastruktur
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale Entwicklungsumgebung
 

OSDC 2013 | Continuous Integration in data centers by Michael Prokop