Kolumne: Stropek as a Service

Kultur der Automatisierung hilft beim Erfolg mit SaaS und Cloud
Keine Kommentare

Wenn es um den immer weiter steigenden Automatisierungsgrad in der Wirtschaft geht, denken die meisten an Autofabriken, in denen kaum Menschen, aber viele Maschinen arbeiten. Oder an den Haushaltsroboter, der die weniger angenehmen Arbeiten in den eigenen vier Wänden übernimmt. In der Softwareindustrie allerdings sind es die Softwareroboter in der Cloud, die längst begonnen haben, unsere Arbeit zu revolutionieren.

Die großen Cloud-Rechenzentren sind in einem viel höheren Maß softwaregesteuert als die üblichen Rechnerräume, die man in den meisten Unternehmen findet. Virtualisierte Server sind da und dort zu finden. Wenn es aber um Netzwerkkomponenten, Systeminstallation, Updates etc. geht, könnte der Unterschied zwischen Cloud und On-Premises nicht größer sein. Den großen Cloud-Anbietern kommen Skaleneffekte zugute. Sie haben so viele Kunden, dass es sich auszahlt, viel Geld in Automatisierung zu stecken. Eigentlich haben sie auch keine Wahl.

Softwaregetriebene Rechenzentren

Sie wollen nicht nur die großen Kunden erreichen, sondern insgesamt möglichst viele davon überzeugen, die IT in die Cloud zu übersiedeln. Dafür muss das Preis-Leistungs-Verhältnis stimmen. Menschliche Arbeitskraft ist erstens teuer und zweitens skaliert sie nicht. Einen hervorragenden Administrator auszubilden, dauert lang, ist teuer und am Ende hat man genau einen. Einen Softwareagenten zu programmieren, der sich um eine Administrationsaufgabe kümmert, ist vielleicht sogar noch teurer. Der Agent ist aber praktisch kostenlos replizierbar. Hat man also das notwendige Kleingeld für die initiale Investition und ein Geschäftsmodell, das potent genug ist, machen hochgradig automatisierte Cloud-Rechenzentren, die softwaregetrieben sind, Sinn.

Selbstbedienung

Cloud-Anbieter wie Microsoft, Amazon und Google gehen aber noch weiter: Sie geben Kunden Zugang zu den hilfreichen Softwarerobotern in Form von APIs. Mit RESTful Web-APIs, PowerShell, Bash, domänenspezifischen Sprachen (z. B. Azure Resource Manager (ARM) Templates) und vielem mehr können wir die Abläufe, die wir für das Entwickeln, das Testen und den Betrieb unserer SaaS-Lösungen brauchen, automatisieren. Hier ein Beispielszenario, das bei SaaS-Anbietern heute schon häufig gelebt wird:

  • Bei jedem Check-in wird ein automatisierter Build-Prozess angestoßen (Continuous Integration). Dass die Build-Server nicht manuell gewartet werden, sondern sie der Cloud-Provider vollautomatisch zur Verfügung stellt und wartet, versteht sich von selbst.
  • Beim Build laufen natürlich automatisierte Unit-Tests. Wir haben sie entwickelt, um häufig und schnell die Korrektheit der Logik in unserer Software zu prüfen.
  • Wenn die Tests passen, kümmert sich ein Releaseprozess darum, die erstellte Softwareversion in einer Testumgebung auszurollen (Continuous Delivery). Im Vergleich zum On-Premises-Rechenzentrum geht man in der Cloud aber weiter: Selbst komplexe Umgebungen mit verschiedenen Datenbanken, Webfarmen, Bussystemen, Storage-Clustern etc. werden automatisch hochgefahren. Warum auch nicht? Alle Cloud-Dienste werden nach Nutzung oder Zeit bezahlt. Da kann man es sich leicht leisten, für kurze Zeit auch große Systeme für Tests hochzufahren und nach den Tests automatisch wieder zu löschen. Das kostet in der Summe nur ein paar Euro.
  • Sobald die Testumgebung steht, laufen Integrations-, End-to-End- und Performancetests. Sie prüfen, ob das Zusammenspiel der Komponenten reibungslos funktioniert. Wenn Menschen eingebunden werden, dann erfolgt auch das automatisch. Sie werden z. B. per E-Mail benachrichtigt und um Feedback gebeten. Das Feedback stößt die nächsten Schritte im Workflow an.
  • Sind die Tests in Ordnung, erfolgt die Produktivsetzung – automatisch versteht sich. Sie erfolgt aber nicht sofort als Ganzes. Man lässt als Erstes ein paar Prozent der Benutzer-Sessions auf die neue Version los. Die dafür notwendigen Netzwerkbasisdienste stellt der Cloud-Anbieter bereit. Funktionalität und Performance werden durch tief gehendes Monitoring (z. B. Azure Application Insights) überwacht. Wenn die Performancekennzahlen und die Fehlerraten passen, verlagert man Schritt für Schritt die Last auf die neue Version. Dass sich dieser Prozess durch Skripte relativ einfach automatisieren lässt, versteht sich von selbst. Nur wenn in seltenen Fällen ein Fehler erkannt wird, wird zurückgerollt und Menschen werden informiert.

Als ich kürzlich in einem halbtägigen Workshop zu Demonstrationszwecken ein System wie oben beschrieben in Azure aufsetzte, waren mehrere Personen im Publikum regelrecht schockiert. Einer berichtete davon, dass bei ihnen (sehr großes internationales Unternehmen) zwölf Wochen vor Inbetriebnahme einer neuen Software alle nervös werden, wenn bis dahin die Server und virtuellen Maschinen noch nicht bestellt sind. Unter zwölf Wochen sei da nämlich in der Regel kaum etwas zu machen. Die Inbetriebnahme der neuen Server erfolge manuell und Softwareversionen würden von Hand während längerer Wartungsfenster eingespielt.

