Continuous Delivery 2015. Kontinuierlich an die Pipeline andocken



Ähnliche Dokumente
DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Quo vadis ContinuousDelivery?

Von ContinuousIntegration zu ContinuousDelivery

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Continuous Delivery in der Praxis

Pipelines zeichnen ist nicht schwer, Pipelines bauen dagegen...

Build-Pipeline mit Jenkins

The linux container engine. Peter Daum

Continuous Delivery mit Docker

Windows Server 2012 R2 Essentials & Hyper-V

Pipelines zeichnen ist nicht schwer, Pipelines bauen dagegen...

Continuous Delivery in der Praxis

DevOps und Continuous Delivery. Von Release Automation bis zur Feedbackschleife. Matthias Zieger codecentric AG

Continuous Delivery in der Realität eines Großunternehmens

ES GIBT EIN LEBEN NACHCI!

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim,

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Von ContinuousIntegration zu ContinuousDelivery

Open Source. Hendrik Ebbers 2015

Von ContinuousIntegration zu ContinuousDelivery

Platform as a Service (PaaS) & Containerization

Installation von NetBeans inkl. Glassfish Anwendungs-Server

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Uwe Baumann artiso Solutions

Installation mit Lizenz-Server verbinden

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

Internet Explorer Version 6

Workshop: Eigenes Image ohne VMware-Programme erstellen

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Pre-tested commit 2.0 mit Gerrit und Jenkins

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Daniel Tschan Technischer Leiter. Continuous Delivery mit OpenShift

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

DevOps in der Praxis. Alexander Pacnik

Erfolgreicher Ums9eg auf Git

Continuous Database Integration mit Flyway

Thema: Microsoft Project online Welche Version benötigen Sie?


Deployment Deployment Seite 1 / 25

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Windows 8/8.1 RecImg-Manager

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Gemeinsam mehr erreichen.

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Installation und Aktualisierung der VMware-Tools

Infrastruktur entwickeln mit Chef

MetaQuotes Empfehlungen zum Gebrauch von

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner

Installation der SAS Foundation Software auf Windows

Hex Datei mit Atmel Studio 6 erstellen

Anleitung zur Webservice Entwicklung unter Eclipse

Docker. Lass mal containern Julian mino GPN

WORKSHOP VEEAM ENDPOINT BACKUP FREE

Reporting Services und SharePoint 2010 Teil 1

Installationsanleitung Boardmaker

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

BartPE. Dokumentation. Projektarbeit Network Services. Dozent: Wolf-Fritz Riekert. Belmondo Kovac. Autor: Andreas Dinkelacker, 3.

CD in the box. Jan Rümenapf Matthias Zieger

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

BMC Control M Tipps & Tricks 2. Martin Dienstl, BMC Software martin_dienstl@bmc.com

Geschrieben von: Stefan Sonntag, den 26. Juni 2011 um 09:45 Uhr - Aktualisiert Sonntag, den 26. Juni 2011 um 10:12 Uhr

DIGICOMP OPEN TUESDAY AKTUELLE STANDARDS UND TRENDS IN DER AGILEN SOFTWARE ENTWICKLUNG. Michael Palotas 7. April GRIDFUSION

Apache Subversion (SVN)

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Installation SQL- Server 2012 Single Node

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Einreichung zum Call for Papers

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Consultant & Geschäftsführer, enpit consulting OHG ugb@enpit.de

Continuous Integration mit Jenkins

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

iphone app - Anwesenheit

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Citrix Dazzle. Die Zukunft der XenApp Bereitstellung? Thomas Kötzing - Freiberufler, Analyst Microsoft MVP, Citrix CTP / ThomasKoetzing.

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

End-to-End Automatisierung Mehr als Continuous Integration & Continuous Delivery

ICS-Addin. Benutzerhandbuch. Version: 1.0

4D Server v12 64-bit Version BETA VERSION

Lizenzierung von Windows Server 2012

HSR git und subversion HowTo

Docker & DevOps.

Praktikum Ingenieurinformatik (PI)

Microsoft SharePoint 2013 Designer

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Fotostammtisch-Schaumburg

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

IBM Software Demos Rational Software Delivery Platform - Änderungen an Design und Architektur einer Anwendung

