Huis Bedrijf Microservices: wat ze zijn en waarom uw bedrijf erom zou moeten geven

Microservices: wat ze zijn en waarom uw bedrijf erom zou moeten geven

Video: The Problem With Microservices (November 2024)

Video: The Problem With Microservices (November 2024)
Anonim

Het enterprise software landschap is bezaaid met bruisende technologieën. We hebben er veel over geschreven, of het nu blockchain, low-code ontwikkeling of andere opkomende trends zijn die onze manier van werken veranderen. Een nieuw modewoord waar je misschien nog nooit van hebt gehoord, is 'microservices'.

Dat is van nature. Microservices zijn een andere manier dan architectensoftware op basis van een reeks met elkaar verweven modulaire componenten in plaats van het traditionele idee van een "monoliet" - een applicatie die bestaat uit een steeds groter wordende berg code. Op Microservices gebaseerde apps zien er niet anders uit dan de gebruikersinterface (UI), of het nu gaat om een ​​complexe datacenter-app of een web- of mobiele app die wordt gehost op een schaalbare cloud-infrastructuur.

De reden waarom bedrijven om microservices moeten geven, is dat de architectuur achter de schermen uw ontwikkeling en IT-teams kan helpen sneller te werken en te innoveren, de infrastructuur te beheren en de kosten en complexiteit van het toevoegen van nieuwe functies en functionaliteit aan een app te verminderen. Al Hilwa, programmadirecteur voor Application Development Software Research bij IDC, legde uit hoe hij microservices naar een exec zou brengen, rekening houdend met zowel de culturele als technische uitdagingen.

"Bij het bouwen van nieuwe systemen is het waarschijnlijk het belangrijkste om te erkennen dat een enkele microservice door een klein team moet worden gebouwd, " zei Hilwa. "Ten tweede wordt een tolerantie voor diversiteit in programmeertalen en ontwikkelaarsworkflows vaak geïmpliceerd door het onafhankelijke karakter van een algehele microservicecultuur. De belangrijkste pitch voor een exec is om incrementeel software te bouwen met behulp van kleine teams, waarbij elk een coherente module bouwt met een gepubliceerde Het voordeel is dat de onafhankelijke modules onafhankelijk veel sneller kunnen worden ontwikkeld, zolang de gepubliceerde API's op een georganiseerde manier worden beheerd."

Wat zijn microservices eigenlijk?

Hilwa schreef een 2015 IDC-rapport getiteld "The Emergence of Microservices as a New Architectural Approach to Building New Software Systems." In het rapport definieert hij microservices als een granulaire software-architectuur waarbij app-componenten onafhankelijk van elkaar worden ontworpen en ontwikkeld om te voldoen aan API-gedefinieerde interoperabiliteitsvereisten (wat betekent dat de app in zijn geheel is gekoppeld). Microservices bestaan ​​echter niet in een vacuüm. Een nieuwe architectuur vereist krachtige organisatorische ondersteuning en een verschuiving in de IT-cultuur.

Microservices wordt ook niet gedefinieerd door een specifieke technologie, maar als de evolutie van het al lang bestaande concept van servicegeoriënteerde architectuur (SOA), versterkt door de komst van containers en de opkomst van automatisering door middel van ontwikkelingsbenaderingen zoals continue levering (CD) en continue integratie (CI).

"Organisaties die tegenwoordig microservices gebruiken, worden doorgaans gemotiveerd door de wens naar een sneller tempo van service-evolutie", aldus Hilwa. "Dus in de meeste gevallen maken microservices in grote mate gebruik van CI / CD-automatisering. Het tempo van de daadwerkelijke implementatie kan echter verschillen tussen de services. Ik denk dat de sleutel is om goed naar de interne cultuur te kijken en zeker dat je bereid bent grotere decentralisatie en diversiteit in de technologiestack te tolereren."

Door "interne cultuur" verwijst Hilwa grotendeels naar DevOps, een filosofie die softwareontwikkeling, IT-activiteiten en kwaliteitsborging (QA) combineert in een enkele, samenwerkende workflow. DevOps software startup HashiCorp en zijn oprichters zijn al lang voorstanders van microservices. Het bedrijf, dat onlangs een serie van $ 24 miljoen aan Series B-financiering heeft binnengehaald, telt bedrijven als Cisco, DigitalOcean, Mozilla en Stripe tot zijn open-source gebruikers en zakelijke klanten.

