Künstliche Intelligenz 

Produktivitätssteigerung. Innovationskatalysator. Kreativer Mitarbeiter. Unabhängig von Ihrer Vision für KI bietet Unisys die Lösungen, das Fachwissen und die Tools, um das volle Geschäftspotenzial Ihres Unternehmens zu realisieren.
Entdecken

Cybersicherheit

Unisys bietet Geschäftslösungen mit integrierter Sicherheit, um Ihre digitalen Assets zu schützen, Bedrohungen entgegenzuwirken, das Vertrauen der Kunden zu gewinnen und Compliance-Standards zu erfüllen.
Erfahren Sie mehr

Beratung

Die Art der Arbeit verändert sich. Lassen Sie uns Ihr Geschäft gemeinsam weiterentwickeln. Machen Sie Ihr Unternehmen mit den Consulting-Dienstleistungen von Unisys zukunftssicher und entwickeln Sie sich als digitales Unternehmen voran.
Entdecken

Kundenreferenzen

Entdecken Sie Videos und Geschichten, in denen Unisys Unternehmen und Regierungen hilft, das Leben ihrer Kunden und der Bürger zu erleichtern.
Entdecken

Forschung

Begeben Sie sich auf eine Reise in eine widerstandsfähige Zukunft und erhalten Sie Zugang zu den umfassenden Forschungsergebnissen von Unisys, die in Zusammenarbeit mit führenden Branchenanalysten und Forschungsunternehmen entwickelt wurden.
Entdecken

Ressourcen-Center

Finden, teilen und erkunden Sie Assets zur Unterstützung Ihrer wichtigsten betrieblichen Ziele.
Entdecken

Karriere

Neugier, Kreativität und ständiger Wunsch nach Verbesserung. Unsere Mitarbeiterinnen und Mitarbeiter gestalten die Zukunft, indem sie über ihr Fachwissen hinausgehen und Lösungen zum Leben erwecken.
Entdecken

Investor Relations

Wir sind ein globales Unternehmen für Technologielösungen, das sich der Förderung des Fortschritts für die weltweit führenden Unternehmen verschrieben hat.
Entdecken

Partner

Wir arbeiten mit einem Ökosystem von Partnern zusammen, um unseren Kunden hochmoderne Produkte und Dienstleistungen in vielen der größten Branchen der Welt zu bieten.
Entdecken

Sprachauswahl

Ihre aktuelle Sprachauswahl ist:

Deutsch
13 Min Read

Microservices für das Unternehmen: Design, Entwicklung und Bereitstellung

Februar 28, 2022 / Unisys Corporation

Kurzfristig? Entdecken Sie diese wichtigen Erkenntnisse:

  • Bei der Gestaltung einer Microservices-Architektur ist es wichtig:
    • Applications in Business Capabilities zerlegen.
    • Erstellen Sie die Services mit den richtigen Tools und Techniken.
    • Konzipieren Sie die Architektur, um die notwendigen Teile der Services freizulegen.
    • Verwenden Sie für die Kommunikation geeignete Protokolle.
    • Die Architektur dezentralisieren.
    • Stellen Sie die Dienste mit verbraucherorientierten Verträgen bereit.
  • Zu den Tools und Frameworks, die zur Implementierung von Microservices verwendet werden, gehören REST, Consul, Oracle Helidon und Kubernetes.
  • Zu den Vorteilen von Microservices gehören verbesserte Flexibilität, Skalierbarkeit und Wartungsfreundlichkeit.
  • Zu den Herausforderungen von Microservices können eine erhöhte Komplexität und Schwierigkeiten beim Debuggen und Testen gehören.
  • Für die erfolgreiche Implementierung von Microservices sind eine klare Geschäftsstrategie und klar definierte Kommunikationsprotokolle wichtig.
  • Wichtig sind auch die richtigen Tools und Technologien sowie ein kompetentes und erfahrenes Entwicklungsteam.

