Was ist Platform Engineering

Was ist Platform Engineering

IT Teams, Entwickler, Abteilungsleiter und CTOs müssen sicherstellen, dass Applikationen und digitale Produkte schnell, effizient und sicher auf den Markt kommen und stets verfügbar sind. Doch oftmals sind die Bedingungen dafür nicht gegebenen. Compliance- und Sicherheits-Richtlinien, sowie lange und komplizierte Prozesse erschweren dass IT Teams diese Ziele erreichen diese Ziele zu erreichen. Doch dies muss nicht der Fall sein und kann mit Hilfe eines Developer Self-Service bzw Internal Developer Platform gelöst werden.

Vereinfachter Vergleich von Platform Engineering vs Internal Developer Platform vs Developer Self-Service.

Platform Engineering vs. Internal Developer Platform vs. Developer Self-Service

Was ist Platform Engineering?

Platform Engineering ist ein neuer Trend, der darauf abzielt, die Bereitstellung von Unternehmenssoftware zu modernisieren. Platform Engineering implementiert wiederverwendbare Tools und Selbstbedienungsfunktionen mit automatisierten Infrastrukturabläufen, die die Erfahrung und Produktivität der Entwickler verbessern. Die ersten Bemühungen zum Aufbau von Plattformen beginnen oft mit internen Entwicklerplattformen (IDPs).

Platform Engineering hilft dabei, die Erstellung und Auslieferung von Software schneller und einfacher zu machen, indem es einheitliche Werkzeuge, Abläufe und technische Grundlagen zur Verfügung stellt. Es ist wie ein gut organisiertes Werkzeugset und eine Werkstatt für Softwareentwickler, damit sie ihre Arbeit effizienter und ohne unnötige Hindernisse erledigen können.

Webinar - Platform Engineering: AWS Account Erstellung mit Developer Self-Service (Jira Service Management)

Wofür wird Platform Engineering verwendet?

Die ideale Entwicklungsplattform für ein Unternehmen kann für ein anderes völlig unbrauchbar sein. Sogar innerhalb derselben Firma können unterschiedliche Entwicklungsteams ganz verschiedene Anforderungen haben.

Das Hauptziel einer Technikplattform liegt in der Steigerung der Entwicklerproduktivität. Auf Unternehmensebene fördern solche Plattformen die Konsistenz und Effizienz. Für die Entwickler bieten sie eine erhebliche Erleichterung im Umgang mit Lieferpipelines und Low-Level-Infrastruktur.

Was ist eine Internal Developer Platform (IDP)?

Internal Developer Platforms (IDPs), auch bekannt als Developer Self-Service Platform, sind Systeme, die innerhalb von Unternehmen eingerichtet werden, um den Softwareentwicklungsprozess zu beschleunigen und zu vereinfachen. Sie bieten Entwicklern eine zentrale, standardisierte und automatisierte Umgebung, in der sie Code schreiben, testen, bereitstellen und verwalten können.

IDPs bieten eine Reihe von Tools, Funktionen und Prozessen. Ziel ist es, Entwicklern eine reibungslose Self-Service-Erfahrung zu ermöglichen, die die richtigen Funktionen bietet, um Entwicklern und anderen Personen zu helfen, wertvolle Software mit so wenig Aufwand wie möglich zu produzieren.

Wie unterscheidet sich Platform Engineering zu Internal Developer Platform?

Platform Engineering ist der übergeordnete Bereich, der sich mit der Schaffung und Verwaltung von Softwareplattformen befasst. Im Rahmen des Platform Engineering werden Integrated Development Platforms (IDPs) als spezifische Tools oder Plattformen entwickelt. Diese bieten Entwicklern Self-Service- und Automatisierungsfunktionen an.

Was ist ein Developer Self-Service?

Developer Self-Service ist ein Konzept, das es Entwicklern ermöglicht, die von ihnen benötigten Ressourcen und Umgebungen selbst zu erstellen und zu verwalten, ohne auf die Unterstützung von Betriebsteams oder anderen Abteilungen warten zu müssen. Damit wird die Effizienz gesteigert, Wartezeiten reduziert und die Produktivität durch selbstständiges Arbeiten und schnelleren Zugriff auf Ressourcen erhöht. Dies bedeutet, dass Entwickler nicht auf andere warten müssen, um das zu bekommen, was sie benötigen, und ihre Arbeit schneller erledigen können.

Wie helfen IDPs dabei?

Stellen Sie sich Interne Entwicklerplattformen (IDPs) wie einen gut organisierten Supermarkt vor, in dem alles leicht zu finden ist. IDPs stellen alle notwendigen Werkzeuge und Services bereit, damit Entwickler ihre Aufgaben ohne große Umwege erledigen können. Sie sind sozusagen der Ort, an dem der Self-Service stattfindet.

Der Übergang zu Platform Engineering

Wenn ein Unternehmen von IDPs zu Platform Engineering übergeht, ist das wie der Sprung von einem kleinen lokalen Laden zu einer großen Einkaufszentrale. Platform Engineering bietet eine breitere Palette von Services und eine stärkere Automatisierung. Es hilft Unternehmen, ihre Entwicklungsprozesse weiter zu optimieren und zu skalieren.

Durch den Wechsel zu Platform Engineering können Unternehmen ihre Entwicklungsprozesse effizienter gestalten, die Zusammenarbeit verbessern und letztendlich bessere Produkte schneller auf den Markt bringen. Der erste Schritt mit IDPs und Developer Self-Service legt das Fundament, um diese höhere Ebene der Effizienz und Automatisierung zu erreichen.

Herausforderungen, die mit Platform Engineering gelöst werden können

Skalierbarkeit & Standardisierung

In wachsenden, aber auch großen und bereits fest etablierten Unternehmen kann die Anzahl der IT Projekte und Teams schnell ansteigen. Traditionelle Entwicklungspraktiken können es schwer machen, die Entwicklungsumgebung zu skalieren und alle homogen zu halten. Durch die stetig anwachsenden IT Projekte bzw. Applikationen gibt es Unterschiede in Setup und Konfiguration, Sicherheits- und Compliance Standards, sowie eine Übersicht, welcher User worauf Zugriff hat.

Platform Engineering ermöglicht eine höhere Skalierbarkeit, indem es Automatisierung und standardisierte Prozesse einführt, die es erleichtern, mit einer wachsenden Anzahl von Projekten und Applikationsentwicklungen umzugehen.

Effizienz und Produktivität

Verzögerungen in der Entwicklung und Erstellung von Infrastrukturen können durch manuelle Prozesse und Abhängigkeiten zwischen Teams entstehen und die Zeit bis Applikation auf den Markt kommen erhöhen. Platform Engineering hilft, diese Herausforderungen zu überwinden, indem es Self-Service-Funktionen und Automatisierung bietet, die es den Teams ermöglichen, schneller und unabhängiger zu arbeiten.

Sicherheit & Compliance

Sicherheitsbedenken sind in jedem Entwicklungsprozess von zentraler Bedeutung. Durch Platform Engineering standardisieren und integrieren wir Sicherheits- und Compliance-Standards vorab in den Entwicklungsprozess und die IT-Infrastruktur, was eine konsequente Sicherheitsüberprüfung und -verwaltung ermöglicht.

Konsistenz und Standardisierung

Unterschiedliche Teams und Projekte könnten unterschiedliche Werkzeuge und Praktiken verwenden, was zu Inkonsistenzen führen kann. Platform Engineering fördert die Standardisierung durch die Bereitstellung einer gemeinsamen Plattform mit einheitlichen Werkzeugen und Prozessen, die von allen genutzt werden können.

Innovation und Experimentierung

Die Möglichkeit, neue Ideen schnell zu testen und zu iterieren, ist entscheidend für die Innovationskraft eines Unternehmens. Platform Engineering bietet eine Umgebung, die Experimente und schnelle Iterationen fördert, indem sie die benötigte Infrastruktur und Werkzeuge auf effiziente Weise bereitstellt.