Microservices vormen de kern van hoe HashiCorp DevOps-infrastructuurontwikkeling en app-workflows benadert in zijn populaire open-source tools en groeiende enterprise productsuite. Armon Dadgar, CTO en mede-oprichter van HashiCorp, heeft het verschil tussen monolieten en microservices verbroken met behulp van een eenvoudige analogie: Amazon en eBay.

"Denk aan Amazon en eBay als afzonderlijke applicaties. Vanuit het perspectief van de eindgebruiker zien ze er hetzelfde uit, maar achter de schermen hebben de bedrijven tegenovergestelde benaderingen gehanteerd in hoe ze hun applicaties bouwden en architecten, " zei Dadgar. "Amazon was vanaf het begin een bundel microservices; het fungeert als een enkele app. Maar als je de zoekopdracht uitvoert, de productcatalogus, het winkelwagentje, de facturen, de orderstromen en deze functies splitst, werken de twee applicaties op verschillende machines."

De analogie met Amazon strekt zich ook uit over hoe Amazon zelf is gestructureerd. Dadgar verklaart technologische benaderingen zoals microservices als hulpmiddelen om de grotere procesbeweging naar DevOps te ondersteunen. De "Two Pizza Rule" van Jeff Bezos werkt zodat slechts vijf tot acht mensen in een bepaald Amazon-team zitten. Als het team groter wordt, splitst het zich in twee.

Amazon's organisatiehiërarchie begint in kaart te brengen naar wat Dadgar omschreef als een "ontleding van functionaliteit". Elk team is gescheiden op zowel organisatorisch als modulair architectuurniveau en kan dan vrijer ontwikkelen en experimenteren, zonder dat het nodig is om bij elke verandering te coördineren - terwijl het nog steeds functioneert als onderdeel van een enkele samenhangende app.

"eBay koos voor de monolithische benadering; ze bouwden eBay als een lange, 50 miljoen regel codetoepassing, " zei Dadgar. "De aanpak van microservices is in het begin pijnlijker omdat de problemen van modulariteit en interoperabiliteit niet bestaan ​​in een monoliet. Maar dingen beginnen kapot te gaan wanneer de app te groot wordt. In een monoliet is er geen ontleding.

"Denk aan honderden of duizenden ontwikkelaars die samenwerken aan een enkele codebase en proberen te coördineren. Een QA-team dat functionaliteit aan de ene kant van de applicatie toevoegt, kan aan de andere kant iets kapot maken omdat er geen duidelijke scheiding van rollen en verantwoordelijkheden bestaat. je begint steeds meer coördinatie tussen de projectmanagers en een QA-proces nodig te hebben dat weken en bottleneck-ontwikkeling kan duren, ongeacht hoe snel dat team werkt. Het zijn teveel koks in de keuken."

Containers en microservices in een DevOps-wereld

De manier waarop uw bedrijf een microservices-architectuur implementeert, is van groot belang om te bepalen of de investering loont. Microservices zijn veel werk vooraf, vooral in de API-integratie die nodig is om ervoor te zorgen dat alle services met elkaar praten. Hilwa legde uit dat het nog gecompliceerder is wanneer het probeert microservices te integreren in een bestaand systeem; hij beveelt aan dat bedrijven waar mogelijk nieuwe systemen bouwen in plaats van een oude monoliet-app voor microservices opnieuw te ontwerpen.

"Traditionele systeemarchitecturen omvatten doorgaans grote, complexe database-systemen met uitgebreide genormaliseerde schema's, " zei Hilwa. "Het factureren van dergelijke systemen in kleinere componenten met hun eigen onafhankelijke systemen vereist veel databaseontwerpwerk en het effectief herschrijven van de meeste kernapplicatielogica. Dit is in de meeste gevallen over het algemeen kosten- en tijdverbod."

Als u een oudere app opnieuw ontwerpt, raadt Hilwa u aan dit stapsgewijs te doen. Hoewel nog belangrijker dan de API-integratie, werken microservices niet zonder de DevOps-cultuur erachter. Dadgar van HashiCorp zei dat, als het gaat om de grotere paraplu van DevOps, microservices een hulpmiddel worden om een ​​grotere procesverschuiving mogelijk te maken in de richting van een fundamentele verandering van de workflows waarmee we apps leveren. Hij wees op de Tao van HashiCorp die was opgesteld toen hij en mede-oprichter Mitchell Hashimoto het bedrijf startten: eenvoudig, modulair en configureerbaar.