Microservices werden immer häufiger, insbesondere bei der Cloud-nativen Applications-Entwicklung.

Es hat sich zu einem beliebten Architekturmuster entwickelt, da es ermöglicht, große Applications als eine Suite kleiner, unabhängiger Services zu bauen, die über ein Netzwerk miteinander kommunizieren. Dieser Ansatz erleichtert das Design, die Entwicklung und den Einsatz komplexer Softwaresysteme, da Sie einzelne Dienste aktualisieren und ändern können, ohne das gesamte System zu beeinträchtigen, was es flexibler und skalierbarer macht als herkömmliche Methoden.

Microservices können mit einer Vielzahl von Ansätzen und Technologien implementiert werden. Dazu können domänengesteuerte Designs, kontinuierliche Bereitstellung, skalierbare Plattformen, Infrastrukturautomatisierung und die Verwendung verschiedener Programmiersprachen gehören. Microservices spiegeln wider, wie Führungskräfte ihre Teams und Applications Development Prozesse organisieren wollen.

Erste Schritte mit Microservices-Architektur

Bei der Gestaltung von Microservices-Architektur gibt es keine definitiven Standardprinzipien. Es gibt jedoch einige Designthemen und -techniken, die von verschiedenen Unternehmen verwendet werden, um mit den ersten Phasen des Aufbaus einer effizienten Microservices-Architektur zu beginnen.

Demontieren

Erstens hilft die Identifizierung der Geschäftsfähigkeiten von Applications den Teams, Services entsprechend aufzubauen. Sobald die Fähigkeiten identifiziert sind, können die Teams entscheiden, an welchem Service sie arbeiten möchten, und mit dem Aufbau entsprechend ihren Geschäftsanforderungen beginnen. Jedes Team kann zu einem Experten in dem Bereich werden, an dem es arbeitet, und Techniken und Strategien erarbeiten, die am besten zur Anwendung passen.

Gebäude

Nach der Identifizierung der Geschäftsfähigkeiten können die Teams die erforderlichen Tools, Techniken, Plattformen und Ansätze für den Aufbau der Services eingrenzen. Ansätze wie Java mit MySQL und Scala/Spark können entsprechend der Expertise des Teams und den Anforderungen der Applications eingesetzt werden.

Design/Gestaltung

Bei der Gestaltung der Microservices-Architektur ist es unerlässlich, die Teile der Dienste zu analysieren, die exponiert werden müssen, und die Protokolle, die für die Kommunikation mit den gegebenen Diensten verwendet werden sollten. Unnötige und schwere Detaillierung führt zu Verwirrung und Verlust der Flexibilität in den Dienstleistungen.

Dezentrales

Die Architektur kann durch Teams, die an bestimmten Services arbeiten, dezentralisiert werden. Ein internes Quellmodell ermöglicht es Entwicklern, die notwendigen Änderungen am Code vorzunehmen und voranzukommen, ohne sich auf den Service Owner zur Fehlerbehebung verlassen zu müssen. Ein detailliertes Servicemodell wird den Prozess für die Entwickler vereinfachen, was zu einer besseren Leistung und Entwicklung führt.

Einbringung

Ein detaillierter verbraucherorientierter Vertrag unterstützt jede Verbraucher-API bei der Erfassung der Anforderungen der Applications. Diese Verträge werden mit den Dienstleistern geteilt, um ihnen zu helfen, die Bedürfnisse jedes Kunden zu erfüllen. Es ist unerlässlich, vor der Bereitstellung der Dienste verbraucherorientierte Vereinbarungen zu treffen, um den Anbietern zu helfen, die Abhängigkeit der Dienste zu verstehen.

Einige Tools und Rahmenbedingungen für die Implementierung von Microservices

RUHE

Representational State Transfer (REST) ist ein effizientes Tool, das es Microservices ermöglicht, direkt über HTTP zu kommunizieren, und wird für den Aufbau von RESTful APIs verwendet. Die Anfragen und Antworten werden in Standardformaten wie XML, HTML und JSON bearbeitet.

