Microservices: Was versteht man darunter und welche Vorteile bieten sie?

Continuous Delivery (CD) ist eine Methode, bei der Software mithilfe von Automatisierung in kurzen Iterationen freigegeben wird

Teste Compass kostenlos

Improve your developer experience, catalog all services, and increase software health.

Bis etwa 2013 wurden bei der Entwicklung von Unternehmenssoftware in der Regel Anwendungen als einzelne Einheiten mit großen Codebasen konstruiert, d. h. als eine monolithische Architektur. Als Software komplexer wurde und Cloud Computing an Popularität gewann, wurde dieser Ansatz weniger praktikabel.

Das Aufkommen von Software-as-a-Service-Produkten (über die Cloud bereitgestellte Anwendungen) ermöglichte es Unternehmen, Anbieter wie Amazon Web Services zu nutzen, um neue Server zu erstellen und schnell Redundanz hinzuzufügen. Dadurch wurde sichergestellt, dass die Services während der Upgrades online blieben. Es war auch der Beginn einer neuen Ära der Geschwindigkeit und Agilität. Die Benutzer erwarteten nun schnelle Upgrades und Verbesserungen. Dies veranlasste Unternehmen dazu, ihre Entwicklungsprozesse zu ändern.

Unternehmen begannen, Anwendungen in kleinere, unabhängige Services oder Microservices aufzuteilen. Anstatt beispielsweise einen Messaging-Posteingang als Teil einer monolithischen E-Commerce-Plattform einzubinden, erstellten sie einen separaten Microservice für diese Funktion.

Parallel dazu begannen Entwickler, in kleineren, spezialisierteren Gruppen zu arbeiten, die einzelne Services modifizierten und verbesserten, ohne die gesamte Anwendung zu gefährden. Diese Gruppen übernahmen oft auch die Verantwortung für den Betrieb ihres Codes – ein Modell namens DevOps. Um diese Änderungen zu ermöglichen, begannen die Projektmanager, neue Methoden zu entwickeln, wie Agile, dabei werden Projekte in kleinere, häufigere Releases unterteilt.  

Im Folgenden erfährst du mehr über die Anatomie von Microservice-basierten Anwendungen. Außerdem wird erläutert, wie  Compass von Atlassian die Komplexität reduziert und Entwicklern gleichzeitig ermöglicht, die Vorteile dieses Architekturmodells zu nutzen.

Was sind Microservices?

Ein Microservice ist eine Funktion, die für eine einzelne Logik verantwortlich ist (außer für Domain-Microservices, wie unten erklärt). Mehrere Microservices werden kombiniert, um verteilte Anwendungen wie Jira Software zu erstellen.

Es gibt drei Arten von Microservices:

  1. 1

    Domain microservices loosely couple services with related functionality. 

  2. 2

    Integrations-Microservices erleichtern die Interaktion zwischen Anwendungen, die nichts miteinander zu tun haben. 

  3. 3

    Microservices für Aufgabeneinheiten führen einzelne Funktionen aus. 

Microservices interagieren mithilfe von Anwendungsprogrammierschnittstellen (APIs) miteinander. Entwickler, die an einzelnen Services arbeiten, können die internen Abläufe der anderen Microservices erlernen, was ein weiterer Vorteil gegenüber einer monolithischen Architektur ist.

Eine auf Microservices basierende Architektur bietet viele Vorteile, erhöht aber auch die Komplexität. Aus diesem Grund hat Atlassian Compass entwickelt – um Unternehmen die Skalierung zu erleichtern. Diese Developer-Experience-Plattform führt alle Informationen zu den gesamten Entwicklungsergebnissen und zur Teamzusammenarbeit an einem zentralen, durchsuchbaren Ort zusammen.

Die wichtigsten Prinzipien von Microservices

Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components. 

Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.

These attributes make microservices-based distributed applications flexible and easy to maintain.

Vorteile von Microservices

Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build. 

Some other benefits of microservices include:

Widerstandsfähigkeit und Fehlerisolierung

In monolithischen Architekturen betrifft ein Fehler betrifft die gesamte Anwendung. Microservices sind jedoch unabhängig. Ein Fehler hat keine Auswirkungen auf die anderen Teile der Anwendung.

Flexibilität

Die Aufteilung von Anwendungen in kleinere Einheiten beschleunigt die Entwicklung. Sie ermöglicht Teams, Software schneller zu entwickeln, zu testen und bereitzustellen.

Technologische Vielfalt

Microservices ermöglichen es Entwicklern, die richtigen Tools und Technologien für den Job auszuwählen. Das erhöht die Effizienz und Produktivität.

Verbesserte Wartung

Die Möglichkeit, einzelne Komponenten zu testen, macht es einfacher, Fehler zu finden und zu beheben, ohne die gesamte Anwendung offline zu nehmen.

Widerstandsfähigkeit und Fehlerisolierung

In monolithischen Architekturen betrifft ein Fehler betrifft die gesamte Anwendung. Microservices sind jedoch unabhängig. Ein Fehler hat keine Auswirkungen auf die anderen Teile der Anwendung.

Flexibilität

Die Aufteilung von Anwendungen in kleinere Einheiten beschleunigt die Entwicklung. Sie ermöglicht Teams, Software schneller zu entwickeln, zu testen und bereitzustellen.

Technologische Vielfalt

Microservices ermöglichen es Entwicklern, die richtigen Tools und Technologien für den Job auszuwählen. Das erhöht die Effizienz und Produktivität.

Verbesserte Wartung

Die Möglichkeit, einzelne Komponenten zu testen, macht es einfacher, Fehler zu finden und zu beheben, ohne die gesamte Anwendung offline zu nehmen.