Kostenkontrolle

Durch die Optimierung und Automatisierung der Entwicklungsprozesse können die Betriebskosten gesenkt werden. Platform Engineering bietet die Werkzeuge und Praktiken, um Ressourcen effizient zu nutzen und somit die Gesamtkosten der Entwicklung zu reduzieren.

Praxisbeispiel: IDP und Developer Self-Service mit Jira Service Management und AWS

Eine Möglichkeit mit Platform Engineering zu starten ist beispielsweise Jira Service Management als Developer Self-Service zu nutzen um damit AWS Cloud Infrastruktur automatisiert und sicher aufzusetzen und Templates für Entwickler und Cloud Engineers in einem Wiki bereitzustellen.

Wie funktioniert das?

Developer Self-Service zur automatischen AWS Account Erstellung mit Jira Service management

Jira Service Management Developer Self-Service

Mit Hilfe von Jira Service Management stellt einer unserer Kunden einen Self-Service bereit der es Entwicklern ermöglicht einen AWS Organisationsaccount automatisch und sicher aufzusetzen. Dies funktioniert mit einem einfachen Portal und einem Service-Request- Formular, indem vom User Informationen wie Name, Funktion, Account-Typ, Sicherheits- und technischer Verantwortlichter und genehmigender Manager angegeben werden müssen.

Anschließend wird im Backend mit Hilfe von Python-Skripten in einer Buildpipeline der Account auf AWS erstellt. Beim Setup werden bereits alle Sicherheits-und Compliance revevanten Standards integriert und der JSM Self-Service ist mit dem Active Directory des Unternehmens verknüpft. Durch die tiefe Integration mit allen relevanten Systemen des Unternehmens, kann anschließend explizit nachvollzogen werden, wer worauf Zugriff hat. Dies erleichtert auch im Nachhinein die Kontrolle der Zugriffe sowie existierende Accounts.

Das Ergebnis: Die Zeit, die benötigt wird um AWS Organisationsaccounts zu erstellen wird mit Hilfe von JSM auf unter eine Stunde reduziert (von mehreren Wochen), wodurch IT Teams schneller ihre Produkte veröffentlichen, testen und updaten können. Zudem wird eine Übersicht geschaffen, welche und wieviele Accounts bereits existieren und für welches Produkt, wodurch eine Kostenkontrolle der Cloud Infrastruktur auf AWS vereinfacht wird.

Confluence Cloud als Wissensdatenbank für IT-Teams

Natürlich ist ein Developer Self-Service nur ein kleiner Teil von Platform Engineering. IT-Teams benötigen konkrete Tools und Apps, die auf Ihre Anforderungen zugeschnitten sind.

Eines dieser Tools ist eine Knowledgebase, in der IT-Teams, vom Entwickler, bis hin zum Cloud Engineer relevante Informationen wie Templates finden, die ihre Arbeit erleichtern und beschleunigen.

Wir haben bei unserem Kunden eine Wissensdatenbank mit Confluence aufgebaut, die verschiedenste Templates, Kurse, Best Practices und wichtige Informationen über Prozesse bereitstellt. Diese Wissensdatenbank ermöglicht es allen relevanten Stakeholdern, sich jederzeit mit wichtigen Informationen zu versorgen und weiterzubilden.

Webinar – Der erste Schritt im Platform Engineering mit einem Developer Self-Service und JSM

Nachdem wir die Herausforderungen und Lösungen erörtert haben, die Platform Engineering mit sich bringt, ist es wichtig, diese Konzepte in die Praxis umzusetzen und weiter zu erforschen. Eine großartige Gelegenheit, mehr über die praktische Anwendung von Platform Engineering zu erfahren, bietet ein bevorstehendes Webinar. Dieses Webinar legt einen speziellen Fokus auf die Automatisierung der AWS-Infrastrukturerstellung mithilfe von Jira Service Management und Developer Self-Service. Zusätzlich bietet ess eine Live-Demo mit unseren Experten aus dem Bereich DevOps.

Webinar - Platform Engineering: AWS Account Erstellung mit Developer Self-Service (Jira Service Management)

Fazit

Die Reise von Internen Entwicklerplattformen zu Platform Engineering ist ein progressiver Schritt, der Unternehmen dabei unterstützt, ihre Entwicklungsprozesse zu optimieren. Durch die Nutzung eines Developer Self-Service und die Überwindung von Herausforderungen in der Softwareentwicklung ebnet Platform Engineering den Weg für effizientere und innovativere Entwicklungspraktiken. Mit praktischen Ressourcen wie dem vorgestellten Webinar können Interessierte tiefer in dieses Thema eintauchen. Und zudem wertvolle Einblicke in die effektive Umsetzung von Platform Engineering gewinnen.

Ein Vergleich beliebter Container-Orchestrierungs-Tools: Kubernetes vs. Amazon ECS vs Azure Container Apps

Ein Vergleich beliebter Container-Orchestrierungs-Tools

Mit der zunehmenden Einführung neuer Technologien und der Umstellung auf Cloud-native Umgebungen ist die Container-Orchestrierung zu einem unverzichtbaren Werkzeug für die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen geworden. Kubernetes, Amazon ECS und Azure Container Apps haben sich unter den vielen verfügbaren Optionen als führend erwiesen. Aber wie kannst du bei so vielen Optionen herausfinden, welche für dein Unternehmen am besten geeignet ist?

In diesem Artikel befassen wir uns eingehend mit den Funktionen und Vorteilen von Kubernetes, Amazon ECS und Azure Container Apps und vergleichen sie Seite an Seite, damit du eine fundierte Entscheidung treffen kannst. Wir gehen auf reale Anwendungsfälle ein und untersuchen die Vor- und Nachteile jeder Option, damit du das Tool auswählen kannst, das die Anforderungen deines Unternehmens am besten erfüllt. Am Ende dieses Artikels wirst du ein klares Verständnis der Vorteile und Grenzen jedes Tools haben und in der Lage sein, eine Entscheidung zu treffen, die mit deinen Unternehmenszielen übereinstimmt.

Lass uns loslegen!

Überblick: Tools für die Container-Orchestrierung

Erläuterung der gängigen Tools

Kubernetes ist zwar das am weitesten verbreitete Container-Orchestrierungstool, aber es gibt auch andere Optionen, die in Betracht gezogen werden sollten. Einige der anderen beliebten Optionen sind:

  • Amazon ECS ist ein vollständig verwalteter Container-Orchestrierungsdienst, der die Bereitstellung, Verwaltung und Skalierung von Docker-Containern vereinfacht.
  • Azure Container Apps ist eine vollständig verwaltete Umgebung, die es dir ermöglicht, Microservices und containerisierte Anwendungen auf einer serverlosen Plattform zu betreiben.
  • Kubernetes ist eine Open-Source-Plattform, die die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisiert.

Kubernetes

Beginnen wir mit einem Überblick über Kubernetes. Kubernetes wurde von Google entwickelt und wird heute von der Cloud Native Computing Foundation gepflegt. Kubernetes ist eine Open-Source-Plattform, die den Einsatz, die Skalierung und die Verwaltung von Container-Anwendungen automatisiert. Ihre Flexibilität und Skalierbarkeit machen sie zu einer beliebten Wahl für Organisationen aller Größen, von kleinen Startups bis hin zu großen Unternehmen.

Warum ist Kubernetes so beliebt?