"DevOps is in zekere zin een nog meer overbelaste term dan microservices, " zei Dadgar. "Maar een bedrijf bestaat uit mensen met verschillende specialisaties van kennis: ontwikkelaars, operators, beveiligingsmedewerkers. En dan heb je een proces, de manier waarop je die mensen organiseert. Dan heb je de tools om dat proces te ondersteunen, dat is waar microservices en containers kom binnen."

Containers, gepopulariseerd door de open-source explosie van Docker, zijn verre van de enige tool die bedrijven kunnen gebruiken om microservices te faciliteren. Hilwa van IDC zei dat containers in moderne apps worden gebruikt als onderdeel van de CI / CD-workflows en, in sommige gevallen, tijdens de productie. Maar hij zei dat microservices ook virtuele machines (VM's) kunnen gebruiken, zonder dat ze containers nodig hebben.

Dat gezegd hebbende, als het gaat om de manier waarop business clouds evolueren, zijn Docker-containers en microservices een krachtige toolingcombinatie die wordt omarmd door bedrijven in alle soorten en maten - van startups zoals HashiCorp tot zakelijke reuzen zoals Oracle. Dadgar van HashiCorp zei dat containers de handige manier zijn waarop Dev en Ops (en, door associatie, verschillende teams en services) met elkaar communiceren.

"Wat is het artefact dat we tussen de ontwikkelaars en operators doorgeven? Wat stromen we grondig door en bouwen rond? Containers zijn een handige eenheid om rond te geven", zei Dadgar. "Denk aan een wereldwijd bedrijfsproduct over de hele wereld. Of het nu een vrachtschip, een vrachttrein of een vrachtwagen is, het is dezelfde eenheid die door het hele systeem stroomt."

DevOps en microservices zijn nog verre van wijdverspreide acceptatie door ondernemingen, maar de markt groeit alleen maar. Volgens het IDC-rapport zal de architectuur van microservices de komende vijf jaar een volwassenheidsfase ingaan. Deze volwassenheid zal plaatsvinden op basis van de DevOps-cultuur die tegen 2020 50 procent van de organisaties bereikt, de voortdurende evolutie van software-automatiseringstools en de dominantie van goedkope, schaalbare cloudinfrastructuur zoals Amazon Web Services (AWS) en Microsoft Azure.

Dadgar zei dat, zelfs met de kleine fractie van bedrijven die momenteel DevOps en microservices omarmen, HashiCorp al enorm overschreven is. Het behaalde zijn eerste omzet van zeven cijfers na slechts negen maanden van bedrijfsverkopen, bovenop een open-sourcecommunity op GitHub van enkele miljoenen maandelijkse actieve gebruikers. Microservices zijn slechts een deel van de pipeline van de workflow-app-tooling van HashiCorp en een grotere routekaart voor de DevOps-infrastructuur. Maar de modulariteit en interoperabiliteit onder alles wat het bedrijf bouwt, heeft de enorme opkomst van een van de populairste softwarestartups in Silicon Valley aangewakkerd.

"Vier jaar geleden, toen we begonnen, zouden we vergaderen en onze visie pitchen voor hoe infrastructuur zou worden beheerd", zei Dadgar. "We werden niet echt uit de kamer gelachen; we wisten dat het vroeg was. Maar nu zijn onze tools zoals Terraform op weg om industriestandaarden te worden. Wat we zullen zien is een domino-effect van concurrentiedruk en, in de op de lange termijn zal onze rol werken met CIO's en CTO's om inzicht te krijgen in de procesverandering die zij moeten doorvoeren.

"Denk eens aan Toyota terug in de dag, " vervolgde Dadgar. "Je had een heleboel autobedrijven die producten bouwden, maar de kosten waren hoger dan het zou moeten zijn. Toyota heeft niet opnieuw uitgevonden wat een auto was; ze waren gewoon rigoureuzer en stapsgewijs over het proces en gingen van lachend materieel naar krachtpatser, dwingen de de rest van de industrie om dezelfde set praktijken toe te passen om concurrerend te blijven. Op dit moment hebben marktleiders de vraag hoe ze een voorsprong op de concurrentie kunnen krijgen, en hun antwoord is om de praktijken van de Googles en Amazones van de markt over te nemen. punt, het zal een kritische massa raken."

Microservices: wat ze zijn en waarom uw bedrijf erom zou moeten geven