Herausforderungen der Microservice-Architektur

Microservices-based architecture has many benefits, but it also comes with challenges. 

One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.

Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.

Wofür wird die Microservices-Architektur verwendet?

Große Verbraucher-Websites nutzen oft Hunderte oder Tausende von Microservices. Microservices sind in den folgenden Anwendungsfällen und Branchen besonders hilfreich:

  • E-commerce-Websites wie eBay nutzen separate Microservices für Einkaufswagen, mobile Apps und Nachrichten.
  • Finanzinstitute wie die Bank of America nutzen Microservices, um mit externen Services zu kommunizieren. Sie verwenden sie auch, um Funktionen wie Benutzerautorisierungen und die Anzeige von Transaktionen abzuwickeln.
  • Social-Media-Plattformen wie Instagram und Facebook nutzen Microservices, um die News-Feeds, Nachrichten, Benachrichtigungen und Freundenetzwerke der Benutzer anzuzeigen.

Best Practices für die Verwaltung von Microservices

Im Laufe der Jahre haben Entwickler Dutzende wichtige Best Practices für die Entwicklung von Microservices erstellt. Im Folgenden sind nur ein paar Beispiele aufgeführt:

  • Das Single-Responsibility-Prinzip (SRP) legt fest, dass jedes Modul bzw. jeder Microservice nur eine Funktion haben sollte. Die Continuous Integration (CI) von SRP ist eine Methode zur Quellcodekontrolle, die Qualitätsüberprüfungen für Code automatisiert, bevor sie in einem Projekt zusammengeführt werden. Dadurch wird die Geschwindigkeit erhöht, da kein separater Qualitätssicherungsprozess erforderlich ist. Diese Best Practice von DevOps sorgt für mehr Geschwindigkeit. Auf CI folgt Continuous Delivery (CD). Dabei werden automatisierte Build-Tools ausgeführt, um die Software einsatzbereit zu halten.
  • API-Gateways vereinfachen die Kommunikation zwischen Microservices, verwalten Authentifizierung und Autorisierung und erhöhen die Sicherheit. 
  • Asynchrone Kommunikation wischen Microservices bewahrt die Autonomie und reduziert Abhängigkeiten, die die Anwendungsfunktion verlangsamen könnten.  
  • Die Versionierung von Microservices ist entscheidend, wenn Entwickler wichtige Änderungen implementieren, wie zum Beispiel das Entfernen eines gesamten Vorgangs. Diese Vorgehensweise sorgt für reibungslose Übergänge und minimiert die Wahrscheinlichkeit von Serviceunterbrechungen.  

Open DevOps von Atlassian, unterstützt von Jira, macht es Teams leicht, Atlassian- und Partnertools automatisch zu integrieren, sodass sie sich auf die Entwicklung und den Betrieb von Software konzentrieren können.

Eine bessere Verwaltung deiner Microservices-Architektur mit Compass

Compass von Atlassian ist eine Entwickler-Plattform, die die verteilten Softwarearchitekturen und die Teams, die daran zusammenarbeiten, an einem Ort vereint. Es bietet einen praktischen Überblick über alle Komponenten und Services, an denen ein Team arbeitet. Darüber hinaus ist auch ein Softwarekomponentenkatalog enthalten, in dem Entwickler mühelos finden, wonach sie suchen.

Compass ermöglicht eine einfache Komponentenverwaltung, Eigentumsverfolgung und Beziehungsüberwachung. Auch Änderungen in Echtzeit werden verfolgt.

Die Integration von Compass in deine Entwicklungsumgebung ist einfach, und zwar aufgrund der anpassbaren Benutzeroberfläche und der Kompatibilität sowohl mit internen Tools als auch mit Tools von Drittanbietern. Erfahre, wie du deine Microservices-Architektur mit Compass verwaltest und wie die Plattform unzusammenhängende Informationen an einem einheitlichen, zentralen Ort zusammenführt.

Microservices: Häufig gestellte Fragen

What tools do people commonly use in microservices?

Unternehmen verwenden oft Containerisierungstools wie Kubernetes und Docker. Auch API-Gateways zwischen Microservices und ihren Kunden kommen gerne zum Einsatz. Diese Gateways führen API-Traffic-Funktionen wie Authentifizierung, Zugriffskontrolle und Load Balancing aus.

Wie unterscheiden sich Microservices von einer monolithischen Architektur?

Monolithische Architekturen sind große Codebasen, die als ein System funktionieren. Systemausfälle für Updates und Debugging sind hier unumgänglich. Microservices-Architekturen sind verteilte Anwendungen mit kleineren, unabhängigen Funktionspaketen. Entwickler können diese Module aktualisieren, verbessern und debuggen, ohne die gesamte Anwendung offline zu nehmen. Das vereinfacht die Skalierung und beschleunigt die Entwicklung.

Wie wirken sich Microservices auf DevOps aus?

Wer sich mit DevOps auskennt, weiß, dass Continuous Integration und Continuous Delivery (die DevOps-CI/CD-Pipeline) die tragenden Säulen der DevOps-Methoden sind. Der modulare Charakter von Microservices passt perfekt zu diesem Ansatz. Microservices ermöglichen es Entwicklern, schnell kleine, häufige Releases zu erstellen, zu testen und bereitzustellen.

Werde Teil der Atlassian Community, um weitere Artikel und Diskussionen über Microservices zu erhalten.

Für dich empfohlen

Compass-Community

Tutorial: Erstellen einer Komponente

Erste Schritte mit Compass (kostenlos)