Kubernetes gilt weithin als Industriestandard für die Container-Orchestrierung, und das aus gutem Grund. Es bietet eine Vielzahl von Funktionen, die es für den groß angelegten, produktionsgerechten Einsatz prädestinieren.

  • Automatische Skalierung: Kubernetes kann die Anzahl der Repliken einer containerisierten Anwendung je nach Ressourcenauslastung automatisch erhöhen oder verringern.
  • Selbstheilung: Kubernetes kann Container, die ausfallen, automatisch ersetzen oder neu einplanen.
  • Service Discovery und Lastausgleich: Kubernetes kann automatisch Dienste aufdecken und den Datenverkehr zwischen ihnen ausgleichen.
  • Rollbacks und Rollouts: Mit Kubernetes kannst du ganz einfach zu einer früheren Version deiner Anwendung zurückkehren oder ein schrittweises Rollout von Updates durchführen.
  • Hohe Verfügbarkeit: Kubernetes kann die Verfügbarkeit von Anwendungsreplikaten automatisch planen und verwalten.

Das Kubernetes-Ökosystem umfasst auch Internet-of-Things (IoT)-Einsätze. Es gibt spezielle Kubernetes-Distributionen (z. B. k3s, kubeedge, microk8s), die die Installation von Kubernetes auf Telekommunikationsgeräten, Satelliten oder sogar auf einem Roboterhund von Boston Dynamics ermöglichen.

Die wichtigsten Vorteile von Kubernetes

Einer der wichtigsten Vorteile von Kubernetes ist die Fähigkeit, viele Nodes und Container zu verwalten, was es für Unternehmen mit hohen Skalierungsanforderungen besonders geeignet macht. Viele der größten und komplexesten Anwendungen, die heute in der Produktion eingesetzt werden, wie die von Google, Uber und Shopify, werden von Kubernetes betrieben.

Ein weiterer großer Vorteil von Kubernetes ist sein breites Ökosystem an Erweiterungen und Tools von Drittanbietern. Sie lassen sich leicht mit anderen Diensten wie Monitoring- und Logging-Plattformen, CI/CD-Pipelines und anderen integrieren. Diese Flexibilität ermöglicht es Unternehmen, ihre Anwendungen so zu entwickeln und zu verwalten, wie es ihren Bedürfnissen am besten entspricht.

Nachteile von Kubernetes

Aber Kubernetes ist nicht ohne Nachteile. Einer der größten Kritikpunkte an Kubernetes ist, dass die Einrichtung und Verwaltung von Kubernetes komplex sein kann, insbesondere für kleinere Unternehmen ohne eigene DevOps-Teams. Außerdem berichten einige Nutzer, dass Kubernetes ressourcenintensiv sein kann, was für Unternehmen mit begrenzten Ressourcen ein Problem darstellen kann.

Ist Kubernetes also die richtige Wahl für dein Unternehmen?

Wenn du eine hoch skalierbare, flexible und funktionsreiche Plattform mit einem großen Ökosystem an Erweiterungen von Drittanbietern suchst, dann ist Kubernetes vielleicht die perfekte Wahl. Wenn du jedoch ein kleineres Unternehmen mit begrenzten Ressourcen und wenig Erfahrung mit Container-Orchestrierung bist, solltest du andere Optionen in Betracht ziehen.

Managed Kubernetes Services

Willst du die Vorteile der Skalierbarkeit und Flexibilität von Kubernetes nutzen, hast aber nicht die Ressourcen oder die Erfahrung, um die Komplexität zu bewältigen? Es gibt managed Kubernetes-Services wie GKE, EKS und AKS, die dir dabei helfen können, das zu überwinden.

Die Kubernetes-Angebote in der Cloud senken die Einstiegshürde für die Einführung von Kubernetes deutlich, da die Kosten für Installation und Wartung geringer sind. Das bedeutet jedoch nicht, dass überhaupt keine Kosten anfallen, denn die meisten Angebote haben ein Shared Responsibility-Modell. So werden beispielsweise Upgrades von Kubernetes-Clustern in der Regel vom Eigentümer eines Kubernetes-Clusters und nicht vom Cloud-Anbieter durchgeführt. Die Versions-Upgrades erfordern eine Planung und ein entsprechendes Testgerüst für deine Anwendungen, um einen reibungslosen Übergang zu gewährleisten.

Anwendungsfälle

Kubernetes wird von vielen der größten Unternehmen der Welt eingesetzt, darunter Google, Facebook und Uber. Es eignet sich gut für groß angelegte, produktionsreife Einsätze.

  • Google: Google nutzt Kubernetes, um die Bereitstellung seiner Such- und Werbedienste zu verwalten.
  • Netflix: Netflix nutzt Kubernetes für die Bereitstellung und Verwaltung seiner Microservices.
  • IBM: IBM nutzt Kubernetes für die Verwaltung seiner Cloud-Dienste.

Vergleich mit anderen Orchestrierungstools

Obwohl Kubernetes weithin als Industriestandard für die Container-Orchestrierung gilt, ist es möglicherweise nicht für jedes Unternehmen die beste Lösung. Wenn du zum Beispiel einen kleinen Einsatz oder ein begrenztes Budget hast, bist du mit einem einfacheren Tool wie Amazon ECS oder sogar einer einfachen Container-Engine-Installation vielleicht besser dran. Für große, produktionsreife Einsätze ist Kubernetes jedoch kaum zu schlagen.

Vor und Nachteile von Kubernetes als Container-Orchestrierungstool

Hochgradig skalierbar und flexibelKann komplex in der Einrichtung und Verwaltung sein
Großes Ökosystem an Erweiterungen von DrittanbieternRessourcenintensiv
Weit verbreiteter Einsatz in der Produktion durch große UnternehmenSteile Lernkurve für kleinere Organisationen ohne eigene DevOps-Teams
Verwaltete Kubernetes-Dienste zur Bewältigung der Komplexität verfügbar
Kann auf IoT-Geräten installiert werden

Amazon ECS: Ein leistungsfähiger und skalierbarer Container Management Service

Amazon Elastic Container Service (ECS) ist ein hoch skalierbarer, leistungsstarker Container Management Service, der von Amazon Web Services (AWS) bereitgestellt wird. Er ermöglicht es dir, Docker-Anwendungen auf einem Cluster von Amazon EC2-Instanzen auszuführen und zu verwalten und bietet eine Vielzahl von Funktionen, die dir helfen, deine Container-basierten Anwendungen zu optimieren.

Funktionen und Vorteile Amazon ECS zeichnet sich durch eine Vielzahl von Funktionen und eine enge Integration mit anderen AWS-Diensten aus. Er arbeitet Hand in Hand mit der AWS CLI und der Verwaltungskonsole, was das Starten, Skalieren und Überwachen deiner containerisierten Anwendungen erleichtert.

ECS wird vollständig von AWS verwaltet, sodass du dich nicht um die Verwaltung der zugrunde liegenden Infrastruktur kümmern musst. Es baut auf der Robustheit von AWS auf und ist mit einem breiten Spektrum von AWS-Tools und -Services kompatibel.

Warum ist Amazon ECS so beliebt?

Amazon ECS ist aus verschiedenen Gründen beliebt und eignet sich daher für verschiedene Einsatzszenarien:

  • Leistungsstark und einfach zu bedienen: Amazon ECS lässt sich gut in die AWS CLI und die AWS Management Console integrieren und bietet Entwicklern, die AWS bereits nutzen, ein nahtloses Erlebnis.
  • Skalierbarkeit: ECS ist so konzipiert, dass es problemlos große, unternehmensweite Bereitstellungen bewältigen kann und eine automatische Skalierung entsprechend den Anforderungen deiner Anwendung ermöglicht.
  • Hohe Verfügbarkeit: ECS sorgt für hohe Verfügbarkeit, indem es den Einsatz in mehreren Regionen ermöglicht, Redundanz bietet und die Verfügbarkeit der Anwendung aufrechterhält.
  • Kostengünstig: Mit ECS zahlst du nur für die genutzten AWS-Ressourcen (z. B. EC2-Instanzen, EBS-Volumes) und es fallen keine zusätzlichen Vorab- oder Lizenzkosten an.