Konsul

Consul ist eine Service-Discovery-Technologie und unterstützt HTTP REST APIs und DNS. Dieses Framework ermöglicht es Entwicklern, mithilfe einer Consul-Vorlage automatisch eine Konfiguration in Dateien zu erstellen. Es führt auch Gesundheitsprüfungen durch und schließt bestimmte Mikrodienste von der Diensterkennung aus, wenn Gesundheitsprüfungen fehlschlagen.

Oracle Helidon

Helidon ist ein von Oracle entwickeltes und eingeführtes Microservices-Framework. Es ist ein Repository von Java-Bibliotheken, das Entwickler für den Aufbau von Microservices-Architektur verwenden können. Helidon ist in zwei Varianten erhältlich, Helidon MP und Helidon SE. Ersteres ist eine sinnvolle Wahl für Java-Entwickler, da es sich um eine Implementierung der MicroProfile-Spezifikationen handelt. Letzteres fungiert als Toolkit, das Java SE-Funktionen und fließende APIs unterstützt.

Federmanschette

Ein weiteres Java-Framework, Spring Boot, bietet kollaborative Komponenten und ermöglicht den Aufbau von Großsystemen mit einfachen Architekturen. Spring Boot lässt sich dank der Invertierung der Steuerung einfach in andere Rahmen integrieren.

Schauen wir uns einige Bereitstellungsoptionen an:

Für die Bereitstellung von Microservices können Entwickler aus diesen häufig verwendeten Mustern wählen:

Multiservice-Instanzen pro Host

Bei der Verwendung mehrerer Serviceinstanzen pro Hostmuster können Entwickler einen oder mehrere physische oder virtuelle Hosts positionieren, um mehrere Serviceinstanzen auszuführen. Jeder Dienst funktioniert auf einem bekannten Port auf einem oder mehreren Ports.

Dieses Muster gibt es in zwei Varianten. Zunächst ist jede Serviceinstanz ein Prozess oder eine Gruppe von Prozessen. Entwickler können eine Java-Serviceinstanz als Web-Applications auf einem Apache Tomcat-Server bereitstellen. Die andere Variante besteht darin, mehrere Serviceinstanzen in demselben Prozess oder derselben Prozessgruppe auszuführen, wie z. B. die Bereitstellung mehrerer Java Web Applications auf demselben Apache Tomcat-Server oder die Ausführung mehrerer OSGi-Bundles im selben Container.

Das Muster hat viele Vorteile, wie z. B. einen effizienten Ressourceneinsatz. Diese Effizienz ergibt sich aus dem Prozess oder der Prozessgruppe, die mehrere Serviceinstanzen ausführt, wie z. B. mehrere Web Applications, die denselben Apache Tomcat-Server und JVM teilen.

Serviceinstanz pro Hostmuster

Mit diesem Muster können Entwickler jeden Dienst isoliert auf seinem persönlichen Host ausführen. Bei diesem Ansatz gibt es zwei Spezialisierungen:

- Serviceinstanz pro virtueller Maschine
- Serviceinstanz pro Container

Serviceinstanz pro virtuelles Maschinenmuster

Bei diesem Ansatz wird jeder Dienst als virtuelles Maschinenbild (VM) verpackt, wie z. B. ein Amazon EC2 AMI. Ein gutes Beispiel ist Netflix, das diesen Ansatz verwendet hat, um seinen Videostreaming-Dienst bereitzustellen, indem es jeden Dienst als EC2 AMI mit Aminator verpackt und jeden Dienst als EC2-Instanz bereitstellt.

Für den Aufbau von VMs stehen viele Tools zur Verfügung, wie Aminator, Jenkins und Packer.io. Aminator verpackt die Dienste als EC2 AMI, während Packer.io die VM-Image-Erstellung automatisiert und Virtualisierungstechnologien wie DigitalOcean, VirtualBox, VMware und EC2 unterstützt.

