Hoe Microservices zakelijke wendbaarheid en E-commerce succes faciliteren
Microservices worden vaak omschreven als de aanjagers van de e-commerce van morgen. Maar aan de architectuur van microservices zit afweging.
Wat zijn Microservices?
Microservices zijn kleine, op zichzelf staande applicaties die afzonderlijk kunnen worden ontworpen en ingezet, net als Legoblokjes. Bij elke microservice kun je nieuwe functionaliteiten toevoegen, zoals een winkelwagentje, betaal- en zoekfuncties.
Microservices zijn modulair: onafhankelijk van elkaar en losjes gekoppeld, kan elke microservice afzonderlijk worden vervangen zonder de rest van de applicatie te beïnvloeden.
Zoals Rebecca Parsons, CTO bij Thoughtworks, in deze video uitlegt, worden microservices geleverd met slimme eindpunten en simpele transportstructuren.
Als ontwerpprincipe geeft deze benadering de voorkeur aan elementaire, beproefde asynchrone communicatiemechanismen (API's) boven complexe integratieplatforms. Met API's kan de focus op de microservices worden gelegd door toegewijde teams. Producteigenaren, marketeers en procesmanagers beheren hun eigen stuk. Zo verschuift de werkdruk van IT-beheerders naar eindgebruikers. Na de eerste ontwikkeling en implementatie hoeft IT er alleen nog maar voor te zorgen dat alles soepel blijft lopen. Dat brengt, zowel uitdagingen als voordelen met zich mee.
Uitdagingen voor Microservices
In plaats van een klassieke, horizontale structuur, vereisen microservices een cross-functionele structuur met verticale teams die onafhankelijk werken. Organisaties moeten over de juiste infrastructuur en tools beschikken om hun microservices-architectuur te orkestreren en te bewaken. De volgende uitdagingen komen erbij kijken met het kiezen voor microservices:
- Gedecentraliseerde gegevens: elke microservice heeft zijn eigen gegevensopslag. Meerdere databases en transactiebeheer vragen extra aandacht.
- Testen: wanneer u een op microservices gebaseerde toepassing test, moet u elke afhankelijke service bevestigen en testen. Dit maakt integratietesten en end-to-end-testen moeilijker, maar ook belangrijker, omdat één storing ook een paar sprongen verderop iets kan veroorzaken.
- Implementatie: Vooral in de eerste opzet vereist implementatie aandacht. U moet nadenken over hoe services worden uitgerold en in welke volgorde. Investeringen in implementatieautomatisering zijn noodzakelijk.
- Monitoring: een gecentraliseerd overzicht van het hele systeem is van cruciaal belang om bugs op te sporen. Afluisteren op afstand is geen optie voor tientallen of honderden services.
En aangezien microservices sterk afhankelijk zijn van messaging, zullen er bepaalde nieuwe uitdagingen ontstaan. Zonder gebruik te maken van automatisering en geavanceerde methodieken zoals Agile, kan communicatie moeilijk zijn.
Dit vraagt om DevOps-tools zoals CI/CD-servers, configuratiebeheerplatforms APM-tools voor netwerkbeheer. U hebt een gemeenschappelijk containerorkestratiesysteem, meerdere niveaus van taakverdeling en servicedetectie nodig om ervoor te zorgen dat de services correct worden geïmplementeerd en om te controleren of ze samenwerken zoals gepland.
Bedrijven die deze tools al gebruiken, zullen merken dat het eenvoudig is om met microservices te beginnen. Als deze extra eisen echter moeten worden overgenomen, kan dit een uitdaging zijn voor kleinere organisaties.
De voordelen van Microservices voor E-commerce
Door de confrontatie met veranderende klanteisen, de opkomst van het mobiele internet en steeds kortere innovatiecycli, moeten verkopers ervoor zorgen dat ze zowel een organisatorische als een technische structuur hebben die flexibiliteit en snelheid mogelijk maakt. Tegenwoordig is snelheid een toonaangevende onderscheidende factor.
Monolithische toepassingen in e-commerce, die nog steeds de meeste van de grootste retailers wereldwijd aansturen, worden knelpunten voor innovatie. En hoewel de monoliettoepassingen in één keer kunnen worden ingezet en gemakkelijker kunnen worden getest en gecontroleerd, gaat dit gepaard met complexiteit en inflexibiliteit.
Ter vergelijking: er zijn zes belangrijke voordelen die microservice-architectuur biedt:
-
Verminderde softwarecomplexiteit: de reikwijdte van de functionaliteit van een enkele microservice is beperkt. Dat maakt het onderhouden en updaten zoveel gemakkelijker. U hoeft zich alleen zorgen te maken over berichten van andere microservices waarop u zich abonneert (inputs) en uw API die kan worden aangeroepen (outputs).
-
Specialisatie: Microservices maken het mogelijk om de juiste tool voor de juiste taak te kiezen. Elke microservice kan zijn eigen taal, framework of ondersteunende diensten gebruiken die het meest geschikt is en de voorkeur heeft van het team dat er gebruik van maakt. Voor diensten die uitgebreide achtergrondberekeningen vereisen, kunnen ontwikkelaars ervoor kiezen om bijvoorbeeld Java te gebruiken. Terwijl anderen misschien vertrouwen op lichtere technologieën zoals PHP of Ruby.
-
Gedecentraliseerde verantwoordelijkheid: toegewijde teams nemen de volledige verantwoordelijkheid voor "hun" microservice. Dit leidt tot kleinere codebases, die ontwikkelaars helpen om zich te concentreren en een nauwere band met eindgebruikers te hebben. Dit leidt tot een betere motivatie en meer duidelijkheid. Zoals Amazon's CTO Werner Vogels het zei: "You build it, you run it". En dus bezit je het.
-
Snellere time-to-market: het bouwen van een microservice vereist een multifunctioneel ontwikkelingsteam dat onafhankelijk aan hun project werkt. Dit vermindert de synchronisatie-inspanningen tussen teams en maakt een aanzienlijk snellere implementatie mogelijk. Het productserviceteam kan bijvoorbeeld alleen werken, aanpassingen maken en implementaties automatiseren naar eigen goeddunken - onafhankelijk van waar het betalingsteam momenteel aan werkt.
-
Verhoogde veerkracht: een zakelijke applicatie die is gemaakt van een reeks microservices heeft geen enkel storingspunt. Als één dienst niet meer reageert, betekent dit niet automatisch dat de hele applicatie kapotgaat. U kunt bijvoorbeeld doorgaan met het streamen van films op Netflix, zelfs als de zoekopdracht is mislukt. Onderhoud of storingen zullen gebruikers niet zo zwaar treffen als bij een monolithische architectuur.
-
Uiterst schaalbaar: Microservices zijn klein en werken zelfstandig. Dit betekent dat het eenvoudiger is om ze verticaal te schalen en de algehele prestaties van de hele bedrijfsapplicatie te verbeteren. Zonder dat u de hele applicatie hoeft te schalen, kunt u een enkele functie of service opschalen. U kunt bedrijfskritieke services op meerdere servers implementeren voor betere beschikbaarheid en prestaties.
Uw startpunt voor Microservices
Om te profiteren van microservices, moet uw organisatie capabel genoeg zijn om deze te organiseren en te beheren. Vereiste tooling en infrastructuur worden aangeboden door commercetools, een toonaangevende e-commerce oplossing die microservices, API en Cloud samenbrengt. Hun Cloud gebaseerde microservices-oplossing bevat 300+ commerce-API's die afzonderlijk gebruikt kunnen worden. Met kant-en-klare commerce-blokken kun je eenvoudig je eigen infrastructuur maken of aanvullen. Dat maakt echte zakelijke wendbaarheid en e-commerce succes mogelijk. Als preferred commercetools-partner ondersteunt SQLI klanten met digitale strategieën, implementaties van commercetools, organisatorische verschuivingen en digitale continuïteiten.
Dit is het tweede artikel in onze serie artikelen over evolutionaire constructie. Op deze pagina kun je uitgebreid leren over de onderliggende principes zoals microservices, API, Cloud-commerce, headless-commerce en even-driven.
Whitepaper
Microservices: a paradigm shift for fast growing e-commerce business
5 steps to start with microservices today