Deployment von Atlassian Software mit Spinnaker, AWS und Kubernetes

Deployment von Atlassian Software mit AWS und Spinnaker – Teil 3 Projektmangement & DNS

Auch im Bereich Cloud Hosting von Atlassian Software mit AWS oder Spinnaker bietet es sich an, dediziertes Projekt und User Management zu haben. FĂŒr Kubernetes gibt mehrere Möglichkeiten, die Projekt- und Benutzerverwaltung zu handhaben:

  1. Man kann mehrere EKS-Cluster einrichten und sie auf diese Weise voneinander trennen:
    • Dies ist zunĂ€chst eine einfache und saubere Lösung, da man keinen Weg finden muss, um Ressourcen und Berechtigungen zu trennen.
    • Wenn diese Cluster unabhĂ€ngig voneinander verwaltet werden sollen und wahrscheinlich unabhĂ€ngige Anwendungen bereitstellen, kann dies ein gĂŒltiger Ansatz sein.
    • Wenn die Cluster stattdessen zentral verwaltet werden sollen, verursacht dies eine Menge administrativen Aufwand und erfordert eine weitere Logikschicht, um Deployment-Pipelines, Benutzerrechte und weitere Automatismen zu implementieren.
  2. Ein einzelner EKS-Cluster kann die Projekt- und Benutzerverwaltung mit nativen Kubernetes-Funktionen handhaben.
    1. Projekte können in verschiedenen Namespaces verwaltet werden:
    2. Deployments können durch umfangreiches Tagging getrennt werden.
    3. Kubernetes bietet die Möglichkeit, Rollen mit dedizierten Berechtigungen auf Kubernetes-Ressourcen einzurichten, auf die Benutzer und Ressourcen zugreifen können, um eine feingranulare Rechteverwaltung zu ermöglichen
    4. Mit diesem Konzept können natĂŒrlich zusĂ€tzlich weitere Cluster eingerichtet werden, zum Beispiel fĂŒr Projekte mit abweichenden Konfigurationen oder fĂŒr Kubernetes-Updates.

Beide Optionen sind legitim und es kommt darauf an, wie Sie den/die Cluster in Zukunft administrieren wollen.

Netzwerk/ DNS

Die Compute Nodes selbst sind ĂŒber ein anderes Netzwerk miteinander und mit dem Master verbunden. Damit eine in Kubernetes bereitgestellte Anwendung von außerhalb des Clusters erreichbar ist, muss ein Ingress bereitgestellt werden, der als Tor außerhalb des Clusters fungiert.

Innerhalb des Clusters ist es fĂŒr jeden Pod immer möglich, sich mit einem anderen Pod zu verbinden. Das liegt daran, dass Kubernetes sein eigenes Netzwerk erzeugt, in dem alle Deployments stattfinden. Jeder Pod innerhalb von Kubernetes erhĂ€lt eine eigene IP-Adresse.

Vernetzung innerhalb Kubernetes

Wie die Vernetzung innerhalb von Kubernetes funktioniert, hÀngt stark davon ab, welche Netzwerk-Plugins und welcher Ingress-Controller installiert ist. Dadurch wird sichergestellt, dass die Umgebung innerhalb von Kubernetes auf die Anforderungen der Anwendung zugeschnitten werden kann.

EKS ist in der Lage, je nach installiertem Ingress-Controller verschiedene Arten von Loadbalancern zu spawnen. Hier empfiehlt es sich, einen externen DNS-Dienst zu verwenden und damit sicherzustellen, dass mindestens ein Pod immer ĂŒber diesen DNS-Namen erreicht werden kann, um maximal ausfallsicher zu sein.

Netzwerk/ DNS

Die Compute Nodes selbst sind ĂŒber ein anderes Netzwerk miteinander und mit dem Master verbunden. Damit eine in Kubernetes bereitgestellte Anwendung von außerhalb des Clusters erreichbar ist, muss ein Ingress bereitgestellt werden, der als Tor außerhalb des Clusters fungiert. Innerhalb des Clusters ist es fĂŒr jeden Pod immer möglich, sich mit einem anderen Pod zu verbinden. Das liegt daran, dass Kubernetes sein eigenes Netzwerk erzeugt, in dem alle Deployments stattfinden. Jeder Pod innerhalb von Kubernetes erhĂ€lt eine eigene IP-Adresse.

