Motivation
Im Aftersales unseres Kunden (OEM in der Automobilindustrie) kommen Software-Produkte von diversen Lieferanten zum Einsatz. Ziel der Cloud Plattform ist eine einheitliche Infrastruktur, Architektur und Vorgehensweise für die Nutzung dieser Produkte.
Die agile Implementierung von digitalen Produkten kann möglichst schnell und mit Fokus auf den Mehrwert für den Endanwender erfolgen. Dafür stellt die Plattform Dienste zur Verfügung und kümmert sich um querschnittliche Themen wie Security, Compliance, Hochverfügbarkeit und Release Prozesse.
Beitrag der Novatec
Novatec baut und betreibt auf Basis der AWS Cloud, Kubernetes und Istio eine moderne Cloud Infrastruktur mit höchsten Anforderungen an Sicherheit und Verfügbarkeit. Die Plattform unterstützt dabei beliebige Anwendungsarchitekturen und kümmert sich um die im Folgenden beschriebenen querschnittlichen Themen.
Security
Große Unternehmen werden immer häufiger zum Ziel von Angriffen auf ihre IT-Systeme. Erfolgreiche Angriffe führen zu einem großen Reputationsverlust und wirtschaftlichen Schaden. Der Schutz der Daten spielt eine sehr große Rolle, weil diese Kern des eigenen Geschäfts sind und ein Datenleck zu Schadensersatzansprüchen durch Produkthaftungsklagen führen kann.
Dazu ist es notwendig, durch Verschlüsselung dafür zu sorgen, dass selbst der Cloud Provider nicht auf die kritischen Daten zugreifen kann. Um die angemessene Verschlüsselung der Daten sicherzustellen werden den Teams Richtlinien an die Hand gegeben, um für die jeweiligen Daten die richtigen Verschlüsselungen und die passenden Datenspeicher auszuwählen. Für die Absicherung gegenüber dem Cloud Provider werden verschlüsselte Backups auf der lokalen Infrastruktur gespeichert.
Authentifizierung und Autorisierung mittels OpenID Connect wird als zentraler Dienst der Plattform angeboten. Dadurch wird ein hoher Standard bei deren Umsetzung gewährleistet und die Gefahr von Angriffen auf die einzelnen Applikationen reduziert. Gleichzeitig werden die Teams von der Aufgabe befreit, die Details der Lösung zu beherrschen.
Auf der Plattform bauen Entwickler von verschiedenen Lieferanten Applikationen. Deshalb ist es wichtig, die Bereiche der Teams effizient gegeneinander abzusichern. Jedes Team hat in den verschiedenen Plattformkomponenten eigene Bereiche, innerhalb derer sie umfangreiche Berechtigungen haben. Dadurch sind sie in der Lage, autonom und sehr effizient zu arbeiten, ohne von anderen Teams abhängig zu sein. Außerdem ist sichergestellt, dass es keine gegenseitige Beeinflussung der Applikationen untereinander gibt.
Ganz im Sinne der Sicherheitsstrategie „Defense in Depth”, wird durch Sicherheitsmaßnahmen auf verschiedene Ebenen sowohl die Kommunikation zwischen Endanwender und Service als auch die interne Kommunikation zwischen den Services auf der Plattform abgesichert. Zum Einsatz kommt unter anderem Mutual TLS, JSON Web Tokens und explizit definierte Network Policies. Die Entwicklerteams können sich somit auf die Sicherheit in der Anwendung selbst konzentrieren.
DevOps
Mit DevOps kann die Qualität der Software verbessert und deren Marktverfügbarkeit beschleunigt werden. Auf der Cloud Plattform sind ganz im Sinne von DevOps die einzelnen Entwicklerteams sowohl für die Entwicklung als auch für den Betrieb ihrer Applikation zuständig. Die Teams können dabei auf umfangreiche, von der Plattform bereitgestellte Services zurückgreifen, die sie bei Verwaltung, Bereitstellung und Überwachung ihrer Applikationen unterstützen.
Die Plattform umfasst unter anderem eine automatische Instrumentierung der Applikationen mit Monitoring und Logging Agenten. Damit werden den Teams Metriken und Logs ihrer eigenen Anwendung, also auch der vor- und nachgelagerten Services, bereitgestellt. Dazu gehören auch Dashboards für Metriken der Datenservices, die die Teams vom Cloud Provider beziehen. Die Teams werden davon entlastet eigene entsprechende Tools aufsetzen zu müssen.
Weitere Werkzeuge für CI/CD werden den Teams in einer umfangreichen Toolchain zur Verfügung gestellt, um die übergreifend gesteuerten Releaseprozesse für voneinander abhängigen Services einfach umsetzen zu können. Dazu zählt auch ein zentrales Wiki und ein Projektmanagement-Tool für die agile Softwareentwicklung.
Das Plattform Team kümmert sich um die effiziente Bereitstellung von Ressourcen für die Ausführung der Applikationen. Mit einer 24/7 Rufbereitschaft wird die ständige Verfügbarkeit der Plattform sichergestellt.
Verfügbarkeit
Die Architektur der Plattform ist auf höchste Verfügbarkeit ausgelegt. Beispielsweise ist durch eine Multi-Zone-Architektur selbst bei einem Ausfall eines kompletten Rechenzentrums die Plattform verfügbar. Jegliche Komponenten der Plattform sind konsequent redundant aufgebaut, wodurch der Ausfall einzelner Komponenten problemlos verkraftet werden kann.
Durch die regelmäßige und großteils automatisierte Simulation von Konzepten für das Disaster Recovery kann im Katastrophenfall eine niedrige „Recovery Point Objective” (RPO) und „Recovery Time Objective” (RTO) gewährleistet werden.
Ergebnis
Ganz im Sinne des Agile Empowerment erfolgt die Konzeption der Plattform durch die Novatec in enger Zusammenarbeit mit den Architekten des Kunden in einem Scrum-Team, dem sogenannten Plattform-Team. Dabei wird mit anderen Stakeholdern, wie zum Beispiel mit der Cyber Security Einheit des Kunden, eng zusammengearbeitet. Dies stellt sicher, dass die Prozesse und die Architektur der Cloud Plattform an den allgemeinen IT-Standards und den Geschäftszielen des Unternehmens ausgerichtet sind.
Eine wesentliche Zielsetzung der Plattform ist es, dass Entwicklerteams effizient ihre Produkte entwickeln können, um damit schlussendlich die Entwicklungszyklen für neue Produkte zu verkürzen. Dazu berät die Novatec die Teams beim Betrieb ihrer Services und unterstützt mit entsprechenden Tools, Prozessen und Guidelines, sodass die Entwicklerteams in einem klar definierten Kontext eigenverantwortlich ihre Produkte entwickeln und betreiben können. Die Teams haben dabei die Freiheit, die beste Anwendungsarchitektur und Technologie zur Lösung ihrer individuellen Aufgabe auszuwählen. Das Plattform-Team arbeitet eng mit den Entwicklerteams zusammen, um sowohl Anregungen und Feedback für die Verbesserungen der Plattform zu erhalten als auch um sicherzustellen, dass die DevOps Prinzipien auf der Plattform gelebt werden.
Auf der Plattform entwickeln über 200 Entwickler in kleinen, unabhängigen Teams ihre Produkte. Häufig stehen die Teams vor ähnlichen technologischen Herausforderungen und es stellen sich die gleichen Fragen bei bestimmten Architekturentscheidungen. Deshalb organisiert das Plattform-Team regelmäßige Community of Practice Meetings, in denen die Teams aktuelle Problemstellungen besprechen und Lösungen präsentieren können. Des Weiteren wird auch über themenspezifische Chat-Räume und ein gemeinsames Wiki die Zusammenarbeit und der Wissensaustausch zwischen den Teams gefördert.
Übergreifende Entscheidungen über Standards werden in einem regelmäßig stattfindenden Architecture Board Meetings getroffen, an dem die Repräsentanten der einzelnen Entwicklerteams oder Lieferanten teilnehmen.
Ihr Ansprechpartner
