Continuous everything

215 Aufrufe

Veröffentlicht am

Der Iterations-Zylus, in dem Software-Entwickler arbeiten, hat sich in den letzten Jahren schrittweise erweitert: Entwicklung, Entwickler-Test, Integration, Akzeptanz-Test, Deployment, Delivery. Zur DevOps-Kultur gehört die Bewältigung dieser Schritte im Entwickler-Team.

Veröffentlicht in: Internet
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
215
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Continuous everything

  1. 1. Continuous Everything Development, Integration, Deployment, DevOps Peter Hormanns cusy GmbH, Berlin Vortrag | Linuxday Dornbirn | 26. November 2016 de.slideshare.net/cusyio/continuous-everything
  2. 2. Kapitelyou + me + cusy Herzlich Willkommen
  3. 3. Peter Hormanns • Java Developer • DevOps • Free Software Consultant you + me + cusy
  4. 4. you + me + cusy cusy.io – SaaS – Software as a Service – Spezialisierung auf Entwickler-Werkzeuge – Datenschutz nach deutschem / europäischem Recht
  5. 5. Agenda – Vorstellung und Agenda – Die Idee Continuous Delivery und Continuous Deployment – Werkzeuge für Continuous Delivery und Continuous Deployment – Die Werkzeuge im Beispielprojekt – Diskussion
  6. 6. 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
  7. 7. Herausforderungen Development Operations kontinuierliche Änderung Stabilität Iterationen (2 pro Monat) Releases (2 pro Jahr) Infrastrukturtests Funktionalitätstests ! Continuous Everything
  8. 8. DevOps: Continuous Everything Continuous Everything
  9. 9. DevOps: Continuous Everything Continuous Everything
  10. 10. DevOps: Continuous Everything Continuous Everything
  11. 11. DevOps: Continuous Everything Continuous Everything
  12. 12. DevOps: Continuous Everything Continuous Everything
  13. 13. 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 alle Änderungen valide und releasefähig sind. Continuous Everything
  14. 14. Continuous Integration Regeln – jeder Entwickler integriert seine Änderungen mindestens täglich Continuous Everything
  15. 15. Continuous Integration Regeln – jeder Entwickler integriert seine Änderungen mindestens täglich – jeder Push wird durch Build und Tests verifiziert Continuous Everything
  16. 16. 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) Continuous Everything
  17. 17. 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
  18. 18. plan code build test release deploy operate DevOps Toolchain Continuous Everything Toolchain – Projektmanagement, Backlog – Dokumentation, Wiki
  19. 19. plan code build test release deploy operate DevOps Toolchain – Entwicklung und Code-Review – Versionskontrolle Continuous Everything Toolchain
  20. 20. plan code build test release deploy operate DevOps Toolchain – Continuous Integration, Build-Werkzeuge – Developer-Test-Automatisierung Continuous Everything Toolchain
  21. 21. plan code build test release deploy operate DevOps Toolchain – Continuous-Integration, Testautomatisierung – Integrationstests – Akzeptanztests Continuous Everything Toolchain
  22. 22. plan code build test release deploy operate DevOps Toolchain – Paketierung – Pre-Deployment-Staging – Release-Automatisierung Continuous Everything Toolchain
  23. 23. plan code build test release deploy operate DevOps Toolchain – Konfiguration – Production-Staging – Infrastruktur als Code Continuous Everything Toolchain
  24. 24. plan code build test release deploy operate DevOps Toolchain – Logging – Exception-Handling – Performance-Monitoring – Service-Desk Continuous Everything Toolchain
  25. 25. plan code build test release deploy operate Dokumenten- management Projekt- management Code Review Versions- verwaltung Gitblit Build Continuous Integration Release HelpdeskDeploy Webanalyse Log-Management & Analyse cusy Lifecycle Werkzeuge Continuous Everything Toolchain
  26. 26. 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
  27. 27. Anforderungen an 
 Continuous Integration ! ! – Alle Änderungen nachvollziehbar – Einfacher Git-Workflow – Automatische Tests – Entwickler- (=Unit-)Tests – Integrations-/Akzeptanztest ! Continuous Everything Toolchain
  28. 28. Anforderungen an 
 Continuous Delivery ! ! – Release-Tagging im Git – automatisiertes Packaging – automatisierte Konfiguration – automatisiertes Deployment Continuous Everything Toolchain
  29. 29. 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
  30. 30. Lösungen – 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
  31. 31. Lösungen – 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
  32. 32. Lösungen – 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
  33. 33. Lösungen – Ansible Configurationmanagement, Infrastructure as Code – 1993 CFEngine – 2005 Puppet – 2012 Ansible: „DevOps“ ohne root-Rechte ! Continuous Configuration Automation Continuous Everything Toolchain
  34. 34. Continuous Configuration Automation ! ! Die Werkzeuge in der Praxis (Beispielprojekt) Continuous Everything Tools Demo
  35. 35. Development/ Testing Production Development/Testing Production Infrastructure Applications Infrastructure Applications Developers Operators Infrastructure ApplicationsDevelopers Operators DevOps-Schnittstelle DevOps-Schnittstelle
  36. 36. Development/ Testing Production Development/Testing Production Infrastructure Applications Infrastructure Applications Developers Operators Infrastructure ApplicationsDevelopers Operators DevOps-Schnittstelle DevOps-Schnittstelle
  37. 37. Development/ Testing Production Development/Testing Production Infrastructure Applications Infrastructure Applications Developers Operators Infrastructure ApplicationsDevelopers Operators DevOps-Schnittstelle DevOps-Schnittstelle
  38. 38. Fragen und Diskussion Ich freue mich auf Eure Fragen, Ideen und Diskussionsbeiträge.
  39. 39. Kontakt www.cusy.io/peter info@cusy.io @cusyio +CusyIo
  40. 40. 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

×