Wie Sie Ihre App-Entwicklung in der Cloud optimieren
Früher ging Softwareentwicklung ungefähr so: Am Anfang stand ein sorgfältig geschriebenes Anforderungsdokument, oft gefolgt von einer funktionalen Spezifikation und anschließend noch einer technischen Spezifikation. Erst dann haben die Entwickler tatsächlich Codes geschrieben. Nachdem der Code als vollständig erachtet wurde, ging dieser dann an das QA-Team für Funktionstests und abschließend an die Benutzerakzeptanztests, die bestätigten, dass der Code wirklich das tat, was er tun sollte.mie stark verändert.
Parallel dazu wurde gemeinsam mit dem Einkauf die Beschaffung der benötigten Server, Speichermedien und Netzwerke in die Wege geleitet und mit den Betriebsteams dafür gesorgt, dass im Rechenzentrum genügend Platz und Strom zur Verfügung standen. Kein Wunder, dass die IT oft als teuer und langsam betrachtet wurde.
Die Entwicklung in den 1990er- und 2000er-Jahren wurde durch manuelle Prozesse und kaum strukturierte Abläufe verlangsamt. Doch im letzten Jahrzehnt hat eine Revolution in der Anwendungsentwicklung, die vor allem durch die Cloud angetrieben wurde, alles verändert.
INNOVATION BEGINNT MIT EXPERIMENTIEREN
Ein wesentlicher Fokus in der Softwareentwicklung ist Innovation. Sie sorgt für die Dynamisierung, Vereinfachung und Beschleunigung von Prozessen in Unternehmen. Cloudtechnologien ermöglichen es, schneller als je zuvor zu lernen, bieten Raum für Experimente und führen so schließlich zu einer besseren Innovationsfähigkeit Ihres Unternehmens. Ein Anwendungsfall: Sollte sich durch Anwendungsproben in der Cloud herausstellen, dass eine neue Art NoSQL-Datenbank neue Funktionalitäten für eine Anwendung zu geringen Kosten bereitstellen könnte, kann diese einfach ausprobiert werden, indem der Datenbankdienst für ein oder zwei Wochen gemietet wird. Die Anwendungsfälle können so in Ruhe getestet und bewertet werden.
Wenn es funktioniert: perfekt. Wenn nicht, dann hat Ihr damit beauftragtes Team nur eine Woche – und die Kosten für eine Woche – in die Nutzung der NoSQL-Datenbank investiert.
Aufgrund der Einfachheit, des geringen Risikos und der niedrigen Kosten von Cloudexperimenten haben viele Unternehmen innovative Ansätze zum Erlernen und zur Einführung neuer Technologien gewählt. Bei Hackathons beispielsweise kommen Teams – darunter auch Geschäftspartner – zusammen, um in einer kurzen, konzentrierten Phase der Zusammenarbeit ein neues Cloudprodukt oder einen neuen Clouddienst in einem Unternehmen anzuwenden und dessen Mehrwert zu ermitteln. Ein weiterer gängiger Ansatz besteht darin, erfahrene Partner in die Entwicklung einzubeziehen, die ihr Wissen und ihre Erfahrung an die IT-Teams weitergeben. Eine andere Strategie sieht vor, dass ein spezialisiertes Innovationsteam neue Cloudfunktionen für bestimmte Anwendungen mit geringem Risiko einsetzt und sie bei Erfolg für das gesamte Unternehmen ausrollt.
INNOVATION GEHT WEITER MIT AGILER SOFTWAREENTWICKLUNG
Die schnelle Reproduzierbarkeit von agilen Ansätzen hilft Entwicklern dabei, zielgenau an den Lösungen zu arbeiten, die Benutzer wollen und brauchen. Agile Konzepte setzen auf Partnerschaften zwischen Entwicklern und Endnutzern mit schnellen Umsetzungszeiten (Sprints), die sicherstellen, dass nur das codiert wird, was auch wirklich benötigt wird. Infolgedessen führt die agile Methode zu passgenaueren und entsprechend abgestimmten Produkten, die den Bedürfnissen der Nutzer entsprechen. Durch die Agilität ist zudem ein hoher Grad an Weiterentwicklung sichergestellt.
Agilität ist die Grundlage allen Handelns von Entwicklern, die einen Lean-Manufacturing-Ansatz verfolgen, um Software zu entwickeln. Dabei kommen automatisierte Pipelines zum Einsatz, um den Prozess zu beschleunigen. Dadurch wurde das Silo-Denken aufgelöst und zuvor getrennte Prozesse wie Entwicklung, Testung und Bereitstellung vereinheitlicht und zusammengeführt.
Das war die Geburtsstunde dessen, was wir heute DevOps nennen.
In DevOps beginnt der Prozess, sobald ein Entwickler Code in ein Quellverwaltungssystem eincheckt, zum Beispiel GitHub. Dieser Check-in löst eine Reihe automatisierter Tests für den neuen Code aus, der dann, wenn er erfolgreich ist, verpackt und für die Bereitstellung in der Cloudanwendung vorbereitet wird. Scheitert er, so wird der Code zur Überarbeitung an den Entwickler zurückgegeben. Mit dieser DevOps-Automatisierung (genannt Kontinuierliche Integration/Kontinuierliche Lieferung) kann die Zykluszeit vom Code bis zur praktikablen Anwendung erheblich beschleunigt werden: Ein neuer Code steht in Stunden, nicht in Wochen zur Verfügung.
Und mit GitHub Codespaces oder AWS Cloud9 können Entwickler Cloudanwendungen vollständig in der Cloud programmieren und testen, sodass die Entwickler Ihres Teams schnell und in einer einheitlichen Umgebung arbeiten.
INFRASTRUCTURE AS CODE (IAC)
Aber das ist noch nicht alles. Da Cloudanwendungen immer skalierbarer und vernetzter werden, nehmen auch die Servicekonfigurationen, wie zum Beispiel maschinelles Lernen oder Big Data, an Komplexität zu. Ein einziger Fehler in der Konfiguration kann das gesamte System zum Absturz bringen.
Mit Tools wie Terraform, Azure Resource Manager, AWS CloudFormation werden Konfigurationen mit deklarativen Spezifikationen automatisiert und können, wie jeder andere Code, in die Quellverwaltung eingecheckt werden. Dies bedeutet, dass eine Konfigurationsänderung, die zu einem Fehler führt, auf eine funktionierende Version zurückgesetzt werden kann.
DEVSECOPS
Heutzutage gibt es für IT-Verantwortliche nichts Wichtigeres als den Schutz ihrer Anwendungen und Daten. Zu diesem Zweck ist die Sicherheit zu einem integralen Bestandteil des Entwicklungsprozesses geworden, der von Anfang an integriert ist.
Daher sind automatisierte Tests und Bereitstellungen nicht die einzigen Dinge, die Teil einer DevOps-Pipeline sein können. Vor der Lieferung kann ein ausführbares Image auf Schwachstellen gescannt, ein Virenschutz installiert, verfügbare Sicherheitsupdates automatisiert und eine Reihe sicherheitsrelevanter Tests durchgeführt werden. Dadurch wird der Anwendungsbereich von DevOps zu DevSecOps erweitert. Dies macht die Anwendungslieferung nicht nur schneller, sondern auch sicherer.
EVERYTHING OPS
Die Vorteile einer automatisierten Entwicklung in Pipelines hat sich auch in anderen Bereichen durchgesetzt, mit wichtigen Ergebnissen bei der Verbesserung der Effizienz, der Reduzierung der Kosten und der Gewinnung neuer Erkenntnisse. Der kritische erste Schritt bei der analytischen Arbeit besteht beispielsweise darin, sicherzustellen, dass die Daten kohärent sind (frei von Anomalien, Fehlern und Ausreißern, konsistenten Datentypen usw.).
Mit DataOps werden automatisierte Arbeitsabläufe, statistische Analysen und andere Tools eingesetzt, um die Aufbereitung von Daten für die Nutzung durch Datenexperten zu beschleunigen. Wenn die Daten die Pipeline verlassen, werden sie Qualitätstests unterzogen, die ihre Anwendbarkeit unter den genannten Aspekten bestimmen. Sind die Tests erfolgreich, so kann der Datenwissenschaftler oder -analyst sie verwenden; schlagen sie fehl, können Software oder Fachleute den Fehler zurückverfolgen und den Prozess anpassen.
Auch MLOps nutzt DevOps-Prinzipien und wendet sie auf die Erstellung, Schulung und Bereitstellung von Anwendungen für maschinelles Lernen in der Cloud an. Wie bei DevOps und DataOps wird zum Schluss ein ausgearbeitetes Modell getestet und nur eingesetzt, wenn es diese Tests besteht.
Das Everything-Ops-Modell kann sogar auf nicht-technische Disziplinen wie das Finanzwesen angewendet werden. Mit FinOps überwachen Teams die laufenden Kosten einer bereitgestellten Anwendung und fügen die verwendeten Cloudressourcen zur Kostenoptimierung hinzu oder reduzieren sie.
DIE DINGE HABEN SICH GEWANDELT
Alle diese neuen Entwicklungsansätze sind sehr vielversprechend und haben sich in unzähligen Kundenszenarien bewährt. So hat beispielsweise Bacardi seine IT-Umgebung umgestaltet und eine DevOps-Automatisierungsplattform implementiert, was zu einer 16-fachen Steigerung der Website-Bereitstellungskapazität und einer Senkung der Infrastrukturkosten um 42 Prozent führte.
Mit risikoarmen Proofs of Concept, agiler Entwicklung sowie DevOps und DevSecOps können Sie die Softwareentwicklung aufwerten und die Effizienz steigern sowie schnellere, besser vorhersehbare und sicherere Aktualisierungen Ihrer digitalen Präsenz erreichen.
Für Unternehmen bedeutet dieser Paradigmenwechsel vor allem eine gezielte Schulung der Mitarbeiter sowie einen Kulturwandel. Bleiben Sie dran für weitere Einblicke ...