Die Dienstarchitektur ist ein Software-Design-Ansatz, der ein Problem mit einer Reihe autonomer Dienste löst.
Analogie
Eine vernünftige Analogie für die Servicearchitektur ist eine Organisation wie eine Bank. Die Bank unterteilt die Arbeit in verschiedene Dienstleistungen wie Kundendienst, IT-Dienstleistungen und Personalmanagement. Jeder Dienst ist unabhängig und kann in verschiedenen Büros bereitgestellt werden. Den Kunden jedes Dienstes wird ein Vertrag angeboten, der angibt, was von dem Dienst erwartet werden kann. Beispielsweise kann das Personalmanagement einem Team helfen, neue Mitarbeiter mit einem Formular zu rekrutieren, das das Team ausfüllt, um den Prozess einzuleiten. Die Servicestruktur des Unternehmens unterteilt das komplexe Problem des Betriebs einer Bank in kleine Verwaltungsfunktionen.
Services
Services sind Softwareeinheiten, die eine Funktion ausführen. Sie werden verwendet, um komplexe Probleme in eine Reihe einfacherer Probleme zu unterteilen. Dienste können auch separat bereitgestellt werden. Dies ist ein großer Vorteil, da Sie damit hoch skalierbare und belastbare Systeme erstellen können.
Ausfallsicherheit
Ausfallsicherheit ist ein Begriff für Software, die unter realen Bedingungen zuverlässig ist und verschiedene Belastungen und Belastungen umfasst Ausfälle. Die Servicearchitektur ist eine nützliche Technik zum Erstellen von Systemen, die auch dann funktionieren, wenn Probleme auftreten. Dazu werden Services so konzipiert, dass sie autonom sind, sodass sie nicht voneinander abhängig sind. Services können dann in der Cloud-Infrastruktur bereitgestellt und nach Bedarf vergrößert und verkleinert werden. Wenn eine Instanz ausfällt, sind Services intelligent genug, um dies automatisch zu erkennen Suchen Sie eine Instanz, die funktioniert.
Services vs Components
Services und Komponenten sind zwei verschiedene Möglichkeiten, die Arbeit in verwaltbare und wiederverwendbare Blöcke aufzuteilen. Der Unterschied besteht darin Diese Dienste können selbst bereitgestellt werden. Komponenten werden mit etwas anderem bereitgestellt und sind daher nicht autonom. Services können aus Komponenten aufgebaut werden. Ebenso können Komponenten Services verwenden.
Serviceorientierte Architektur (SOA)
Serviceorientierte Architektur war ein früher Begriff für Service-Architektur, der von übernommen und vermarktet wurde Viele große IT-Anbieter, die damit SOA-Plattformen und Middleware verkauften. Dies war eine große Modeerscheinung der Informationstechnologie um 2005, bei der viele Top-Down-Implementierungen durchgeführt wurden, bei denen eine Reihe von Software gekauft und vorhandene Systeme neu gestaltet wurden, um sie in ein SOA-Paradigma einzufügen. Ein Großteil dieser Aktivitäten verfehlte den Punkt der SOA vollständig und Projektfehler waren häufig. Verwirrung regnete, als IT-Experten SOA entweder förderten oder kritisierten, oft indem sie die Dinge so komplex wie möglich klangen ließen.
Microservices
All das große Denken und der Unsinn Die Tatsache, dass SOA auf dem Höhepunkt seiner Popularität stand, hinderte erfahrene Architekten nicht daran, seine Kernideen auf effektive und leichte Weise zu nutzen, um zuverlässige, skalierbare, verwaltbare und kostengünstige Systeme und Anwendungen zu erstellen. Dies entwickelte sich zu einer neuen Kultur des Software-Designs, die als Microservices bekannt ist und auf einer Reihe von Prinzipien für das Service-Design basiert.
Beispiel
Ein Telekommunikationsunternehmen entwirft ein Abrechnungssystem als eine Reihe von separat bereitstellbaren Diensten. Jeder Service wird als separates Produkt angesehen, das von verschiedenen Personen entwickelt, gewartet und verwaltet werden kann. Services werden in der Cloud bereitgestellt und lose gekoppelt. Wenn eine Dienstinstanz ausfällt, wechseln die anderen Dienste automatisch zu einer Instanz, die noch funktioniert. Obwohl das Problem der Telekommunikationsabrechnung äußerst komplex ist, ist kein einzelner Dienst in der Architektur so komplex, dass jeder relativ billig zu entwickeln und zu verwalten ist. Die Dienstleistungen sind im Wesentlichen selbstorganisierend. Jeder veröffentlicht eine API für die anderen Dienste. Jeder weiß, was er von den anderen Diensten benötigt, und ist intelligent genug, um fehlgeschlagene Instanzen zu routen, um Dienste zu finden, die antworten. Mit anderen Worten, die Architektur verfügt über keinen zentralen Controller oder keine Middleware.
Übersicht: Servicearchitektur | ||
Typ | ||
Definition | Ein Software-Design-Ansatz, der ein Problem mit einer Reihe autonomer Dienste löst. | |
Verwandte Konzepte |