Anwendungsfälle

Amazon ECS eignet sich für große Bereitstellungen und für Unternehmen, die einen vollständig verwalteten Container-Orchestrierungsdienst suchen.

  • Großflächiger Einsatz: Aufgrund seiner hohen Skalierbarkeit ist ECS eine ausgezeichnete Wahl für den groß angelegten Einsatz von containerisierten Anwendungen.
  • Vollständig verwalteter Dienst: Für Unternehmen, die ihre Infrastruktur nicht selbst verwalten möchten, bietet ECS einen vollständig verwalteten Service, bei dem die zugrunde liegenden Server und ihre Konfiguration von AWS verwaltet werden.

Azure Container Apps: Ein verwalteter und serverloser Containerdienst

Azure Container Apps ist ein serverloser Containerdienst, der von Microsoft Azure bereitgestellt wird. Er ermöglicht es dir, containerisierte Anwendungen einfach zu erstellen, bereitzustellen und zu skalieren, ohne dich um die zugrunde liegende Infrastruktur kümmern zu müssen.

Funktionen und Vorteile Azure Container Apps bietet Einfachheit und Integration mit Azure-Diensten. Die intuitiv bedienbare Benutzeroberfläche und die gute Integration in die Azure CLI vereinfachen die Verwaltung deiner containerisierten Anwendungen.

Mit Azure Container Apps wird die Infrastruktur vollständig von Microsoft Azure verwaltet. Außerdem basiert sie auf der robusten Architektur von Azure, die eine nahtlose Interoperabilität mit anderen Azure-Diensten gewährleistet.

Warum ist Azure Container Apps so beliebt?

Azure Container Apps bietet eine Reihe von Vorteilen, die sich für eine breite Palette von Einsätzen eignen:

  • Benutzerfreundlichkeit: Azure Container Apps ist in die Azure CLI und das Azure Portal integriert und bietet Entwicklern, die Azure bereits nutzen, eine vertraute Schnittstelle.
  • Serverlos: Azure Container Apps abstrahiert die zugrunde liegende Infrastruktur und gibt Entwicklern mehr Freiheit, sich auf die Programmierung und weniger auf den Betrieb zu konzentrieren.
  • Hochgradig skalierbar: Azure Container Apps kann automatisch skaliert werden, um den Anforderungen deiner Anwendung gerecht zu werden, und eignet sich daher gut für Anwendungen mit schwankendem Bedarf.
  • Kostengünstig: Azure Container Apps wird nur für die Ressourcen berechnet, die du nutzt, und es fallen keine zusätzlichen Infrastruktur- oder Lizenzierungskosten an.

Anwendungsfälle

Azure Container Apps eignet sich hervorragend für Anwendungen, die Skalierbarkeit und ein serverloses Bereitstellungsmodell erfordern.

  • Skalierbare Anwendungen: Da Azure Container Apps automatisch skaliert, ist es ideal für Anwendungen, die variable Arbeitslasten bewältigen müssen.
  • Serverloses Modell: Azure Container Apps bietet ein serverloses Bereitstellungsmodell für Unternehmen, die es vorziehen, keine Server zu verwalten und sich mehr auf die Anwendungsentwicklung konzentrieren wollen.

Amazon ECS vs. Azure CA vs. Kubernetes

Sowohl Amazon ECS als auch Azure Container Apps sind starke Konkurrenten im Bereich der Container-Orchestrierungs-Tools. Sie bieten robuste, vollständig verwaltete Dienste, die die zugrunde liegende Infrastruktur abstrahieren, so dass sich die Entwickler auf ihren Anwendungscode konzentrieren können. Sie sind jedoch auch auf spezifische Bedürfnisse und Ökosysteme ausgerichtet.

Amazon ECS ist tief in das AWS-Ökosystem integriert und wurde entwickelt, um große, unternehmensweite Bereitstellungen problemlos zu bewältigen. Azure Container Apps hingegen arbeitet mit einem serverlosen Modell und bietet hervorragende Skalierbarkeitsfunktionen, wodurch es sich gut für Anwendungen mit schwankendem Bedarf eignet.

Hier ist eine Tabelle zum Vergleich, um diese Punkte zu verdeutlichen:

Amazon ECSAzure Container AppsKubernetes
Ökosystem-KompatibilitätTiefe Integration mit AWS-DienstenTiefe Integration mit Azure-DienstenWeitgehend kompatibel mit vielen Cloud-Anbietern
BereitstellungsmodellVerwalteter Service auf EC2-InstanzenServerlessSelbstverwaltete und gehostete Optionen verfügbar
SkalierbarkeitEntwickelt für groß angelegte ImplementierungenHervorragend geeignet für variable Nachfrage (automatische Skalierung)Hochgradig skalierbar mit manueller Konfiguration
ManagementVollständig von AWS verwaltetVollständig von Microsoft Azure verwaltetManuell, mit Komplexität
KostenBezahlung für genutzte AWS-RessourcenBezahlen für genutzte Ressourcen, serverloses ModellHängt von der Hosting-Umgebung ab, kann bei Selbstverwaltung kosteneffizient sein
Hohe VerfügbarkeitRegionenübergreifende Bereitstellungen für hohe VerfügbarkeitVerwaltete HochverfügbarkeitManuelle Einrichtung für hohe Verfügbarkeit erforderlich

Bei der Auswahl des richtigen Container-Orchestrierungstools für dein Unternehmen ist es wichtig, deine spezifischen Anforderungen sorgfältig zu bewerten und sie mit den Funktionen und Vorteilen der einzelnen Tools zu vergleichen.

Bist du auf der Suche nach einem Tool, das verschiedene Arbeitslasten bewältigen kann? Oder suchst du ein einfaches und flexibles Tool, das leicht zu verwalten ist? Oder suchst du ein Tool, das sich auf Multi-Cluster-Management und Sicherheit konzentriert?

Sieh dir diese Optionen an und finde heraus, welche am besten zu deinen Bedürfnissen passt.

Fazit

In diesem Artikel haben wir die Funktionen und Vorteile von Kubernetes, Amazon ECS, Azure Container und anderen beliebten Container-Orchestrierungstools untersucht und sie Seite an Seite verglichen, um dir zu helfen, eine fundierte Entscheidung zu treffen. Wir haben auch reale Anwendungsfälle untersucht und die Vor- und Nachteile der einzelnen Optionen geprüft, festgestellt, dass Kubernetes weithin als Industriestandard für die Container-Orchestrierung gilt und sich gut für groß angelegte, produktionsreife Einsätze eignet. Wir haben auch gesehen, dass jedes Container-Orchestrierungs-Tool seine Vor- und Nachteile hat.

Was ist Infrastructure as Code (IaC)?

Was ist Infrastructure as Code (IaC)?

Infrastructure as Code beschreibt das Management und die Bereitstellung von Computer Data Centern durch maschinenlesbare Definitionsdateien. Anstatt physische Hardwarekonfiguration oder interaktive Konfigurationswerkzeuge zu verwenden.

Der Begriff “Infrastructure as Code” wurde erstmals von Andrew Clay Shafer und Patrick Debois im Jahr 2009 verwendet. Die beiden Entwickler arbeiteten damals bei Google an einem Projekt zur Automatisierung der Bereitstellung von physischen Servern. Seitdem haben viele Unternehmen das Konzept übernommen. Heutzutage ist es eine Best Practice für das Infrastrukturmanagement.

Infrastructure as Code (IaC) im Vergleich zur traditionellen Infrastrukturbereitstellung

