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

Application Server, Docker, Kubernetes, Serverless Functions eine Evolution!?

thopaw
October 10, 2018

Application Server, Docker, Kubernetes, Serverless Functions eine Evolution!?

Rückblickend auf die Projekte der letzten Jahre ist ein klarer Trend erkennbar. Die Snowflake-Server haben in modernen Architekturen ausgedient. Automatisierung mit Ansible, Chef und Co., Container ala Docker, Cluster-Lösungen wie Kubernetes oder komplett ohne Server als Serverless Functions? Was ist die nächste Stufe der Evolution?

Diese verschiedenen Ansätze haben alle ihre Vor- und Nachteile und sollten je nach Zweck richtig eingesetzt werden. Wie jede Architektur Entscheidung ist auch die Laufzeitumgebung (und der Technologie-Stack darunter bis zur Hardware) eine Trade-Off Entscheidung zwischen verschiedenen Qualitätszielen und sollte bewusst getroffen werden.

Dazu würde ich gerne meine Erfahrungen berichten, die ich in den letzten Jahren mit verschiedenen Technologien gemacht habe.

thopaw

October 10, 2018
Tweet

More Decks by thopaw

Other Decks in Technology

Transcript

  1. About Me Thomas Pawlitzki Wirtschaftsinf ormatiker(FH) Master of Computer Science

    Mehrere Pro jekte in einem Versicherungs- konzern als Entwickler & SW-Architekt Aktuell: „IT-Abteilung“ bei (digitaler Spin Off) Hobbies: Basketball, Fahrrad, Joggen, Kiten, Outdoor Twitter: @thopaw [email protected]
  2. Snowflake Server Die Admins dieser Galaxy versuchen der ständig wachsenden

    Horde an Servern Heer zu werden. Die Server werden aber immer mehr und benötigen immer mehr Pflege. Gleichzeitig werden die Development Teams immer größer und die Geschwindigkeit bei Änderungen an Software oder Konfigurationen wird immer größer. In den letzten Jahren haben sich aber einige Trends heraus kristalisiert, die man nutzen kann, um dieses Spannungsfeld etwas besser in den Griff zu bekommen. Allerdings gibt es auch hier die dunklen und die hellen Seiten, die man bei jeder Entscheidung beachten sollte.
  3. Operations Development Team 1 Development Team 2 Installiert bitte App

    A in Version 1 Bitte Konfiguration für App B anpassen Konfiguration von App C anpassen Manager Neue Version von App B installieren Wir müssen Update X einspielen Wir müssen einen neuen Server kaufen Wie hoch sind die Kosten für App D
  4. Ansible Ermöglicht Automatisierung von Konfigurations und Administrations-Aufgaben Erweiterung der Funktionalität

    über Module möglich Commands können betriebssystem-abhängig sein Rollen können wiederverwendet werden Manche Commands fühlen sich „Low Level“ an Ansible Ermöglicht Automatisierung von Konfigurations und Administrations-Aufgaben Erweiterung der Funktionalität über Module möglich Commands können betriebssystem-abhängig sein Rollen können wiederverwendet werden Manche Commands fühlen sich „Low Level“ an
  5. Container am Beispiel Docker • Container enthalten Anwendung und komplette

    Laufzeitumgebung • Images können als Basis oder als komplette Bausteine verwendet werden • Für Verwendete Images müssen Compliance und Security geprüft werden • Horizontale Skalierung wird sehr einfach • Dynamische Anzahl der Container müssen verwaltet und überwacht werden
  6. Kubernetes • Container Management- und Orchestrierungs-Plattform • Verwaltet Ressourcen auf

    dem Cluster: Namespace, Deployment, Services, ConfigMap, Secret, StorageClaim • API und Tools (wie kubectl) ermöglichen Automatisierung • Betrieb eines Clusters erfordert spezielle Skills und Aufwand • Aktuell hohe Geschwindigkeit bei der Entwicklung → häufige Releases • Anbieter von Managed Kubernetes nimmt zu
  7. API Kubernetes App A App A App B kubectl Kubernetes

    Objekte Master Worker Docker Registry DNS Andere Tools Verschie- dene Ressourcen laufen auf den Worker Nodes Das Cluster nutzt verschie- dene externe Dienste
  8. Serverless Functions • Befreien von Betriebsthemen • Laufzeitumgebung beschränkt und

    von Anbieter vorgegeben • „Glue Code“ wird schnell Anbieter spezifisch • Alle Features außerhalb der Laufzeitumgebung müssen als SaaS integriert werden • Deployment und Tools wird durch Tools wie Serverless vereinfacht
  9. Ansible eignet sich für die Automatisierung ist aber manchmal „low

    Level“. Es kommen neue Module hinzu Ansible eignet sich für die Automatisierung ist aber manchmal „low Level“. Es kommen neue Module hinzu Container ermöglichen Anwendungen mit ihren Abhängigkeiten zusammen zu packen und zu betreiben Container ermöglichen Anwendungen mit ihren Abhängigkeiten zusammen zu packen und zu betreiben Images der Container müssen regelmäßig bzgl. Compliance und Security überprüft werden Images der Container müssen regelmäßig bzgl. Compliance und Security überprüft werden Mit Kubernetes kann eine flexible und automatisierbare Plattform zum Orchestrieren und Managen von Containern bereitgestellt werden Mit Kubernetes kann eine flexible und automatisierbare Plattform zum Orchestrieren und Managen von Containern bereitgestellt werden Der Betrieb eines Kubernetes Clusters erfordert Skills und Aufwand Der Betrieb eines Kubernetes Clusters erfordert Skills und Aufwand Serverless Functions erlauben die Fokusierung auf die Anwendugn, wenn angebotene Laufzeiten ausreichen Serverless Functions erlauben die Fokusierung auf die Anwendugn, wenn angebotene Laufzeiten ausreichen Jede Architektur- Entscheidung ist ein Kompromiss Jede Architektur- Entscheidung ist ein Kompromiss Zusätzliche (SaaS) Services in einer Serverless Welt müssen dazu gemietet und integriert werden Zusätzliche (SaaS) Services in einer Serverless Welt müssen dazu gemietet und integriert werden Summary