Bei der Nutzung der Serviceinstanz pro virtuellem Maschinenmuster können Teams die Vorteile einer ausgereiften Cloud-Infrastruktur nutzen und sich keine Gedanken über die Erschöpfung von Ressourcen und CPU-Speicher machen, da die Dienste isoliert ausgeführt werden, was die Bereitstellung einfacher und zuverlässiger macht.

Serverinstanz pro Containermuster

Wie der Name schon sagt, umfasst dieses Muster die Bereitstellung von Serviceinstanzen auf ihren Containern. Die Container verfügen über ein dediziertes Stammdateisystem und einen dedizierten Port-Namensraum, mit denen Teams den Speicher und die CPU-Ressourcen eines Containers begrenzen können. Beispiele für Containertechnologien sind Solaris Zones und Docker. Teams können auch Kubernetes und Marathon verwenden, um die Containerplatzierung in Übereinstimmung mit den erforderlichen und auf jedem Host verfügbaren Ressourcen zu verwalten.

Die Vorteile von Containern ähneln denen von VMs, da beide Ansätze die Isolierung von Diensten beinhalten und die Überwachung der von jedem Container verbrauchten Ressourcen ermöglichen. Container sind leicht und einfacher zu bauen, da es keine schweren OS-Boot-Mechanismen gibt.

Serverlose Bereitstellung

AWS Lambda ist ein hervorragendes Beispiel für ein serverloses Bereitstellungsmuster. Die Technologie unterstützt die Dienste Node.js, Java und Python. Teams können die Microservices in eine ZIP-Datei verpacken und diese auf AWS Lambda hochladen, um Instanzen automatisch auszuführen und Anfragen zu bearbeiten.

Es gibt vier Möglichkeiten, die AWS Lambda-Funktion umzusetzen:

  • Aufruf der Funktion direkt über einen Webservice Request
  • Automatische Implementierung als Reaktion auf Ereignisse, die von AWS-Diensten generiert werden, einschließlich DynamoDB, Kinesis, S3 oder Simple Email Service
  • Verwendung des AWS API Gateways zur Verwaltung von HTTP-Anfragen von Clients der Applications
  • Regelmäßige Einhaltung eines cronähnlichen Zeitplans

AWS Lambda ist eine der bequemsten Möglichkeiten, Mikrodienste bereitzustellen. Sie bietet den Vorteil einer auftragsbasierten Preisgestaltung, die es Unternehmen ermöglicht, für die Welt zu bezahlen, die die Services erbringen, sodass sich die Teams mehr auf die Entwicklung der Anwendung konzentrieren können, anstatt sich um die IT-Infrastruktur zu kümmern.

Schlussfolgerung

Erfolg ist ein sich bewegendes Ziel, und wenn es um Skalierungstechnologie geht, gibt es keine Silberkugel. Microservices sind ein relativ neuer Ansatz, zeigen aber bei korrekter Ausführung unvergleichliche Ergebnisse. Microservices helfen dabei, wichtigere Anwendungen in kleinere, einfacher zu verwaltende Applications aufzuteilen. Der Prozess ermöglicht es auch, dass die Unternehmenskultur offener ist und sich an Veränderungen und Verbesserungen anpassen kann.

Globale Akteure wie Coca-Cola, Netflix, Amazon und Etsy haben ihre kompliziertesten Probleme im Zusammenhang mit Skalierung und Expansion mithilfe der Microservices-Architektur gelöst. Dieser Wandel hat es diesen Organisationen und anderen ermöglicht, Flexibilität, Nachhaltigkeit und ein verbessertes Engagement innerhalb der Teams zu gewinnen.

Mit Microservices können jüngere Unternehmen die Leistungsfähigkeit alter Software und moderner Technologien nutzen und die Lernkurve für Teams und die nächste Generation von Entwicklern vereinfachen, um sie auf dem Weg zur digitalen Transformation zu führen.