Auch die Cloud ist kein Ponyhof

Verstehen Sie mich nicht falsch. Automatisierung von Prozessen in Systemen mit vielen Komponenten ist auch in der Cloud kein Kinderspiel. Deployments gehen manchmal schief, dauern unerwartet lange, es mangelt an Berechtigungen, Prozesse und Regeln sind nicht klar definiert, Testfälle fehlen etc. Teams brauchen echte DevOps-Profis, die die Funktionen und Macken ihrer Cloud-Umgebung wie ihre Westentasche kennen.

 

API Conference 2018

API Management – was braucht man um erfolgreich zu sein?

mit Andre Karalus und Carsten Sensler (ArtOfArc)

Web APIs mit Node.js entwickeln

mit Sebastian Springer (MaibornWolff GmbH)

Sie brauchen außerdem Geduld und gute Nerven, weil Fehler in Prozessen oft erst gegen Ende auftreten und jeder Testlauf daher viel Zeit in Anspruch nimmt. Administratoren, die angesichts der Standardfunktionen, die in der Cloud fix und fertig angeboten werden, um ihren Job fürchten, können sich auf solche Automatisierungsjobs spezialisieren. Expertinnen und Experten werden in diesem Bereich der Softwareentwicklung händeringend gesucht.

Zahlt es sich aus?

Wenn es trotz der mächtigen APIs der Cloud schwierig ist, Abläufe mehr und mehr zu automatisieren, zahlt es sich dann überhaupt aus? Ich bin davon überzeugt, dass es das grundsätzlich fast immer tut. Die Frage, die man sich stellen muss, ist die nach dem notwendigen Grad an Automatisierung. Ein komplexes System mit dutzenden Komponenten und tausenden Kunden braucht etwas anderes als eine einfache Individuallösung mit wenigen hundert Anwendern. Eine generelle Kultur der Automatisierung ist aber in jedem SaaS-Projekt sinnvoll. Hier einige Beispiele für Vorteile:

  • Wiederholbarkeit: Automatisierte Abläufe kann man ohne hohe Zusatzkosten häufig durchführen. Kurze Releasezyklen werden möglich und Innovationen kommen schneller beim Endkunden an.
  • Personenunabhängigkeit: Krankheit von Personen oder Personalwechsel können leichter verkraftet werden. Das steigert auch die langfristige Investitionssicherheit. Nicht selten habe ich Softwareprojekte erlebt, bei denen etwas neu entwickelt wurde, nur weil die alte Lösung ohne das ursprüngliche Entwicklungsteam nicht mehr sinnvoll zu betreiben war.
  • Kostenreduktion: Softwareagenten sind in der Regel kostengünstiger. Deckungsbeiträge steigen, Preise können reduziert werden. Dadurch kann weiter automatisiert werden und/oder es werden neue, preissensitivere Kundenschichten erreicht.
  • Qualitätssteigerung: Menschen machen speziell bei immer wiederkehrenden Aufgaben Flüchtigkeitsfehler. Die Fehlerhäufigkeit ist bei gut automatisierten Prozessen geringer.
  • Effizienzsteigerung: Eine automatisierte Skalierung führt zu besserer Auslastung und trägt dadurch ebenfalls zur Kostenreduktion bei.
  • Erhöhung der Systemsicherheit: Je höher der Automatisierungsgrad, desto weniger Personen brauchen administrative Rechte. Das verbessert Datenschutz und Datensicherheit.

Wo die Reise hingeht

Die Vorteile der Cloud schöpft man voll aus, wenn man auf Platform as a Service (PaaS) und Serverless Computing setzt. Natürlich gibt es auch dort Server und Basisdienste. Sie sind aber aus Sicht von uns SaaS-Anbietern nicht mehr relevant. Der Cloud-Provider kümmert sich um Installation, Sicherung, Wartung etc. Die eigene Automatisierung geschieht auf einem höheren Abstraktionsniveau. Details spielen keine Rolle mehr, Entwicklungsteams können sich stärker auf ihre Kernaufgaben konzentrieren.

Auch Machine Learning und künstliche Intelligenz dringen in unsere Domäne vor. Ich schätze es, wenn mir Application Insights ungefragt per E-Mail Verbesserungsvorschläge schickt oder mich auf ungewöhnliche Vorkommnisse hinweist. Ich bin froh, zu wissen, dass KI-Systeme bei Microsoft aus einer riesigen Datensammlung lernen, was normale Muster bei der Benutzeranmeldung in Azure Active Directory (AAD) sind und was ein möglicher Angriff sein könnte.

Werden wir in der Technik alle arbeitslos? Meiner Ansicht nach wird das nicht so schnell passieren. Sich wiederholende Routinetätigkeiten fallen aber mehr und mehr weg. Es wird spannend, zu sehen, wie schnell sich die Grenze dessen, was eine „Routinetätigkeit“ ist, im Lauf der Zeit angesichts von Serverless, KI und Co. noch verschieben werden.

Lesen Sie alle Ausgaben der Kolumne „Stropek as a Service„!
In der Kolumne greift Rainer Stropek spannende Aspekte wie die Finanzierung, den Customer Lifetime Value, aber auch wichtige Themen wie Billing, Kundenbindung durch Qualität oder APIs auf – alles aus der Sicht eines Unternehmers, der seit 20 Jahren in der IT-Branche tätig ist und seit fünf Jahren intensive Erfahrungen mit SaaS gesammelt hat.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -