Schnellere und agilere Entwicklung und Betrieb Ihrer Softwarelösungen
20. Dezember 2017
Schnellere und agilere Entwicklung und Betrieb Ihrer Softwarelösungen
Haben Ihre Kunden auch immer mehr das Bedürfnis, Ihre Software schneller und flexibler zu verändern oder zu erweitern?
Womöglich sind Sie als CDO, CIO, CTO oder gar CEO verantwortlich für einen möglichst flexiblen Einsatz von Business Applikationen mit raschmöglichen Änderungen und jederzeit möglichen Skalierung?
Bugs sollen schneller behoben werden, Features «time to market» noch am selben Tag eingebaut oder die Kapazität innert Minuten oder dynamisch angepasst werden. Schliesslich soll am Black Friday der gesammte Jahresumsatz des Onlineshops erziehlt werden. All dies sind reale Anforderungen, denen wir in der heutigen «digitalisierten Welt» gerecht werden sollen oder müssen.
Seit mehr als 20 Jahren sprechen wir von einer Modularisierung der Software zur Reduktion der Komplexität, zur einfachen Weiterentwicklung, besserer Skalierung und sicherem Betrieb. Dies ist in der jüngeren Vergangenheit auch mehr oder weniger gelungen. Doch die Entwicklung geht weiter…
Vor rund 1½ Jahren haben wir uns für ein flexibles Architekturmodell entschieden, um solch kurze Releasezyklen mit möglichst geringer Fehleranfälligkeit zu ermöglichen. Mit dem Einsatz von Microservices und Containern Technologie (Docker) gehen wir noch einen Schritt weiter und sprechen anstelle von Modularisierung von verteilten Services. Das heisst, wir schneiden Systeme horizontal und vertikal in eingenständige Services; so agieren wir flexibler und skalieren besser. Dabei sprechen wir von Microservices. Wir achten strikt darauf, dass die Microservices sich auf die jeweilige Aufgabe fokussiert, autonom und in sich geschlossen abläuft. Der Service ist schlank und verfolgt eine dedizierte Aufgabe. Er ist isoliert von anderen Services um Abhängigkeiten zu reduzieren. Dies entspricht der aus dem Unix-Umfeld bekannten Philosophie «do one thing, and do it well», übersetzt: «Erfülle nur eine Funktion, diese aber gut». Die Services kommunizieren untereinander über definierte Schnittstellen, wie beispielsweise REST-API. Die Grundeigenschaften einer microservice-basierten Architektur sind:
- Autonom: Microservices funktionieren für sich unabhängig
- Entkoppelt: Microservices sind untereinander stark entkoppelt
- Skalierbar: Microservices können unabhängig und nach Bedarf skaliert werden
- Resilient: Microservices sind ausfallsicher und fehlertolerant
Mit dem Einsatz von Microservices ist leider nicht alles getan. Um der von uns eingesetzten agilen Projekt-Management-Methoden zur Entwicklung und der Erweiterung von Web-Applikationen entgegen zu kommen und unsere Deploymentprozesse zu unterstützen, verpacken wir die Services in in sich funktionale Images, welche als Service-Container figurieren (Docker). Wir sind damit im Rollout und Betrieb flexibel, stabil und gleichzeitig erhöhen wir den automatisierungsgrad unserer Deploymentprozesse auf ein Maximum. Um den erhöhten Anforderungen unserer Kunden gerecht zu werden, sind wir mit dieser Architekturumsetzung jederzeit fähig, einen funktionierenden, automatisch gebaut und getesteten Release auf Knopfdruck auszuliefern oder hoch zu skalieren. Mit der Verwendung von Docker und einem Investment im Engineering unserer Plattform ist uns beides gelungen. Docker ist das ideale Fundament für unsere Microservice-Architektur. Docker respektive die Containertechnologie packt den Microservice und die nötigen Abhängkeiten (Laufzeitumgebung, Biliotheken etc.) in ein «Image». Zudem werden weitere Dienste wie Web-Server, Datenbank, Caching-Komponenten etc. in homogenen Containern betrieben. Docker Container benötigen lediglich eine Laufzeitumgebung (Engine) und können so auf beiliebigen Hosts betrieben werden. Durch die Kombination von Microservices und Containern können unsere agilen Teams eigenständiger arbeiten ohne sich gegenseitig zu behindern und letztendlich Software schneller ausliefern.
Microservices und die strikte Entkoppung werden die Digitalisierung weiter vorantreiben und die dadurch gegebenen Vorteile in der Flexibilität und Verfügbarkeit weiter erhöhen. Es ist kein Zufall, dass die grossen Internetkonzerne und Platformen wie Amazon, Google, Microsoft, Netflix oder Zalando schon seit längerem auf Microservices und Containertechnologie setzen.
Gerne unterstützen wir auch Sie von der Lösungsskizze, Design, Implementierung bis hin zum Betrieb solcher Lösungen. Zögern Sie nicht, rufen Sie uns an.