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

We are going to need more - not bigger Boats

We are going to need more - not bigger Boats

Discussion on the impact of cloud technologies on Continuous Delivery

Stefan Siprell

November 25, 2015
Tweet

More Decks by Stefan Siprell

Other Decks in Programming

Transcript

  1. W E A R E G O I N G

    T O N E E D M O R E - N O T B I G G E R B O AT S D I E C O N T I N U O U S D E L I V E RY C L O U D
  2. S T E FA N S I P R E

    L L • Agile Homie • Integration Architekt • IT Berater • [email protected] • blog.codecentric.de • @StefanSiprell
  3. S TAT U S V I R T U A

    L I S I E R U N G & C O N TA I N E R • Virtualisierung kommt nicht, sie ist da. • Mal keine Zahlen von Amazon sondern von Azure: • 300’000 aktive Webseiten • 30’000’000’000’000 (Billionen) gespeicherte Objekte • 3’000’000 Anfragen pro Sekunde • 1’000’000 SQL Datenbanken • 300’000’000 Active Directory User • 15’000’000’000 $ Investion in Rechenzentren
  4. S TAT U S V I R T U A

    L I S I E R U N G & C O N TA I N E R • Folgen wir dem Geld noch weiter: • Mesosphere - RZ Virtualisierung: 10,5 Mio $ • Docker - Container: 40 Mio $ • Stratoscale - Automatisierung u.a. Docker: 32 Mio $ • Mirantis - OpenStack Distro: 100 Mio $ • Metacloud - private Clouds: 15 Mio $ • Puppet Labs - DevOps: 40 Mio $ • Moogsoft - Cloud Monitoring: 11 Mio $
  5. C L O U D V E R S P

    R E C H E N • Rechner sind „zu groß“: • 2001: Websphere Portal Server auf dem Pentium 60% CPU in Idle • 2015: Wildfly auf iCore7 2% CPU in Idle • Sub-Organisation des Blechs in virtuellen Maschinen • Lieferung von Computing Einheiten in Sekunden
  6. Wow. Ich kann von 10 Kunden am Tag zu 100’000’000

    Kunden am Tag in Minuten skalieren!
  7. D TA P D E V E L O P

    T E S T A C C E P TA N C E P R O D U C T I O N Anwendungen laufen von oben nach unten durch. Ein Release blockiert die Kette, bis sie in Produktion landet.
  8. WA S I S T FA L S C H

    A N D TA P ? • meist sind die Umgebungen verschieden - insbesondere in Ihrer Qualität • Testdaten? • Cluster Topologien? • Hardware Größen? • Lizenzen? • Hardware Architekturen? • Konfigurationen • In Produktion treten Fehler zum ersten Mal auf, da der Auslöser in den vorherigen Umgebungen nicht existieren! • Verteilte Entwicklung passt schwer in das 1-D Layout • Roll-Backs inklusive Daten sind nicht getestet
  9. N U T Z T S TA N D A

    R D V M S I Z E S . S K A L I E R T H O R I Z O N TA L . Die Produktionsumgebung besteht aus mehr Knoten, nicht aus größeren. Dann ist DTA mehr wie Produktion. WA S I S T M I T M I R ?
  10. P R O D U K T I O N

    S - S C H A M A N I S M U S • Produktion wird immer als heilig gesehen. Sie ist immer anders und wird nur per Hand angefasst • Es entsteht eine Environment Drift • Daher treten Fehler häufiger in Produktion auf • Die Fehler sind natürlich ungeplant und deren Behebung auch • Aus Zeitmangel wird nur die Produktion repariert, die anderen Umgebungen bleiben außen vor • Der Drift vergrößert sich • Warum ist die Produktion wohl anders?
  11. D E V O P S L I E B

    T D E I N E P R O D U K T I O N Je ähnlicher die Konfigurationen sind, desto weniger Überraschungen in den Umgebungen. WA S I S T M I T M I R ?
  12. F R Ü H E R … • 2001 konnte

    alles gelöst werden mit: • BEA Weblogic • Oracle 8i • JDK 1.3 • Drei Tools lassen sich sehr einfach provisionieren.
  13. H E U T E … • … gibt es

    einen NoSQL Zoo • … gibt es Go, Erlang, Ruby, Server Side JS, Java • … gibt es vert.x, Tomcat, Jetty, Netty, JBoss, Grails, Hadoop • in einem Unternehmen, einem Bereich, einem Projekt
  14. M O R G E N … • …werden Anforderungen

    immer komplexer • Die ehemalige Standard Infrastruktur wird immer spezifischer und ausgeklügelter • Die Komplexität der Infrastruktur wird ähnlich groß wie in der Anwendung • OPS wird mehr zu DEV THERE ARE TOO FEW DAMN TOOLS FOR TODAY’S PROBLEMS
  15. N U T Z T C I / C D

    A U C H F Ü R I N F R A S T R U K T U R Infrastruktur wird immer komplexer. Deren Komplexität und Wandel müssen durch Automatisierung beherrscht werden. WA S I S T M I T M I R ?
  16. M I X & M AT C H • Betrieb

    baut immer bessere Infrastruktur • Entwicklung baut immer bessere Software • Beides muss regelmäßig integriert werden. • Das geht auch vollautomatisch auf einer DTAP Strecke…
  17. D TA P, A N W E N D U

    N G E N U N D I N F R A S T R U K T U R • Die Zusammenführung einer Infrastruktur- und Anwendungsrevision ist eine neue Release • Diese wird durch die DTAP geschoben • Solange die Release noch nicht in Produktion ist, ist die DTAP Strecke gesperrt • Es kann keine neue Revision für entweder Anwendung- oder Infrastrukturreleases geprüft werden
  18. D TA P, D E V O P S U

    N D C O N T I N U O U S D E L I V E RY F Ü H R E N Z U U N G E T E S T E T E N U P - & D O W N G R A D E S D T A P 1 . 0 1 . 0 1 . 0 1 . 0 1 . 1 1 . 1 1 . 1 1 . 1 1 . 2 1 . 2 1 . 2 1 . 1 1 . 3 1 . 3 1 . 3 1 . 3 B U G ! U P G R A D E ! U N T E S T E D 
 U P G R A D E !
  19. P H O E N I X S E R

    V E R V E R E I N FA C H E N S O L U T I O N L I F E C Y C L E M A N A G E M E N T Speziell mit Infrastruktur Automatisierung werden Migrationen während den Up- & Downgrades wichtig und müssen getestet werden. WA S I S T M I T M I R ?
  20. S U P E R H E R O M

    O D E • Continuous Delivery ist der Hit • Alle Bereiche übernehmen das Vorgehen • Jetzt muss Bereichsübergreifend auf Services zugegriffen werden • Nicht nur auf Services im Allgemeinen, auch auf spezifische Revisionsgruppen! • Die DTAP Strecke kann nicht nur durch eine laufende Release sondern durch externe Bereiche blockiert werden.
  21. D TA P H Ä LT C O N T

    I N U O U S D E L I V E RY A U F • Laufende Releases sperren die DTAP Strecke, so dass Entwicklungen gequeued werden - Feature Branches sind somit auch tot • Externe Abhängigkeiten sperren einzelne DTAP Strecken - Dead Lock ist ohne weiteres möglich
  22. D TA P - WA R U M N O

    C H M A L ? • Schrittweise Näherung an Produktionsbedingungen • Standard VM Size • DevOps • Schutz der Endanwender: • Interaktion mit der Lösung • Daten in der Lösung
  23. D TA P WA R P D R I V

    E • Jedes Deployment von Anwendung und Infrastruktur ist eine eigenständige Release • Anstatt die Release durch die Umgebungen zu ziehen - ziehen die Releases an der Anwendung vorbei • Reconfiguration on the fly • Nodes hoch und runterfahren • Traffic umleiten • Datenquellen umziehen THERE ARE TOO MANY DAMN CONFUSING IDEAS IN THIS TALK
  24. D I S C O V E RY & C

    O N F I G U R AT I O N • Jede PAAS Lösung kommt mit einer „eleganten“ Möglichkeit Konfigurationen zur Laufzeit zu verwalten • Auch mit etcd können sich Knoten anmelden und Folge Konfigurationen generiert werden (Loadbalancer Konfiguration und Tomcats) • Konfigurationsfiles sollen keine Umgebung beschreiben (d.h. vorgeben) sondern werden aus der Umgebung erstellt. • Damit können neue Systeme zu neuen Umgebungen integriert werden und bestehende Umgebungen vergrößert/ verkleinert werden.
  25. S E R V I C E D I S

    C O V E RY O V E R S E R V I C E D E F I N I T I O N Konfigurationen dürfen nicht Teil der Infrastruktur und Anwendungen sein. Konfigurationen leiten sich aus der jeweiligen Umgebung ab. WA S I S T M I T M I R ?
  26. D AT E N • Tests dürfen nicht auf echten

    Daten laufen • Daten sind zu groß um kopiert zu werden • Daher müssen die Datenservices neu verlinkt werden, wenn eine neue Release in Produktion geht. • Snapshots - verhindern das Allerschlimmste • Inkompatible Änderungen in den Schemas? Drop the Schema.
  27. D R O P T H E S C H

    E M A Datenschema Änderungen werden immer passieren. Baut es in die Software ein. WA S I S T M I T M I R ?
  28. T R A F F I C • Incoming Traffic

    umzuleiten ist einfach. • Virtuelle IPs, DNS, Loadbalancer und Co eigenen sich hierfür!
  29. WA S H A B E I C H G

    E W O N N E N ? • Durch das tägliche Bauen von Produktionsumgebungen, ist diese „glasklar“ • Specification Drift ist unmöglich • Jeder kann eigene Testumgebungen bauen und nutzen • Keine Wartezeiten oder Locks für Releases • BTW: Anwendungen skalieren! • Komplexität ist noch vorhanden - nur anders verteilt