Versionsverwaltung mit SVN

Transkript:

Kontinuierlich an die Pipeline andocken Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Gliederung Wer? Wie? Was? Match Made In Heaven Zusammenfassung 2 1

Gliederung Wer? Wie? Was? Continuous Delivery Match Made In Heaven Zusammenfassung 3 Been there, done that (1) Build Build Tool Results CI Server Update VCS Publish Commit CI Server Result Page Inform Developer Team 4 2

Been there, done that (2) Daily Build and Smoke Tests sind schon ein alter Hut Erste Veröffentlichung von Steve McConnell im Jahre 1996 Continuous Integration Artikel von Martin Fowler im Jahre 2000 Klingender Name, Key Practices, erste Tools (CruiseControl) Continuous Integration gehört heute zum guten Ton Diverse Server, Definition von Best Practices und Patterns 5 Da war doch noch was? (1) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. First principle behind the Agile Manifesto (http://agilemanifesto.org/principles.html) 6 3

Da war doch noch was? (2) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. First principle behind the Agile Manifesto (http://agilemanifesto.org/principles.html) 7 I Can't Get No Satisfaction Kunde möchte Verfügbarkeit seiner Funktionalität Kein Interesse, ob CI Server rot, grün, gelb oder blau ist. Zwischen gutem CI Build und Kunden Verfügbarkeit liegt Release Oft manuell, zeitintensiv, kompliziert, viele Beteiligte, fehleranfällig Seltene Releases als Konsequenz Frustrierend für den Kunden, dafür Stress bei Hotfix Releases 8 4

Buzzword Time (1) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. First principle behind the Agile Manifesto (http://agilemanifesto.org/principles.html) 9 Buzzword Time (2) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. First principle behind the Agile Manifesto (http://agilemanifesto.org/principles.html) 10 5

Let Me Google That For You Change Change Time Time [ ] reduce the cost, time and risk of delivering changes, and ultimately value, to customers by allowing for more incremental changes to applications in production (Quelle: http://en.wikipedia.org/wiki/continuous_delivery) 11 The Good Book Frühere Begriffsverwendung von Continous Delivery und Wurzeln Agile Manifesto (2001) Deployment Pipeline (2004 / 2005) Gleichnamiges Buch von Jez Humble & David Farley Eigentliche Begriffsprägung (2010) Schwerpunktthemen Automation und Collaboration 12 6

Continuous Delivery Konzepte Create a Repeatable, Reliable Process for Releasing Software If It Hurts, Do It More Frequently, and Bring the Pain Forward Automate Almost Everything Keep Everything in Version Control Everybody Is Responsible for the Delivery Process Done Means Released Und wie soll das alles umgesetzt werden? (Nach Continuous Delivery /J. Humble, D. Farley) 13 Gliederung Wer? Wie? Was? Continuous Delivery Deployment Pipeline Match Made In Heaven Zusammenfassung 14 7

Deployment Pipeline Ein erster Blick Zentrale Abstraktion Deployment Pipeline Visualisierung aller Prozessteile für alle Beteiligten Verbessertes Feedback während der Ausführung Möglichkeit eines vollautomatischen Releases in alle Umgebungen Commit Stage Akzeptanz Test Stage Performance Test Stage Nutzerabnahme Stage Produktiv Stage Compilieren Unit Tests ausführen Paketieren Code Analyse ausführen Umgebung konfigurieren Binaries deployen Smoke Tests ausführen Akzeptanz Tests ausführen Umgebung konfigurieren Binaries deployen Smoke Tests ausführen Performance Tests ausführen Umgebung konfigurieren Binaries deployen Smoke Tests ausführen Umgebung konfigurieren Binaries deployen Smoke Tests ausführen (Nach Continuous Delivery /J. Humble, D. Farley) 15 Deployment Pipeline Bestandteile Die Deployment Pipeline Macht Status der Produktentwicklung sichtbar Liefert Feedback zu jeder Änderung Technisch-konzeptuelle Basis des Release Prozesses Die Pipeline besteht aus einer Folge von Stages Commit Stage als zentrales Eingangs-Gate Typische Stages: UAT, Performance Tests, Production Deployment Stages verbunden durch Trigger (automatisch oder manuell) Jobs sind die Bausteine der Stages Unit of Work Bestehen aus Tasks wie Build, Deploy, Copy, Test, 16 8

Deployment Pipeline Sequenzdiagramm Delivery Team Nutzerabnahme Versionskontrolle Artefakte bauen und Unit Tests Automatisierte Akzeptanz Tests Release in Produktion Check in Trigger Feedback Trigger Feedback Feedback Manual approval Manual approval Jede Ressourcen Änderung startet neue Pipeline Instanz Erste Stage produziert alle Artefakte Durchlaufen aller Stages bis Fehlschlag ( Stop the line ) oder Pipeline Ende erreicht ist (letzte Stage führt Deployment aus) (Nach Continuous Delivery /J. Humble, D. Farley) 17 Deployment Pipeline Ein zweiter Blick Quellcode Infrastruktur- und Anwendungskonfiguration VCS Qualitätssicherung: Selbstgesteuertes Deployment Nutzerabnahme Stage Commit Stage Akzeptanz Test Stage Produktiv Stage automatisiert: einmaliges Erstellen der Artefakte und Freigabe in das Artefakt-Repository Anwendungsbetrieb: Release auf Knopfdruck Performance Test Stage Anwendungsbetrieb: Release auf Knopfdruck Artefakt-Repository (Nach Continuous Delivery /J. Humble, D. Farley) 18 9

tl;dr A deployment pipeline is, in essence, an automated implementation of your application s build, deploy, test, and release process. ( Continuous Delivery, J. Humble, D. Farley) 19 Alle Theorie ist grau The deployment pipeline has its foundation in the process of continuous integration and is in essence the principles of continuous integration taken to its logical conclusion. (J. Humble, D. Farley) Bisheriger CI Fokus Commit Stage Akzeptanz Test Stage Performance Test Stage Nutzerabnahme Stage Produktiv Stage 20 10

Tool Time Jeder gängige CI Server bietet Pipeline Bausteine an Und ist somit ein CD Server Konkrete Namen können variieren Teils historische Gründe, teils Abgrenzung zur Konkurrenz Exemplarische Beispiele ( Your Mileage May Vary ) Jenkins: Build Jobs, Build Steps, Post-build Actions, diverse Plugins Bamboo: Build Plans, Stages, Jobs, Tasks CI Server Unterschiede eher in anderen Bereichen, zum Beispiel Jenkins Workflow Plugin: Erstellung von Pipelines per DSL Bamboo Deployment Projects: Verwaltung von Artefakt Deployments 21 Gliederung Wer? Wie? Was? Continuous Delivery Deployment Pipeline Match Made In Heaven Docker Zusammenfassung 22 11

Was ist Docker? Docker allows you to package an application with all of its dependencies into a standardized unit for software development. Open Source Projekt mit über 1.000 Mitwirkenden Release als Open Source Projekt im März 2013 Mitwirkende Unternehmen sind u.a. Red Hat, IBM, Google, Cisco Kernabstraktion ist Container ( standardized unit ) Virtualisierung auf Betriebssystem Ebene ( lightweight ) Simuliert vollständig isolierte Umgebung ( secure ) Basiert auf verschiedenen Linux Kernel Features ( open ) 23 Container vs. Virtual Machine (VM) Container bieten isolierte Umgebung auf dem selben OS Container im Vergleich zu VMs kleiner und weniger ressourcenhungrig Virtual Machines benötigen jeweils komplettes OS Virtual Machine, z.b. nötig um Docker auf Windows laufen zu lassen (Quelle Graphik: https://www.docker.com) 24 12

Docker Architektur Daemon und Client Auf einer Docker Host Maschine läuft der Docker Daemon Per Docker Kommandozeilen Client kann Benutzer interagieren (Quelle Graphik: https://docs.docker.com) 25 Docker Architektur Container und Images Container enthalten alles um Anwendungen isoliert auszuführen Können u.a. gestartet, gestoppt und gelöscht werden ( run component ) Images sind Read Only Templates für Container z.b. mit Ubuntu, Apache HTTPD, Webanwendung ( build component ) (Quelle Graphik: https://docs.docker.com) 26 13

Docker Architektur Image Layers Images Read-Write Layer Read Layer Read Layer Read Layer Container Images bestehen aus hierarchischen read only Schichten (Layers) Jedes Image basiert auf Basis Image (z.b. Ubuntu oder Apache Image) Image verändern heißt einzelne Schichten erneuern oder ergänzen Bestehendes Image kann mittels Instructions verändert werden Run Command, Add File, Launch Process, Create Env Variable, Basis Image Angabe plus Instructions bilden ein Dockerfile 27 Docker Architektur Dockerfile # ANGABE DES BASIS IMAGE FROM java:openjdk-8u66-jdk MAINTAINER Steffen Schluff <steffen.schluff@oio.de> RUN apt-get update && apt-get install -y wget git && rm -rf /var/lib/apt/lists/* ADD https://get.docker.com/builds/linux/x86_64/docker-1.8.3 /usr/local/bin/docker RUN chmod +x /usr/local/bin/docker COPY start.sh /usr/local/bin/start.sh ENV BAMBOO_HOME /data/bamboo-agent-home CMD ["/usr/local/bin/start.sh"] Mittels docker build kann aus Dockerfile ein Image erstellt werden Angabe eines Context (Bezugsverzeichnis) ebenfalls notwendig 28 14

Docker Architektur Container Images Read-Write Layer Read Layer Read Layer Read Layer Container Mittels docker run wird aus Image ein Container erzeugt Image enthält Infos zu Container Inhalt und was zu ausführen ist Container enthält Image Layers und eine obere read write Layer In diesem Container können nun Anwendungen ablaufen Container können sich in verschiedenen Zuständen befinden Container müssen nicht laufen, sondern können auch gestoppt sein 29 Docker Architektur Registries Registries verwalten Images und stellen diese in Repositories bereit Dies können eigene oder fremde Images sein ( distribution component ) Docker Hub ist die offizielle Docker Registry Enthält private, öffentliche und offizielle Repositories (Quelle Graphik: https://docs.docker.com) 30 15

Docker Client Commands (Auszug) build Build an image from a Dockerfile images List images ps List containers pull Pull an image or a repository from a registry rm Remove one or more containers rmi Remove one or more images run Run a command in a new container stop Stop a running container 31 Sittin' On The Dock Of The Bay Ich möchte keinen Monolithen sondern meine Dienste trennen. Datenbank und Web Server sollen in getrennten Containern laufen Docker hat ein Linking System zur Verknüpfung von Containern Ich möchte aber meine Daten nicht in einem Container haben. Daten sollen von Containern weiter verwendet oder geteilt werden Docker besitzt Data Volumes zur Bewegdaten Verwaltung Jetzt wird bestimmt die Konfiguration wieder so kompliziert. Setup und Verlinkung von Containern und Data Volumes soll leicht sein Docker Compose für zentrale Konfig und single command launch Außerdem Clustering mit Docker Swarm, eigene Docker Registry, 32 16

Gliederung Wer? Wie? Was? Match Made In Heaven Zusammenfassung 33 Mehr als die Summe seiner Teile Container auf ersten Blick doch nur eine weitere Art der Paketierung Einbindung in CI Server per Kommandozeile wie bei RPM, JAR, MSI, Docker ist aber mehr als nur ein weiteres Paket Format Docker is an open platform for building, shipping and running distributed applications. Docker bietet komplettes Ökosystem nicht nur ein einzelnes Tool Zum Beispiel Official Repositories auf Docker Hub Container als deploybares Artefakt enthalt vollständige Anwendung Kein Mix mehr aus zu deployenden Binaries, externen Libs, Configs, Was hat der Einsatz von Docker denn dann zur Folge? 34 17

Silver Bullets und Buzzwords (1) Docker wird gerne mit bestimmten Themen kombiniert Und jede erfolgreiche neue Technologie weckt Hoffnung auf Wunder Continuous Delivery / DevOps Künftig deployen wir komplette Anwendungen als Container Alle unsere Missverständnisse zwischen Dev und Ops sind gelöst (Quelle: http://dev2ops.org/2010/02/what-is-devops/) 35 Silver Bullets und Buzzwords (2) Immutable Infrastructure Infrastruktur wird getrennt in Server und Daten Server besitzen eine versionierte Definition (keine in-place updates ) Bei Änderungen wird alter Server entfernt und neuer gestartet Docker kann das durch Dockerfiles und Data Volumes Keine Snowflake Server mehr, Rollbacks und Scaling wird viel leichter Microservices Docker bietet isolierte Container, die miteinander verlinkbar sind Viele verbundene Dienste in verschiedenen Sprachen leicht erstellbar Docker kann bei diesen Themen helfen, löst aber nichts von alleine 18

Und was nun? Große Themen implizieren ein Container basiertes Deployment Docker basierter Produktionsbetrieb häufig nicht so leicht machbar Strategische Entscheidung von großer Tragweite Technologie ist noch relativ neu Vorhandenen Applikationen müssen angepasst werden Ist Docker dann für mich überhaupt spannend? Docker can help improve CI independently of whether your application will ultimately be deployed as a Docker image or not. Das Runde muss ins Eckige (1) Docker und CD Server können unterschiedlich zusammen arbeiten Bereitstellung von Build Agents oder Build Slaves Buildverteilung ist mittlerweile de facto Standard Mit Docker können schnell jeweils passende Agents erzeugt werden CD Server Hersteller bieten teilweise fertige Agent Images an Docker Container als Teil des Build starten Um Anwendung selbst für Tests zu starten (sofern in einem Container) Um Infrastruktur für Integrationstest bereit zu stellen (Datenbanken, ) Verwendete Images sind auch lokal von Entwicklern nutzbar 38 19

Das Runde muss ins Eckige (2) Docker Image bauen Falls Anwendung als Docker Container ausgeführt werden soll Inklusive Tagging (Build Nummer oder symbolischer Tag wie latest ) Docker Image in Registry pushen Falls Image anderen leicht zugänglich gemacht werden soll Für eventuelles späteres Deployment der Anwendung Information aus Registry ob bestimmtes Image aktualisiert wurde Image ist Quelldatei, falls Anwendung als Container in Produktion geht Registries bieten Möglichkeiten bei Änderungen Webhooks aufzurufen All dies wird von den gängigen CD Servern direkt unterstützt 39 Demonstration 40 20

Gliederung Wer? Wie? Was? Match Made In Heaven Zusammenfassung 41 Docker, Docker Everywhere (sed "s/cloud/docker/g") (Quelle: http://dilbert.com/strip/2011-01-07) (Quelle: http://dilbert.com/strip/2012-05-25) 42 21

Continous Delivery wird Fahrt aufnehmen NEU Jetzt mit Docker Beschleuniger (Quelle: http://en.wikipedia.org/wiki/hype_cycle) 43 If you remember one thing For anybody doing CI today, moving to Docker images represents low-hanging fruit that comes with very little disruption, but lots of advantages. (Cloudbees Whitepaper: CD with Jenkins & Docker) 44 22

Literaturhinweise (Quelle: https://xkcd.com/1369/) 45 Links Unterstand the Docker architecture https://docs.docker.com/introduction/understanding-docker/ Docker containers, Bamboo, and winning at continuous delivery http://blogs.atlassian.com/2015/06/docker-containers-bamboo-winningcontinuous-delivery/ Configuring the Docker task in Bamboo https://confluence.atlassian.com/bamboo/configuring-the-docker-task-inbamboo-720411254.html Jenkins and Docker https://www.cloudbees.com/continuous-delivery/jenkins-docker Docker Workflow Plugin Demo https://github.com/jenkinsci/docker-workflow-plugin/tree/master/demo 46 23

Mehr von OIO zum Thema Schulung: Docker für Java Entwickler http://www.oio.de/seminar/open-source/training-docker-schulung-javaseminar.htm?vf15 Schulung: Microservices für Architekten http://www.oio.de/seminar/entscheider/seminar-entwicklungmicroservices-schulung-betrieb-training.htm?vf15 Schulung: Jenkins Grundlagen http://www.oio.de/schulung-hudson-seminar-continuous-integrationtraining-jenkins.htm?vf15 Schulung: Gradle für Java Builds http://www.oio.de/seminar/open-source/training-gradle-kurs-java-buildschulung.htm?vf15 47?? Fragen??? Orientation Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de?? 48 24

Vielen Dank für ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de 25