Die Bereitstellung und Verwaltung von Data Centern war bisher zeitaufwändig und fehleranfällig. Sie beruht oft auf der manuellen Konfiguration von Servern und Netzwerkgeräten. Dies kann zu Konfigurationsabweichungen führen, bei welcher der tatsächliche Zustand der Infrastruktur von der beabsichtigten Form abweicht. Infrastructure as Code hilft, diese Probleme zu vermeiden, indem es eine wiederholbare und konsistente Methode zur Bereitstellung und Verwaltung der Infrastruktur bietet. Außerdem ist es so einfacher, Änderungen zu überprüfen und nachzuverfolgen und sie bei Bedarf wieder rückgängig zu machen.

Wann solltest du IaC für die Bereitstellung von Infrastruktur nutzen?

IaC eignet sich besonders gut für automatisierte Cloud-Umgebungen, in denen die Infrastruktur häufig bereitgestellt und verwaltet wird. Du kannst es aber auch in Data Centern vor Ort einsetzen. Vor dem Einsatz von IaC sind jedoch noch einige weitere wichtige Faktoren zu beachten. Wenn du Data Center vor Ort betreibst, kann die Einrichtung und Wartung von IaC mehr Aufwand bedeuten.

Infrastructure as Code kann von Vorteil sein, wenn du

  • dynamische oder komplexe Umgebungen nutzt,
  • deine Infrastruktur immer wieder veränderst und
  • es schwierig ist, die Änderungen zu verfolgen und zu verwalten.

Was sind die Vorteile von IaC?

Geringerer Zeit- und Kostenaufwand

IaC kann dazu beitragen, den mit der Bereitstellung und Verwaltung der Infrastruktur verbundenen Zeit- und Kostenaufwand zu reduzieren.

Verbesserte Konsistenz und Wiederholbarkeit

IaC kann die Konsistenz und Wiederholbarkeit von Infrastrukturbereitstellungs- und -verwaltungsprozessen verbessern.

Erhöhte Agilität

IaC kann die Agilität einer Organisation erhöhen, indem es die Bereitstellung und Verwaltung der Infrastruktur als Reaktion auf sich ändernde Anforderungen erleichtert.

Verbesserte Nachvollziehbarkeit und Rückverfolgbarkeit

IaC kann dazu beitragen, die Nachvollziehbarkeit und Rückverfolgbarkeit von Änderungen an der Infrastruktur zu verbessern.

Geringeres Risiko

Durch die Bereitstellung einer konsistenten und wiederholbaren Methode zur Bereitstellung und Verwaltung der Infrastruktur kann IaC kann dazu beitragen, das Risiko von Fehlern und Konfigurationsabweichungen zu verringern.

Was sind die Herausforderungen beim Einsatz von IaC?

Bei der Nutzung von IaC sind einige Herausforderungen zu beachten, z.B.:

  • Komplexität: IaC kann die Komplexität der Infrastruktur eines Unternehmens erhöhen. Das macht es schwieriger, Probleme zu verstehen und zu beheben.
  • Sicherheit: IaC erhöht die Sicherheitsrisiken, die mit der Infrastruktur einer Organisation verbunden sind.
  • Tools und Prozesse: IaC erfordert den Einsatz neuer oder ungewohnter Tools und Prozesse.

Wie fängt man mit IaC an?

Wenn du daran interessiert bist, IaC zu nutzen, gibt es ein paar Dinge, die du tun musst, um loslegen zu können:

  • Wähle ein IaC-Tool. Jedes hat seine eigenen Stärken und Schwächen. Wähle ein Tool, das gut zu den Bedürfnissen deines Unternehmens passt. Mehr über Tools erfährst du weiter unten.
  • Definiere deine Infrastruktur mithilfe eines deklarativen oder imperativen Ansatzes.
  • Stelle deine Infrastruktur mit dem IaC-Tool deiner Wahl bereit.
  • Verwalte deine Infrastruktur mit dem IaC-Tool deiner Wahl.

Um mit DevOps zu beginnen (oder deinen DevOps-Reifegrad zu verbessern), kannst unseren Artikel lesen: DevOps: How to get started – Wie der Einstieg gelingt

Tools, die du für Infrastructure as Code (IaC-Tools) verwenden kannst

  • Tools für das Konfigurationsmanagement: Verwende Puppet, Chef und Ansible, um die Konfiguration von Servern und anderen Infrastrukturkomponenten zu verwalten.
  • Tools für die Infrastrukturbereitstellung: Nutze Terraform und CloudFormation, um Infrastrukturressourcen bereitzustellen und zu verwalten.
  • Tools zur kontinuierlichen Integration und Bereitstellung: Verwende Jenkins und TravisCI, um den Aufbau, die Tests und die Bereitstellung der Infrastruktur zu automatisieren.
  • Container-Orchestrierungstools: Verwende Kubernetes und Docker Swarm, um Container zu verwalten und zu orchestrieren.

IaC ist ein Teil des großen Ganzen: CALMS und DevSecOps

Infrastructure as Code ist ein kleiner Teil der Automatisierung innerhalb des DevOps-Zyklus. Neben der Bereitstellung von Infrastruktur als Code liegt der Schwerpunkt von DevOps auf der Steigerung von Effizienz und Effektivität durch die Automatisierung von Schlüsselprozessen im Softwareentwicklungszyklus (SDLC), während CALMS sich auf die Automatisierung des Betriebs konzentriert. Dies ermöglicht ein schnelleres Feedback, kürzere Vorlaufzeiten und häufigere Einsätze.

Um IaC zu nutzen, ist also eine grundlegende DevOps-Reife erforderlich.

Erfahre mehr über CALMS in unserem Leitfaden: CALMS-Framework

Zusammenfassung

Infrastructure as Code (IaC) ist ein Begriff, der die Verwaltung und Bereitstellung von Computer Data Centern über maschinenlesbare Definitionsdateien beschreibt, anstatt über die physische Hardwarekonfiguration oder interaktive Konfigurationswerkzeuge. Viele Unternehmen haben das Framework bis heute übernommen. Heute ist es eine Best Practice für die Verwaltung der Infrastruktur.

IaC hilft, den Zeit- und Kostenaufwand für die Bereitstellung und Verwaltung der Infrastruktur zu reduzieren. Außerdem verbessert es die Konsistenz und Wiederholbarkeit der Infrastrukturbereitstellungs- und -verwaltungsprozesse und erhöht die Agilität eines Unternehmens.

Atlassian Cloud vs Data Center

Atlassian Data Center vs. Cloud – Für wen eignet sich was

Atlassian Cloud oder Data Center. Beide Bereitstellungsmethoden haben ihre Vor- und Nachteile. Wofür du dich entscheidest, hängt vor allem von deinen Anforderungen, der Anzahl der Nutzer, die du auf deinen Systemen brauchst, den Sicherheitsvorgaben deiner IT-Abteilung und der langfristigen Strategie deines Unternehmens ab.

Bevor wir näher darauf eingehen, welche Variante für dich in Frage kommt, wollen wir uns zunächst mit den verschiedenen Vor- und Nachteilen der einzelnen Systeme beschäftigen.

Atlassian Data Center

Das Atlassian Data Center ist eine selbst gehostete Methode, um deine Jira- oder Confluence-Systeme zu betreiben. Data Center haben die Eigenschaft, Serveranfragen über verschiedene Nodes zu leiten, die selbst gehostet werden. Fällt ein Node aus, sind die anderen in der Lage, die Last zu übernehmen und zu verarbeiten. Ein Serversystem mit verschiedenen Nodes lohnt sich, wenn eine Instanz 500 oder mehr Nutzer hat. Es gibt aber auch Fälle, in denen die Anzahl der User bei nur 250 liegt. Data Center können dir auf lange Sicht Geld sparen, vor allem wenn dein Unternehmen schnell wächst oder du expandieren willst.

