Microservices: inzicht in wat microservices zijn en wat de voordelen ervan zijn
Tot ongeveer 2013 bouwden bedrijven meestal bedrijfssoftware door toepassingen te bouwen als afzonderlijke eenheden met grote codebases, een zogenaamde monolithische architectuur. Naarmate software complexer werd en de populariteit van cloud computing toenam, werd deze aanpak minder praktisch.
Door de komst van software-as-a-service-producten (toepassingen die via de cloud worden geleverd) konden bedrijven providers, zoals Amazon Web Services, gebruiken om snel nieuwe servers te creëren en redundantie toe te voegen. Dit zorgde ervoor dat de services online bleven tijdens upgrades. Het luidde ook een nieuw tijdperk van snelheid en behendigheid in. Gebruikers verwachtten snelle upgrades en verbeteringen, wat bedrijven ertoe aanzette hun ontwikkelingsprocessen te veranderen.
Bedrijven begonnen toepassingen op te splitsen in kleinere, onafhankelijke services of microservices. In plaats van een berichteninbox toe te voegen als onderdeel van een monolithisch e-commerceplatform, kunnen ze bijvoorbeeld een aparte microservice aanmaken voor deze functionaliteit.
Tegelijkertijd begonnen ontwikkelaars te werken in kleinere, meer gespecialiseerde groepen die individuele services aanpasten en verbeterden zonder dat dit een risico vormde voor de gehele toepassing. Deze groepen namen ook vaak de verantwoordelijkheid voor de werking van hun code, een model genaamd DevOps. Om deze veranderingen mogelijk te maken, begonnen projectmanagers nieuwe methodologieën te ontwikkelen, zoals Agile, waarbij projecten worden opgedeeld in kleinere, frequentere releases.
Lees verder voor meer informatie over de samenstelling van toepassingen op basis van microservices. Ontdek ook hoe Compass van Atlassian de complexiteit vermindert en tegelijkertijd ontwikkelaars in staat stelt om de vruchten te plukken van dit architecturale model.
Compass gratis uitproberen
Verbeter je ontwikkelaarservaring, catalogiseer alle services en verbeter de gezondheid van je software.
Wat zijn microservices?
Een microservice is een functie die verantwoordelijk is voor een enkel stukje logica (behalve voor domein-microservices, zoals hieronder wordt uitgelegd). Meerdere microservices worden gecombineerd om gedistribueerde toepassingen aan te maken, zoals Jira Software.
Er zijn drie soorten microservices:
- Bij domein-microservices worden services losjes aan gerelateerde functionaliteit gekoppeld.
- Dankzij integratie-microservices wordt de interactie tussen niet-gerelateerde toepassingen vereenvoudigd.
- Bij de unit-of-work-microservices worden enkelvoudige functies behandeld.
Microservices communiceren met elkaar via API's (Application Programming Interfaces). Ontwikkelaars die aan individuele services werken, kunnen de interne werking van de andere microservices ook leren beheersen. Dit biedt nog een voordeel ten opzichte van een monolithische architectuur.
Op microservices gebaseerde architectuur biedt veel voordelen, maar kan zaken ook een stuk ingewikkelder maken. Daarom heeft Atlassian Compass ontwikkeld, waarmee bedrijven het schalen kunnen vereenvoudigen. Compass is een ontwikkelaarsplatform dat alle informatie over engineering-output en teamsamenwerking samenbrengt op één centrale, doorzoekbare locatie.
De belangrijkste principes van microservices
De op microservices gebaseerde architectuur heeft verschillende onderscheidende kenmerken. Ontwikkelaars kunnen hun services onafhankelijk ontwikkelen en implementeren met behulp van de talen en technologieën die bij hun componenten passen.
De communicatie tussen microservices is gebaseerd op API's, waardoor je zonder aanpassingen toegang hebt tot gegevens uit verschillende bronnen. Individuele services kunnen worden geschaald op basis van vraag, waardoor kosten worden bespaard en beschikbaarheid wordt gegarandeerd.
Deze eigenschappen maken gedistribueerde toepassingen op basis van microservices flexibel en gemakkelijk te onderhouden.
Voordelen van microservices
Microservices bieden veel voordelen. Ze vereenvoudigen de ontwikkeling en het projectbeheer. Het is mogelijk dat er soms geen aparte operationele teams meer nodig zijn, omdat ontwikkelaars de activiteiten kunnen afhandelen voor de microservices die ze bouwen.
Enkele andere voordelen van microservices zijn onder meer:
Herstellingsvermogen en foutisolatie
Eén fout is van invloed op de hele toepassing bij monolithische architecturen. Maar microservices zijn onafhankelijk. Eén fout heeft geen invloed op de andere delen van de toepassing.
Agility
Het opdelen van applicaties in kleinere delen versnelt de ontwikkeling. Het stelt teams in staat om sneller software te bouwen, te testen en te implementeren.
Technologische diversiteit
Microservices stellen ontwikkelaars in staat om de juiste tools en technologieën voor een bepaalde taak te kiezen. Dit verhoogt de efficiëntie en productiviteit.
Verbeterd onderhoud
De mogelijkheid om afzonderlijke componenten te testen maakt het makkelijker om bugs op te sporen en op te lossen zonder dat de hele toepassing offline moet worden gezet.
Uitdagingen van microservices
Een op microservices gebaseerde architectuur heeft veel voordelen, maar brengt ook uitdagingen met zich mee.
Een uitdaging op het gebied van microservices is dat de onafhankelijke services hun logs genereren. Dit is een nadeel vergeleken met de gecentraliseerde logs van monolithische structuren, die ontwikkelaars en operationele teams één enkele bron van waarheid bieden. Monitoring en infrastructuurbeheer zijn ook ingewikkelder omdat er veel bewegende onderdelen zijn. Testen en debuggen is lastig omdat er, in tegenstelling tot bij monolithische structuren, geen geïntegreerde ontwikkelomgeving (IDE) bestaat.
Compass van Atlassian kan je helpen bij al deze uitdagingen. Compass maakt samenwerking mogelijk en stelt bedrijven in staat om de complexiteit van gedistribueerde architecturen te beheren naarmate ze opschalen. Compass brengt de niet-verbonden informatie samen op een centrale, doorzoekbare locatie.
Waar wordt de microservice-architectuur voor gebruikt?
Grote consumentenwebsites maken vaak gebruik van honderden of duizenden microservices. Microservices zijn bijzonder nuttig in de volgende gebruiksscenario's en bedrijfstakken:
- E-commercesites zoals eBay gebruiken aparte microservices voor winkelwagentjes, mobiele apps en berichtenuitwisseling.
- Financiële instellingen zoals de Bank of America gebruiken microservices om te communiceren met externe services. Ze worden ook gebruikt voor functies zoals gebruikersautorisaties en het weergeven van transacties.
Sociale-mediaplatforms zoals Instagram en Facebook gebruiken microservices om de nieuwsfeeds, berichten, meldingen en vriendennetwerken van gebruikers weer te geven.
Beste praktijken voor het beheer van microservices
In de loop der jaren hebben ontwikkelaars tientallen essentiële beste praktijken bedacht voor de ontwikkeling van microservices. Hieronder staan slechts een paar voorbeelden:
- Het principe van één verantwoordelijkheid (SRP) specificeert dat elke module of microservice maar één functie mag hebben. De continue integratie (CI) van SRP is een methode voor het controleren van de broncode die de kwaliteitscontroles van de code automatiseert voordat ze in een project worden samengevoegd. Hierdoor wordt snelheid mogelijk gemaakt omdat er geen apart QA-proces nodig is. Deze beste DevOps-praktijk helpt bij de snelheid. CI gaat vooraf aan continue levering (CD), waarbij gebruik wordt gemaakt van geautomatiseerde bouwtools om software klaar te houden voor implementatie.
- API-gateways vereenvoudigen de communicatie tussen microservices, beheren authenticatie en autorisatie en verhogen de beveiliging.
- Asynchrone communicatie tussen microservices behoudt de autonomie en vermindert de afhankelijkheden die de werking van applicaties zouden kunnen vertragen.
-
Microservices met versiebeheer zijn van cruciaal belang wanneer ontwikkelaars ingrijpende veranderingen doorvoeren, zoals het verwijderen van een volledige operatie. Deze praktijk maakt overgangen soepeler en verkleint de kans op verstoring van de dienstverlening.
Open DevOps van Atlassian, mogelijk gemaakt door Jira Software, maakt het gemakkelijk voor teams om tools van partners en van Atlassian automatisch te integreren, zodat ze zich kunnen concentreren op het bouwen en uitvoeren van software.
Beheer je microservices-architectuur beter met Compass
Compass van Atlassian is een platform voor ontwikkelaarservaring dat gedistribueerde softwarearchitectuur en samenwerkende teams op één plek samenbrengt. Het biedt een handig overzicht van alle componenten en services waaraan een team werkt. Het bevat ook een catalogus met softwarecomponenten zodat ontwikkelaars gemakkelijk kunnen vinden wat ze zoeken.
Compass maakt eenvoudig componentenbeheer mogelijk, evenals het volgen van eigendom en het monitoren van verbanden. De software houdt ook veranderingen in realtime bij.
Compass integreren in je ontwikkelomgeving is eenvoudig vanwege de aanpasbare gebruikersinterface en de compatibiliteit met interne en externe tools. Ontdek hoe je je microservices-architectuur kunt beheren met Compass en hoe het losgekoppelde informatie samenbrengt op een verbonden, centrale locatie.
Microservices: Veelgestelde vragen
Welke tools gebruiken mensen vaak in microservices?
Bedrijven gebruiken vaak tools voor containerisatie, zoals Kubernetes en Docker. Ze gebruiken ook vaak API-gateways tussen microservices en hun klanten. Deze gateways voeren API-verkeersfuncties uit, zoals authenticatie, toegangscontrole en taakverdeling.
Hoe verschillen microservices van een monolithische architectuur?
Monolithische structuren zijn grote codebases die als één systeem functioneren. Ze hebben downtime van het systeem nodig voor updates en foutopsporing. Microservices-architecturen zijn gedistribueerde toepassingen met kleinere, onafhankelijke delen van de functionaliteit. Ontwikkelaars kunnen deze modules upgraden en verbeteren en fouten opsporen zonder dat ze de hele toepassing offline moeten zetten. Dit vereenvoudigt de schaalbaarheid en bevordert de ontwikkelingssnelheid.
Welke invloed hebben microservices op DevOps?
Wie DevOps begrijpt, weet dat continue integratie en continue levering (de DevOps CI/CD-pipeline) de steunpilaren zijn van de DevOps-methodologieën. Het modulaire karakter van microservices past perfect bij deze aanpak. Microservices stellen ontwikkelaars in staat om snel kleine, frequente releases te maken, te testen en te implementeren.
Word lid van de Atlassian Community voor meer artikelen en besprekingen over microservices.