Wie die Vernetzung innerhalb von Kubernetes funktioniert, hÀngt stark davon ab, welche Netzwerk-Plugins und welcher Ingress-Controller installiert ist. Dadurch wird sichergestellt, dass die Umgebung innerhalb von Kubernetes auf die Anforderungen der Anwendung zugeschnitten werden kann.

EKS ist in der Lage, je nach installiertem Ingress-Controller verschiedene Arten von Loadbalancern zu spawnen. Hier empfiehlt es sich, einen externen DNS-Dienst zu verwenden und damit sicherzustellen, dass mindestens ein Pod immer ĂŒber diesen DNS-Namen erreicht werden kann, um maximal ausfallsicher zu sein.

Spinnaker

FĂŒr die Bereitstellungsebene wird in diesem Konzept Spinnaker verwendet. Spinnaker ist eine Deployment-Software, die fĂŒr Massen- und standardisierte Deployments von containerisierten Anwendungen in Kubernetes entwickelt wurde.

Hier ist es möglich, verschiedene Input-Quellen zu definieren, Pipelines zu erstellen, um Deployments zu automatisieren und Regeln/ Checks fĂŒr Pipelines zu definieren, um die IntegritĂ€t der gesamten Umgebung zu erhöhen.

Es ist auch möglich und empfehlenswert, in dieser Phase Deployment-Fallbacks zu implementieren, wie z. B. ein Blue-Green-Deployment und Versionierung fĂŒr Anwendungs-Deployments. Hier ist eine kleine Skizze, um zu sehen, wie Spinnaker Anwendungen bereitstellt:

Spinnaker, Kubernetes und Projektmanagement

Spinnaker kann natĂŒrlich weit mehr als nur Pipelines und Deployments erstellen. Es kommt auch mit einer einfach zu bedienenden Web-UI, um Ihnen einen transparenten Überblick ĂŒber die verschiedenen Deployments und Projekte in Kubernetes zu geben. Mit ein paar Klicks können Sie diese Ă€ndern.

Vorteile von Spinnaker:

  • Standardisiert.
  • Zukunftssicher.
  • Schnelle Deployments.
  • Schnelles Rollback.
  • Hoher Deployment-Durchsatz.
  • Sehr hoher Automatismus.
  • Geringer administrativer Aufwand nach der Implementierung.
  • Nahtloser Wechsel zu neuen Deployment-Workflows.
  • Cloud-Provider-Wechsel möglich.

Nachteile von Spinnaker:

  • Deployment-Workflow muss gut durchdacht sein.
  • Hoher initialer Administrationsaufwand.
  • Mehrere neue Anwendungen und Logikschichten mĂŒssen vom Betrieb verstanden und gelernt werden.
  • Funktioniert nur mit containerisierten Umgebungen.

← ZurĂŒck zu Teil 2: Deployment

Werkstudent bei XALT

Wie die Arbeit bei XALT mein Uni-Leben prÀgt

Hallo Alex, du bist Werkstudent bei XALT? ErzĂ€hl uns bitte zunĂ€chst etwas ĂŒber dich, dein Studium und ĂŒber deine Rolle im Unternehmen. 

Hallo, richtig, ich bin Werkstudent bei der XALT seit Mai 2020 und studiere Bioinformatik an der Technischen UniversitĂ€t MĂŒnchen. Bei XALT bin ich sowohl in unternehmensinterne Arbeiten als auch in Kundenprojekte involviert. Hier unterstĂŒtze ich unter anderem unsere DevOps-IngenieurInnen bei der QualitĂ€tssicherung, Konfiguration und der Dokumentation von Software und/oder des Deployments.

Wie war dein Einstieg bei XALT? 

Ich wurde zeitnah nach der Zusage auf meine Bewerbung kontaktiert, um direkt das Onboarding zu starten. Die Onboarding-Woche war fĂŒr mich schon eine Herausforderung, da ich davor noch nie in einem IT-Unternehmen gearbeitet habe. Zuallererst habe ich mich mit den Tools, Workflows und der Unternehmenskultur vertraut gemacht.

Meine ArbeitskollegInnen konnte ich zu Beginn erst nur online kennenlernen, ich wurde aber trotzdem herzlich empfangen und ins Team eingeladen. Anfangs war fĂŒr mich die Kommunikation entscheidend, sodass ich mich möglichst schnell in Projekte einarbeiten und eine Übersicht ĂŒber die Unternehmensprozesse erhalten konnte. 

