34
Continuous Everything Development, Integration, Deployment, DevOps Peter Hormanns cusy GmbH, Berlin Vortrag | OpenRheinRuhr | 5./6. November 2016 de.slideshare.net/cusyio/continuous-everything

Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Continuous EverythingDevelopment, Integration, Deployment, DevOps

Peter Hormanns cusy GmbH, Berlin Vortrag | OpenRheinRuhr | 5./6. November 2016 de.slideshare.net/cusyio/continuous-everything

Page 2: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Kapitelyou + me + cusy

Herzlich Willkommen

Page 3: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Peter Hormanns• Java Developer

• DevOps

• Free Software Consultant

you + me + cusy

Page 4: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

you + me + cusy

cusy.io• SaaS - Software as a Service • Spezialisierung auf Entwickler-Werkzeuge • Datenschutz nach deutschem / europäischem Recht

Page 5: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Agenda

• Vorstellung und Agenda • Die Idee Continuous Delivery und Continuous

Deployment • Werkzeuge für Continuous Delivery und

Continuous Deployment • Die Werkzeuge im Beispielprojekt • Diskussion

Page 6: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Motivation

Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufriedenzustellen.

Erstes Prinzip des agilen Manifests (2001)

» «

Continuous Everything

Page 7: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Herausforderungen

• Development ← vs. → Operations • kontinuierliche Änderung ← vs. → Stabilität • Termine

• Iterationen (2 pro Monat) • Releases (2 pro Jahr)

• Monitoring • der Infrastruktur ✔ • der Funktionalität ☹

Continuous Everything

Page 8: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

DevOps: Continuous Everything

Continuous Everything

Page 9: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

DevOps: Continuous Everything

Continuous Everything

Page 10: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

DevOps: Continuous Everything

Continuous Everything

Page 11: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

DevOps: Continuous Everything

Continuous Everything

Page 12: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

DevOps: Continuous Everything

Continuous Everything

Page 13: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Worum geht es?

In einem Continuous Integration Projekt mergen und commiten alle Entwickler kontinulierlich ihren Arbeitsfortschritt in einen gemeinsamen Branch.

CI-Werkzeuge stellen sicher, dass die Änderungen valide und releasefähig sind.

Continuous Everything

Page 14: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Continuous Integration Regeln

• jeder Entwickler integriert seine Änderungen mindestens täglich

• jeder Push wird durch Build und Tests verifiziert • unfertiger Code bleibt aussen vor (Developer- oder

Feature-Branch) • fehlerhafte Builds werden sofort repariert oder

die Änderung wird verworfen

Continuous Everything

Page 15: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

Continuous Everything Toolchain

• Projektmanagement, Backlog • Dokumentation, Wiki

Page 16: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

• Entwicklung und Code-Review • Versionskontrolle

Continuous Everything Toolchain

Page 17: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

• Continuous Integration, Build-Werkzeuge • Developer-Test-Automatisierung

Continuous Everything Toolchain

Page 18: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

• Continuous-Integration, Testautomatisierung • Integrationstests • Akzeptanztests

Continuous Everything Toolchain

Page 19: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

• Paketierung • Pre-Deployment-Staging • Release-Automatisierung

Continuous Everything Toolchain

Page 20: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

• Konfiguration • Production-Staging • Infrastruktur als Code

Continuous Everything Toolchain

Page 21: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

DevOps Toolchain

• Logging • Exception-Handling • Performance-Monitoring • Service-Desk

Continuous Everything Toolchain

Page 22: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

plan code build test release deploy operate

Dokumenten-

management

&RQὮXHQFH

Projekt-

management

-LUD�6RIWZDUH

Code Review

*HUULW

Versions-

verwaltung

Gitblit

Build Continuous

Integration

Release

&RQὭJXUDWLRQ

$QVLEOH

Helpdesk

-LUD�6HUYLFH�'HVN

Deploy

Webanalyse

3LZLN

Log-Management

& Analyse

6HQWU\

-HQNLQV

cusy Lifecycle Werkzeuge

Continuous Everything Toolchain

Page 23: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Unsere Situation

• Am Projekt arbeitet ein kleines verteiltes Team (zwei bis drei Entwickler)

• mehrere kleine Software-Komponenten • wir bieten eine DevOps Plattform an

→ eat your own dog food !

Continuous Everything Toolchain

Page 24: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Anforderungen an Continuous Integration

!

!

• Alle Änderungen nachvollziehbar • Einfacher Git-Workflow • Automatische Tests

• Entwickler- (=Unit-)Tests • Integrations-/Akzeptanztest !

Continuous Everything Toolchain

Page 25: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Anforderungen an Continuous Delivery

!

!

• Release-Tagging im Git • automatisiertes Packaging • automatisierte Konfiguration • automatisiertes Deployment

Continuous Everything Toolchain

Page 26: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Lösungen

• Git Self-Hosting Gitblit mit grafischer Oberfläche • Maven Projekt- und Build-Tool mit Plugins • Jenkins Contiuous Integration Server • Ansible als Deployment-Automatisierung für DevOps

Continuous Everything Toolchain

Page 27: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Gitblit

Freie Alternative („self-hosted“) zu Github • 2005 Linux Kernel Entwickler entwickeln Git als

Alternative zu BitKeeper • 2008 Github wird gegründet • 2009 JGit - Git Implementierung in reinem Java • seit 2011 kontinulierliche Entwicklung von Gitblit

durch James Moger • Alternativen Gitolite, Gitlab, Gogs

Continuous Everything Toolchain

Page 28: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Maven

Java Build Automation • 2000 Apache Ant, eine Art „make für Java-Projekte“ • 2004 erstes Maven Release

• vorgegebene Projektstruktur • Verwaltung von Abhängigkeiten • Repositories für Build-Artefakte • Plugin-Architektur

Continuous Everything Toolchain

Page 29: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Jenkins CI

Continuous Integration • 2001 Agiles Manifest: Continuous Integration • 2005 Hudson 1.0 • 2010 im Januar übernimmt Oracle Sun Microsystems • 2010/2011 Jenkins forks • 2016 Jenkins 2.0 • Alternativen: Gitlab CI, Travis CI (Webservice), Bamboo

(proprietär)

Continuous Everything Toolchain

Page 30: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Ansible

Configurationmanagement, Infrastructure as Code • 1993 CFEngine • 2005 Puppet • 2012 Ansible: „DevOps“ ohne root-Rechte !

Continuous Configuration Automation

Continuous Everything Toolchain

Page 31: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Continuous Configuration Automation!

!

Die Werkzeuge in der Praxis (Beispielprojekt)

Continuous Everything Tools Demo

Page 32: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Fragen und Diskussion

Ich freue mich auf Eure Fragen, Ideen und Diskussionsbeiträge.

Page 34: Development, Integration, Deployment, DevOpsprogramm.openrheinruhr.de/2016/attachments/113... · 2017-10-23 · • wir bieten eine DevOps Plattform an → eat your own dog food !

Bildnachweise• droidcon Berlin 2015 – Hackathon; cc BY-SA 2.0: droidcon Global • Peter Hormanns • Cusy-Messestand; Veit Schiele • Michael Gernhardt in space during STS-69 in 1995; PUBLIC DOMAIN: NASA