Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Entwicklung verteilter Systeme (The Architecture Gathering 2015)

Entwicklung verteilter Systeme (The Architecture Gathering 2015)

Jedes Platform wächst mit der Zeit. Mehr Entwickler mit noch mehr Ideen und Vorstellungen arbeiten alle gemeinsam an der Weiterentwicklung. Das System wird grösser und wird auf viele Systeme verteilt. Häufig wird ein Technologie Stack vorgegeben um es vermeintlich wartbarer und stabiler zu machen. Zusätzlich wird die Software oft dabei von Entwicklung zu QA weitergereicht und am Schluss von Operations deployed und betrieben. Das Ergebnis davon sind lange Releasezyklen und das verschenkte Potenzial weil nicht die richtigen Tools genutzt werden konnten.

Dieser Vortrag erläutert unsere Leitplanken zur Entwicklung verteilter Systeme bei der E-POST. Wie erlauben wir es den 15 Teams mit 100 Personen 'The right tool for the right job' einzusetzen statt ein starres Korsett an Technologien vorzugeben? Welche Rahmenbedingungen müssen beachtet werden und wo kann ein Team autonom entscheiden wie eine Software zu entwickeln ist? Trotz wachsender Anzahl verteilter Systemen und steigender Komplexität wollen wir weiterhin eine stabile Platform zur Verfügung stellen. Es wird erklärt welche Anforderungen wir dabei in den Bereichen Architektur, Entwicklung, Testen, Deployment, Betrieb und Security vorgeben und was die Teams dabei beachten müssen.

Oliver Wehrens

October 22, 2015
Tweet

More Decks by Oliver Wehrens

Other Decks in Technology

Transcript

  1. Historie 2008: Start Entwicklung Prototyp mit agilem Vorgehen 2009/2010: Aufbau

    E-POST Platform mit linearem Vorgehensmodell 2011: Weiter- entwicklung mit agilem Vorgehensmodell 2012: Aufbau EPD in Berlin 2013: Transition neues Architekturkonzept 2014: Produktionszugriff der Teams 2015: Anpassung Organisations- struktur
  2. Herausforderungen Schnelles Rollout von neuen Features Schnelles Testen von Funktionalität

    am Markt Es muss einfach sein Fehler zu beheben Flexibilisierung des Technologie-Stacks bei gleichzeitiger Kontrolle
  3. –Arc Team @ EPD “Wir wollen eine Architektur in der

    wir Software jederzeit einfach an neue Bedürfnisse anpassen können.”
  4. Was kostet Zeit? Kommunikation mit anderen Teams Einarbeitung/Abstimmung im Quellcode

    Warten auf Zuarbeiten von anderen Teams Warten auf Deployment von anderen Teams Warten auf gemeinsames Deployment Fester Technologiestack
  5. System Migration Abrechnung Kunde Alt Neu ~ 15 Komponenten ~

    55 Komponenten Deployment Architektur
  6. Organisatorisch ändern Development Unit 1 Development Unit 2 Development Unit

    3 Team Team Team Team Team Team Team Team Team Team Team Team Lesen / Schreiben Cloud / Einlieferung Ident / User
  7. Organisatorisch ändern Development Unit 1 Development Unit 2 Development Unit

    3 Team Team Team Team Team Team Team Team Team Team Team Team Development Unit 4 Team Team Team Team Lesen / Schreiben Cloud / Einlieferung Ident / User …
  8. Anpassung Dev & Prod Eigne Virtualisierung CentOS und Debian Entwicklungs

    Puppet Eigenes Deployment Keine Virtualisierung Eigenes Puppet Betriebs Deployment RHEL Viele Fehlerquellen
  9. Anpassung Dev & Prod Open Nebula Ein Puppet Hiera Gleichen

    Deploymenttools CentOS RHEL & CentOS
  10. 2013 vs. 2015 Deployments +567 % Stabilität +0.2 % Rufbereitschaft

    -40% Kritische Fehler Behebungsdauer -90% Allgemeine Fehler Behebungsdauer -55%
  11. Zusammenfassung Architektur muss verteilte Systeme erlauben Entwicklung muss vollautomatisiert sein

    Einheitliche Tools Entwicklung/Betrieb Organisation muss DevOps erlauben Möglichst unabhängige Teams (Tech/Orga)
  12. Was hätte besser sein können ? Schnelles Rollout besser planen

    3 mal Orga Strukturen neu Früher Dev Produktionszugriff Leitplanken früher kommunizieren Mehr (Über)Kommunikation Mehr Austausch zwischen den Teams
  13. Zukunft Alte Komponenten entfernen Mehr Dashboards PaaS ? Mehr Automatisierung

    VMs? Container? Ungleichheiten Dev/Prod beseitigen