Mit dem Atlassian Data Center kannst du die volle Kontrolle über deine IT-Infrastruktur übernehmen. Auf diese Weise kannst du:

  • die Ausfallzeiten auf ein selbst kontrolliertes Minimum reduzieren
  • die benötigte Infrastruktur auf deine Anforderungen skalieren (on demand)
  • Volle Kontrolle über Datenschutz und Datensicherheit
  • Kontrolle über die Updates für dein System
  • Unbegrenzte Anzahl von Nutzern

Data Center sind unabhängig von der Anzahl der Nutzer, die du für dein Unternehmen benötigst. Die Atlassian Cloud hingegen ist derzeit auf 20.000 Nutzer begrenzt. (Bei Atlassian werden derzeit bis zu 50.000 Nutzer getestet.)

Atlassian Cloud

Die Cloud ist da, und sie wird nicht wieder verschwinden. On-Premise-Lösungen sind keine Option mehr (zumindest für die meisten Unternehmen). Die Frage ist jedoch, ob du dem Trend folgen und ein Early Adopter sein willst oder ob du die Chance verpasst, zukunftssichere Technologien einzusetzen.

Die serverlose Infrastruktur (Cloud) bietet Organisationen auf der ganzen Welt viele Vorteile. Außerdem zahlt sich die ständige Arbeit von Atlassian an der Optimierung seines Produkts aus: Bedenken in Bezug auf Sicherheit und Compliance werden ernst genommen und es werden entsprechende Schritte unternommen, um die Lücken zu schließen. Werfen wir einen Blick darauf, warum du die Cloud-Option für dein Unternehmen in Betracht ziehen solltest, nachdem du jetzt weißt, wie sie in den Atlassian-Produkten funktioniert:

  • 100% Verfügbarkeit: Die Atlassian Cloud hat eine garantierte Verfügbarkeit von 99,95%.
  • Schnellere Konfiguration: Neue Instanzen lassen sich innerhalb weniger Minuten einrichten und konfigurieren.
  • Automatische Updates: Die Atlassian Cloud erhält Updates, sobald sie verfügbar sind. Keine manuellen Updates mehr *????*.
  • Gesteigerte Produktivität: Nutze moderne Tools, Ansätze und Funktionen zu deinem Vorteil und spare wertvolle Ressourcen (Zeit)
  • Reduzierte Verwaltungskosten: Die Zeit der physischen Hardware, der manuellen Wartung, der versunkenen Kosten und der Upgrades ist endlich vorbei. Durch den Wechsel in die Cloud sparst du eindeutig Geld, da die Infrastrukturkosten wegfallen.
  • Du zahlst für das, was du nutzt und wann du es nutzt -> Kosteneffizienz

Hier erfährst du mehr über das Hosting von Atlassian-Anwendungen auf Data Center oder in der Cloud.

Atlassian Cloud oder Data Center – Was ist wann zu wählen?

Data Center werden von Unternehmen gewählt, wenn ihre Atlassian-Anwendungen “geschäftskritisch” geworden sind. Frag dich, wie hoch die Kosten eines Systemausfalls wären und wie wertvoll die Atlassian-Anwendungen für dein Unternehmen sind. Wenn dein gesamtes Entwicklungsteam aufgrund eines Systemausfalls nicht arbeiten könnte, wäre das besonders nachteilig für dein Unternehmen, da du für die geleistete Arbeit bezahlst.

Außerdem haben bestimmte Organisationen ein erhöhtes Bedürfnis nach Datenkontrolle und Datenschutz. Das Hosting deines eigenen Atlassian Data Centers auf deinen eigenen Servern bedeutet, dass du die volle Kontrolle über die Instandhaltung und Wartung der Server hast, aber auch die volle Kontrolle über die dir zur Verfügung stehenden Daten. Für Unternehmen mit hohen Sicherheitsanforderungen, wie Banken oder Krankenkassen, kann dies ein entscheidender Faktor sein.

Die Cloud ist eine langfristige Investition, die es Unternehmen ermöglicht, zu skalieren, die Produktivität der Mitarbeiter zu verbessern, die Geschwindigkeit zu erhöhen und die Innovation zu steigern.

Bei beiden Modellen – Cloud und Data Center – profitierst du von Zuverlässigkeit, erhöhter Produktivität und Kosteneinsparungen. Server-Nutzer, die ihre IT-Infrastruktur weiterhin selbst verwalten wollen, sollten einen Wechsel zum Data Center in Betracht ziehen.

Wie du sehen kannst, haben beide Modelle ihre Vorteile. Letztendlich hängt es von deinen Anforderungen ab, ob du dich für die Cloud oder Data Center entscheidest.

Brauchst du Hilfe bei der Bewertung der verschiedenen Möglichkeiten? Unser Atlassian-Experte hilft dir, die richtige Lösung für deine Anforderungen und Bedürfnisse zu finden.

Nimm noch heute Kontakt mit uns auf.

Container8 DevOps as a Service Platform

Keynote Container8 – The all in one DevOps as a Service Platforms

End of last year, we launched Container8 – a DevOps as a Service platform. DevOps, in general, can affect an entire organization and implement a completely new culture and form of collaboration between teams. Yet DevOps also standardizes tools, processes and approaches throughout teams and changes the way IT Teams (and even business teams) tackle digital projects. Container8 brings your DevOps Culture to the next level, by enabling software teams to release faster, more often, and autonomously and greatly reduce the complexity of a self-managed DevOps Platform. This allows an entire organization to bring digital products to market faster and more streamlined.

Serview Festival – An event for IT champions

In November 2021, we not only launched Container8 but also had the opportunity to directly present it to a large audience of IT and DevOps professionals as part of a Keynote at Serview Festival.

After two talks from Dr Dominic Lindner and Mario Willecke on Wednesday it was time for the Keynote: DevOps-as-a-Service-Platform by Benjamin Nothdurft from codecentric AG.

In these 45 Minutes, he explained the process of an occurring incident at one of his global clients to directly fix it in the next steps. He talks about, how to fix an incident using three different approaches, and why he chose to proceed with the DevOps as a service platform (Container8).

To learn more about the keynote and how to approach fixing an incident in IT, have a look at the Keynote itself down below.

The evolution of DevOps to an All-in-one DevOps as a Service platform

DevOps goes back to the year 2000 as the first agile method of working on digital projects we introduced. Yet the term DevOps was introduced mid-2007 by the Belgian IT professional Patrick Debois when he became frustrated by the friction between developer and operations teams. By 2008 the first Velocity event was held and Debois raised awareness to DevOps to a worldwide audience. Following this, DevOps wasn’t something to be just a one-time thing. It became a guideline and method everyone wanted.

Yet as humans tend to be holding on to old and traditional approaches, DevOps still hasn’t gotten a foothold in all organizations. Doing things as they’ve always been done and breaking habits is hard. Teams always had a hard time talking to others outside of their scope (this isn’t just an IT thing, but common in business in general).

But DevOps is more than just breaking down silos and bringing every stakeholder on board. It’s about providing the right toolset for everybody to use. It’s about implementing a culture of trust, automation to simplify work and speeding up recurring tasks, learning from past mistakes, collecting insightful data by measuring every aspect of the workflow (from development to provisioning, release and customer experience) and sharing information. The CALMS framework was born.

Container8 takes the DevOps approach to the next level.

What is Container8?

Container8 is an unblocking, low dependency, and highly automated DevOps as a Service Platform, integrating your existing tools or providing a managed industry-standard toolset to make DevOps easy.

It provides real value with best practices and a great onboarding experience and usability for automation, security, transparency, and collaboration in a psychologically safe environment. In this safe environment, people are not afraid to bring their full self to work and bad news is a learning opportunity rather than a reason for scolding or blaming people.

Container8 enables you to develop, test, and deploy with ease by using a high-performance toolchain that’s always available, up-to-date, and easy to use.

Release more often

Save valuable time at your next release by using a fully automated and customized product pipeline to your advantage. Fast MTTR and low complexity small releases reduce the risk in your product pipeline.

Keep a complex microservice environment secure

Reduce costs of your managed toolchains with the included, proactive tool maintenance and on-demand support.

Bring different departments together

Easily bring teams of different departments together and collaborate on software releases by automating recurring tasks and workflows.

Enable real agility, delivering constant results in large complex environments.

The Service Platform helps you to automize repetitive tasks and processes and creates reliable systems to your advantage. It integrates itself without friction into your existing DevOps Culture and the CALMS model.

Want to bring DevOps to the next level? Get a deep understanding of Container8 here.

AWS Consulting Partner

XALT wird AWS Consulting Partner

Seit 2016 helfen und begleiten wir IT-Teams auf ihrem Weg bei dir Umsetzung von DevOps-Methoden, Cloud-Konzepten und agilen Workflows. Anfang des Jahres erhielt XALT bereits die Atlassian Gold Partner Auszeichnung. Ende Juli 2021 war es dann endlich so weit – wir wurden zum AWS Consulting Partner ernannt.

Was wir bei XALT mit dieser Zertifizierung vorhaben? Und wie wir mit diesen neuen Möglichkeiten und in Zukunft Unternehmen dabei unterstützen, DevOps erfolgreich zu implementieren oder die verwendete Softwarelandschaft in die Cloud zu migrieren erfahren Sie in diesem Artikel.

Zukunftsfähige Unternehmen benötigen eine ausfallsichere IT-Infrastruktur

Die Cloud Migration einer bestehenden Softwarelandschaft war noch nie so relevant wie heute. Performance, Downtimes und Verfügbarkeit sind wichtige Faktoren den direkten Einfluss auf die Geschäftsfähigkeit eines Unternehmens haben und zusätzlich Auswirkungen auf Kundenzufriedenheit. 

Die Ansprüche von Kunden und Usern von heute sind weitaus vielfältiger und gefestigter als noch vor einigen Jahren. Durch grenzenlose Verfügbarkeit des Internets und dessen direkte Auswirkungen auf den Arbeitsplatz ist es eine Notwendigkeit geworden, dass Produktivsystem dauerhaft und von überall verfügbar sind. 

Durch die Nutzung von AWS Cloud Computing Lösungen ist es uns gelungen, diese Ausfälle auf ein Minimum für unsere Kunden zu reduzieren und Verfügbarkeiten von 99,95% und mehr zu gewährleisten. Mit Lösungen wie Blue-Green Deployments und der Verwendung von Docker, Kubernetes, Atlassian Apps und der Implementierung der DevOps Kultur, erzielen wir zudem auch, dass Teams verschiedenster Abteilungen einfacher und effizienter zusammenarbeiten können. Und erzielen dadurch direkte und vor allem positive Auswirkungen auf die Unternehmensziele. 

Die Pläne von XALT für 2021 und 2022 auf einen Blick

Zusammen mit der neuen AWS Partnerschaft setzt XALT an mehreren Punkten an. So geht es weiter bei XALT.

  • Migration von bestehenden Lösungen, Atlassian Plugins und Apps in die Cloud, um diese fit für die Zukunft zu machen und unseren bestehenden Kunden und Partnern tatkräftig zur Seite zu stehen
  • Weiterentwicklung unserer bestehenden Apps und Entwicklung neuer Ansätze. Und bereitstellung von Jira Sync als Stand-Alone 3rd-Party Integration für Jira Software. 
  • Wachstum in der DACH-Region und den USA.
  • Ausbau der Teams in den Bereichen Infrastruktur, DevOps, Entwicklung, Sales und Marketing, verteilt auf unsere Standorte in München und Leipzig. 

Cloud Computing sorgt für mehr Flexibilität

Für viele Unternehmen werden 2020 und 2021 als Jahr des Wandels und der Neuordnung in die Firmenchronik eingehen – in diesem Jahr wird das Potenzial von Cloud Computing deutlich. Angesichts von Homeoffice-Organisation und Remote-Work ist eine reibungslos funktionierende Softwareumgebung mit digitalen Prozessen und Tools zum Schlüssel für die Agilität und den langfristigen Erfolg eines Unternehmens geworden.

In diesem Sinne spielt Cloud Computing auf Basis von AWS eine entscheidende Rolle. 

“Wir müssen verinnerlichen, dass ein Unternehmen neben seinen Mitarbeitern:innen auf dauerhafte Verfügbarkeit von Software angewiesen ist. Dazu gehören sämtliche Tools eines Unternehmens mit denen die Mitarbeiter:innen tagtäglich arbeiten. Erst, wenn Unternehmen dies gewährleisten, können alle User sich voll und ganz auf Ihre Arbeit konzentrieren und wirklich erfolgreich sein.” – Philipp G.

Die Migration von Software in die Cloud – wie beispielsweise Jira und Confluence von Atlassian – steht derzeit bei vielen deutschen Unternehmen noch am Anfang. Der große Vorteil von Cloud Migrationen von Atlassian Tools ist des Weiteren, dass auch Geschäftsprozesse digitalisiert und automatisiert werden können. Damit ergeben sich weitere Einsparungen und positive Effekte auf die Unternehmensziele.

Werde Teil des Teams!

Arbeite zusammen mit uns an spannenden Projekten und Lösungen für brennende IT Fragen aus den Bereichen Atlassian, DevOps und Cloud Technologien.

Digitale Transformation und Cloud Computing muss weitergedacht werden

Die Pandemie hat vieles verändert. Remote Work und Home Office sind heutzutage unweigerlich mit der modernen Arbeitswelt verbunden. Jedes Unternehmen muss für sich selbst entscheiden, wie es diese neue Realität lebt und prägt.

Hinsichtlich Digitaler Transformation und Cloud Computing bedeutet das: Implementierung neuer Methoden und Aufbau modernster IT-Infrastruktur. Es ist an der Zeit, nach vorne zu schauen und Dinge in die Hand zu nehmen, die unweigerlich, schon Heute für das 21. Jahrhundert stehen. Es ist Zeit sich für den weiteren Wandel zu rüsten und allen Mitarbeitern:innen täglich genutzte Tools überall und zu jederzeit zur Verfügung zu stellen, die sie für ihre wertschöpfende Arbeit benötigen. 

→ Success Story Cloud: Hier erfahren Sie, wie Weltbild mit Hilfe der Migration des Webshops in die Cloud seine Service- und Infrastrukturstabilität verbessern konnte.

Atlassian Hosting

Atlassian Hosting: Technische Herangehensweise

Es gibt etliche Möglichkeiten von Atlassian Hosting. Server, Data Center oder auch direkt in der Atlassian Cloud. Eine dieser Möglichkeiten ist es Atlassian Software direkt auf deinen eigenen Server oder bei AWS / Azure (Cloud Provider) zu hosten.

In diesem kurzen Artikel findest du alle Informationen und Requirements zum hosten von Atlassian Software.

Atlassian Hosting

Atlassian Hosting: Voraussetzungen

Offizielle Domain mit einem DNS-Server, auf dem Einträge hinzugefügt werden können und die aufgelöst werden können.

DNS-Einträge, die auf die externe IP des Servers zeigen, auf dem die Atlassian-Anwendung laufen soll.

Wenn Route 53 verwendet wird, können wir mit dem certbot und letsencrypt Wildcard-Zertifikate für die gesamte Domain generieren.

Anwendungsserver

Server-Bereitstellung

Als Applikationsserver verwenden wir in der Regel Ubuntu und lassen Ansible laufen, um ihn zu konfigurieren. Ansible nimmt dann einige Grundkonfigurationen vor und installiert benötigte Software, wie Docker auf dem Host. Es werden auch einige Docker-Anwendungen auf einem Host ausgerollt, wie der Reverse-Proxy.

Reverse-Proxy

Als Reverse-Proxy verwenden wir das Docker-Image xalt/nginx. Dieses kann sich an den Docker-Socket anhängen und ist dadurch in der Lage zu lesen, welche Docker-Container auf dem Host laufen. Wenn eine Anwendung bestimmte Parameter gesetzt hat, wird die Nginx-Konfiguration automatisch geändert und neu geladen, Upstream- und Server-Konfigurationen werden für die angegebenen virtuellen Hostnamen und Ports erstellt. Wenn der Hostname mit einem verfügbaren SSL-Zertifikat übereinstimmt, wird auch ein SSL-Listener für diese Anwendung konfiguriert. Der Reverse-Proxy kann Inhalte über 80 (http) und 443 (https) bereitstellen, diese Ports werden auf die Host-Ports 80 und 443 montiert.

Managed Atlassian Hosting

Reduzieren Sie die Betriebskomplexität und vereinfachen Sie den Betrieb Ihrer Atlassian-Produkte wie Confluence, Bitbucket und Jira.

Lizenzmanagement

Es wird ein Side-Cart-Container bereitgestellt, der Let’s Encrypt-Helfer. Dieser Container hat ebenfalls Lesezugriff auf den Docker-Socket, und wenn ein Container Let’s Encrypt-Parameter bereitstellt, initiiert er eine Let’s Encrypt-Zertifikatsherausforderung und speichert die Zertifikate, damit der Reverse-Proxy-Container sie für die https-Verbindungen verwenden kann.

Docker-Anwendung

Alle Docker-Anwendungen werden in einer Datei docker-compose.yml beschrieben, die von Ansible bereitgestellt wird. JIRA/ Confluence und die PostgreSQL-Datenbank haben ihr Home-Verzeichnis in separaten Verzeichnissen auf der gleichen Ebene wie die docker-compose.yml eingebunden. Auf diese Weise befinden sich die Anwendungskonfiguration und die Anwendungsdaten im gleichen Bereich und können leicht gepflegt werden.

JIRA/ Confluence

Dieser Docker-Container führt einen Tomcat mit der JIRA-Anwendung aus. Der Tomcat-Connector muss über Environment-Variablen des Containers korrekt konfiguriert werden. Gleiches gilt für die Anwendungsüberwachung über NewRelic. Die Heap-Parameter können auf die gleiche Weise konfiguriert werden und natürlich müssen die Reverse-Proxy-Parameter gesetzt werden, ebenso wie die Letsencrypt-Parameter, falls erforderlich.

Für Testsysteme haben wir noch ein paar weitere Features implementiert, um die Wiederherstellung der persistenten Home-Daten via ssh rsync und die Modifikation der Datenbank mit Liquibase zu ermöglichen. So können z.B. die Basis-URL oder die Applikationslinks geändert werden.

PostgreSQL

Wir verwenden in der Regel einen PostgreSQL-Container und spawnen ihn in einem separaten, anwendungsspezifischen Docker-Netzwerk unter dem DNS-Namen “db”, der nur für die in dieser docker-compose.yml-Datei angegebenen Container erreichbar ist. Benutzername, Passwort und Datenbank werden als Umgebungsparameter des Containers angegeben. Die Datenbank für JIRA/ Confluence kann auch MySQL oder OracleSQL sein, wir haben uns aber aus Kompatibilitätsgründen für PostgreSQL entschieden.

Für Testsysteme haben wir ein paar weitere Features implementiert, um die Wiederherstellung der persistenten Home-Daten per ssh rsync zu ermöglichen.

Backup

Dieser Container führt im Grunde einen Cron-Job aus, der den JIRA/Confluence- und PostgreSQL-Container herunterfährt und die persistenten Home-Ordner per rsync auf den Backup-Server überträgt. Dieser Container wird ebenfalls durch mehrere Umgebungsparameter konfiguriert, wie z.B. die Cron-Job-Zeit, den Namen des Backup-Servers und benötigt außerdem einige Mount-Punkte, wie z.B. den Docker-Socket, um Docker-Container von innerhalb eines Docker-Containers herunterzufahren und zu starten. Außerdem werden weitere Mounts benötigt, um zu lokalisieren, wo sich die Daten befinden, die gesichert werden sollen.

Web-Anfrage

Wenn auf eine Docker-Anwendung zugegriffen werden soll, gibt der Benutzer in der Regel einen DNS-Namen in den Browser ein. Die IP versucht, durch eine DNS-Anfrage an R53 aufgelöst zu werden. Die Antwort ist in der Regel ein A-Record, der auf den Server zeigt, auf dem die Anwendung läuft. Der Browser baut eine Verbindung zum Port 80 des Anwendungsservers auf. Dort leitet der Docker-Proxy die Anfragen an den Nginx-Reverse-Proxy weiter, der auf https umleitet, wenn ein gültiges Zertifikat für den virtuellen Hostnamen der Anwendung existiert. Wenn diese Direktive vom Browser ausgeführt wurde, wird die Anfrage auf Port 443 am Applikationsserver angenommen. Diese geht an den Reverse-Proxy, der sie dann an den konfigurierten Upstream, die Atlassian-Anwendung, sendet und die Antwort an den anfragenden Browser ausliefert, um dort weitere Ressourcen zu laden und im en die heruntergeladene Webseite zu rendern.

Atlassian Hosting: Backup-Server

Dieser Host wird normalerweise mit großem Speicher bereitgestellt, um die Anwendungsdaten mehrerer Docker-Anwendungen zu speichern. Er wird ebenfalls über Ansible provisioniert.
Hier wird standardmäßig nicht Docker installiert, sondern rsync und rsnapshot, die für unser Backup-Konzept die wichtigsten Bestandteile sind. Rsync wird für den Datentransport von Host zu Host, aber auch für rsnapshot eingesetzt.
Die übliche Konfiguration für den Aufbewahrungsmechanismus erlaubt die Speicherung von 7 täglichen, 4 wöchentlichen und 12 monatlichen Backups. Dabei wird für die Sicherung die Verwendung von Hard-Links erzwungen, um Platz zu sparen, wenn eine Datei seit dem letzten Tag nicht mehr angefasst wurde.
Auf diese Weise wird etwa das 2,5-fache der ursprünglichen Anwendungsgrößen verbraucht (rsync der Daten vom Anwendungsserver zum Backup-Server verbraucht 1 + die rsnapshot-Kopie davon und die entsprechenden Deltas nehmen noch einmal die 1,5-fache Größe ein), um Backups zu haben, die bis zu 12 Monate zurückgespielt werden können.

Mehr zu Managed Atlassian Hosting

Das ganze Konzept erfordert die Erzeugung eines SSH-Schlüssels auf dem Applikationsserver und die Speicherung des öffentlichen Schlüssels in den autorisierten Schlüsseln des Root-Benutzers des Backup-Servers:

  1. Synchronisieren der Daten (rsync) vom Backup-Container (Anwendungsserver) zum Backup-Server.
  2. Rsnapshot wird durch eine Cronjob-Logik ausgelöst, um die verschiedenen Aufbewahrungskonfigurationen einmal pro Tag, Woche und Monat auszuführen.
  3. Eine Docker-Applikation wird mit den korrekt angegebenen Backup-Parametern gestartet und wird diese Daten vom Backup-Server rsyncen, bevor die Applikation startet.

Die Daten, die wiederhergestellt werden sollen, können im Docker-Container von JIRA/Confluence und PostgreSQL konfiguriert werden. Wenn das aktuellste Backup benötigt wird, können die Zielordner des rsync-Backups angegeben werden. Wenn jedoch Daten eines älteren Backups wiederhergestellt werden sollen, benötigen wir hier den richtigen rsnapshot-Pfad.

Managed Atlassian Hosting

Reduzieren Sie die Betriebskomplexität und vereinfachen Sie den Betrieb Ihrer Atlassian-Produkte wie Confluence, Bitbucket und Jira.

Lizenzmanagement