Servicearchitectuur is een benadering van softwareontwerp die een probleem met een reeks autonome services oplost.
Analoog
Een redelijke analogie voor service-architectuur is een organisatie als een bank. De bank verdeelt het werk in een verscheidenheid aan diensten, zoals klantenservice, IT-diensten en personeelsbeheer. Elke dienst is onafhankelijk en kan worden ingezet op verschillende vestigingen. De klanten van elke dienst krijgen een contract aangeboden waarin staat wat er van de dienst kan worden verwacht. Human resource management kan bijvoorbeeld een team helpen nieuw personeel aan te werven met een formulier dat het team invult om het proces te starten. De servicestructuur van het bedrijf splitst het complexe probleem van het runnen van een bank op in kleine stukjes functionaliteit van het beheer.
Services
Services zijn software-eenheden die een functie uitvoeren. Ze worden gebruikt om complexe problemen op te splitsen in een reeks eenvoudigere problemen. Diensten zijn ook ontworpen om afzonderlijk inzetbaar te zijn. Dit is een groot voordeel omdat het u in staat stelt zeer schaalbare en veerkrachtige systemen te bouwen.
Veerkracht
Veerkracht is een term voor software die betrouwbaar is in reële omstandigheden met verschillende spanningen en mislukkingen. Servicearchitectuur is een handige techniek om systemen te bouwen die blijven functioneren als er iets niet lukt. Dit wordt gedaan door services zo te ontwerpen dat ze autonoom zijn, zodat ze niet van elkaar afhankelijk zijn. Services kunnen vervolgens worden geïmplementeerd in de cloudinfrastructuur en naar behoefte worden op- en neergeschaald. Wanneer een instantie uitvalt, zijn services slim genoeg om dit automatisch te detecteren. vind een instantie die werkt.
Services versus componenten
Services en componenten zijn twee verschillende manieren om werk op te splitsen in beheersbare en herbruikbare brokken. Het verschil is dat services op zichzelf kunnen worden ingezet. Componenten worden ingezet met iets anders en zijn daarom niet autonoom. Services kunnen worden opgebouwd uit componenten. Evenzo kunnen componenten services gebruiken.
Service Oriented Architecture (SOA)
Service-georiënteerde architectuur was een vroege term voor service-architectuur die werd aangenomen en op de markt werd gebracht door veel grote IT-leveranciers die het gebruikten om SOA-platforms en middleware te verkopen. Dit was een grote rage op het gebied van informatietechnologie rond 2005, waarbij veel top-down implementaties plaatsvonden waarbij een heleboel software werd gekocht en vervolgens bestaande systemen opnieuw moesten worden ontworpen om in een SOA-paradigma te passen. Veel van deze activiteiten misten het nut van SOA volledig en mislukte projecten kwamen vaak voor. De verwarring regende toen IT-experts SOA promootten of bekritiseerden, vaak door dingen zo complex mogelijk te laten klinken.
Microservices
Al het grote denken en onzin dat SOA op het hoogtepunt van zijn populariteit omringde, weerhield bekwame architecten er niet van om zijn kernideeën op effectieve en lichtgewicht manieren te gebruiken die betrouwbare, schaalbare, beheersbare en kosteneffectieve systemen en toepassingen hebben opgeleverd. Dit evolueerde naar een nieuwe cultuur van softwareontwerp, bekend als microservices, die is georganiseerd rond een reeks principes voor serviceontwerp.
Voorbeeld
Een telecombedrijf ontwerpt een factureringssysteem als een reeks afzonderlijk in te zetten services. Elke dienst wordt gezien als een afzonderlijk product dat door verschillende mensen kan worden ontwikkeld, onderhouden en beheerd. Services worden geïmplementeerd in de cloud en losjes gekoppeld. Wanneer een service-exemplaar uitvalt, schakelen de andere services automatisch over naar een exemplaar dat nog steeds werkt. Hoewel het probleem van telecomfacturering buitengewoon complex is, is geen enkele dienst in de architectuur zo complex dat elke dienst relatief goedkoop is om te ontwikkelen en te beheren. De diensten zijn in wezen zelforganiserend. Elk publiceert een API naar de andere services. Elk weet wat het nodig heeft van de andere services en is slim genoeg om mislukte instanties te omzeilen om services te vinden die reageren. Met andere woorden, de architectuur heeft geen centrale controller of middleware.
Overzicht: servicearchitectuur | ||
Type | ||
Definitie | Een benadering van softwareontwerp die een probleem met een reeks autonome services oplost. | |
Gerelateerde concepten |