WĂ€hrend meiner bisherigen Zeit bei XALT hatte ich kein Problem, mein Studium mit der Arbeit in Einklang zu bringen. Auf etwas Freizeit musste ich natĂŒrlich schon verzichten, als wenn ich mich nur auf das Studium konzentrieren wĂŒrde.  

Welche Parallelen oder Unterschiede siehst du zwischen der Arbeit bei XALT und deinem Studium? 

Im Studium wird uns Basiswissen zu verschiedenen Tools, Methoden und LösungsansĂ€tzen vorgestellt. Die erlernten Methoden dienen als hilfreiche Wissensgrundlage, um tatsĂ€chliche Probleme aus dem Arbeitsalltag bearbeiten zu können.

Der grundsĂ€tzliche Unterschied zwischen einem Projekt bei XALT und in der UniversitĂ€t besteht darin, dass in der UniversitĂ€t die Arbeit an den meisten Projekten (bei StudentInnen der ersten Semester) hauptsĂ€chlich zu Ausbildungszwecken dient. In einem Unternehmen gibt es wĂ€hrenddessen reale Aufgaben (von KundInnen) zu erledigen. Man arbeitet somit mit einem echten und konkreten Problem, was gelöst werden muss. Außerdem ist in der Arbeit der Fokus hĂ€ufig auf ein qualitĂ€tsvolles Ergebnis gelegt. In der Uni steht tendenziell mehr die Methodik im Mittelpunkt.

FÜR STUDIERENDE

Werde ein Teil unserer WerkstudentInnen

Du hast den Drive, neues zu lernen? Komm zu uns und unterstĂŒtze unser Team in coolen Projekten.

Collaboration

Welchen Einfluss hatte die Arbeitskultur bei XALT auf dein Uni-Leben? 

Als Bioinformatik-Student hat die Arbeit in der IT-Abteilung meinen Horizont in mehreren Bereiche erweitert. Unter anderem in der Analyse von Big Data, in der Programmierung sowie in der generellen Teamarbeit. Das sind alles Themen, die auch in meinem Studium entscheidend sind.

FĂŒr unsere Projekte habe ich mich bspw. auch mit DevOps-Tools vertraut gemacht, Software-Testing durchgefĂŒhrt sowie an der Projektorganisation mitgearbeitet. Dabei konnte ich wertvolle Kenntnisse erhalten, wie ein Unternehmen funktioniert. Meine neuen Programmierkenntnisse haben mir bspw. in den Informatikvorlesungen und -ĂŒbungen an der UniversitĂ€t Auftrieb gegeben, da ich immer einen Bezug dazu hatte, was mit Programmierung tatsĂ€chlich gemacht werden kann.

Weiterhin hat die Arbeit bei XALT einen positiven Einfluss auf meine ProduktivitÀt an der UniversitÀt. Ich habe gelernt, meine Arbeit zu organisieren und Aufgaben strukturiert zu bearbeiten. Das hilft mir dabei, meinen Alltag so zu gestalten, dass sowohl meine Werkstudenten-TÀtigkeit, mein Studium als auch ich als Person davon profitieren können.

Was sind deine wichtigsten Erkenntnisse aus der Zeit bei XALT?

In meiner kurzen Zeit bei XALT konnte ich bisher sehr viel lernen. Die 5 wichtigsten Dinge, die ich als Werkstudent gelernt habe, sind:

  • Einsicht in Management und Organisation bei grĂ¶ĂŸeren IT-Projekten
  • Arbeit in einem Team aus Personen mit unterschiedlichen HintergrĂŒnden und Fachbereichen
  • Selbstorganisierte Arbeitsaufteilung und Problemlösung
  • Kommunikationsaufbau beim Remote Work
  • Kaffee am Morgen vertreibt Kummer und Sorgen 🙂

Zusammenfassend wĂŒrde ich sagen, dass die Arbeit in einem Unternehmen eine völlig andere Erfahrung ist als das Studium an der UniversitĂ€t. Dies wird keine große Überraschung sein. Sehr unterschiedlich sind aus meiner Sicht Themen, wie die generelle Herangehensweise bei Problemlösungen und die verschiedenen Lernmethoden.