SysteemarchitectuurBackend ontwikkelaar

Wat is microservices-architectuur en wat zijn de voordelen en nadelen ervan?

Slaag voor sollicitatiegesprekken met de Hintsage AI-assistent

Antwoord.

Microservices-architectuur is een benadering voor het bouwen van softwaresystemen, waarbij de applicatie is opgebouwd uit kleine, geïsoleerde services, die elk verantwoordelijk zijn voor een bepaalde business-taak, onafhankelijk van elkaar worden ontwikkeld en gedeployed.

Voordelen:

  • Schaalbaarheid: elke service kan afzonderlijk worden geschaald.
  • Onafhankelijkheid van ontwikkeling: verschillende teams kunnen snel afzonderlijke services ontwikkelen.
  • Weerbaarheid tegen storingen: een fout in één service leidt niet tot de uitval van het gehele systeem.

Nadelen:

  • Complexiteit van beheer: vereiste configuratie van interacties, monitoring en load balancing.
  • Complexiteit van deployment: het coördineren van veel services is moeilijk.
  • Groei in communicatiekosten: services communiceren via een netwerk, wat latencies verhoogt en betrouwbare integratie vereist.

Voorbeeld van een REST-skeleton microservice in Python (Flask):

from flask import Flask, jsonify app = Flask(__name__) @app.route('/user/<int:user_id>') def get_user(user_id): return jsonify({"user_id": user_id, "name": "Ivan"}) if __name__ == "__main__": app.run(port=5001)

Belangrijkste kenmerken:

  • Elke service is een zelfstandige applicatie.
  • Nieuwe technologieën of talen kunnen eenvoudig worden geïmplementeerd voor verschillende services.
  • Fouten in netwerkcommunicatie en gegevensconsistentie moeten worden beheerd.

Vragen met een valstrik.

Kunnen microservices werken in één database?

Dit is toegestaan tijdens de migratie van een monoliet, maar is in strijd met de filosofie, omdat elke service zijn eigen gegevens moet opslaan om afhankelijkheden te minimaliseren en onafhankelijkheid van ontwikkeling te waarborgen.

Is het verplicht om Docker te gebruiken voor microservices-architectuur?

Nee, Docker vergemakkelijkt deployment en isolatie, maar microservices kunnen ook zonder containerisatie worden geïmplementeerd, bijvoorbeeld met virtuele machines of zelfs afzonderlijke fysieke servers.

Wat gebeurt er als het API-contract tussen services is verbroken, maar de CI/CD pipeline is volledig groen?

Een fout in het API-contract zal leiden tot communicatieproblemen tussen services, die alleen kunnen worden geïdentificeerd met integratietests. Een groene build in CI/CD garandeert niet dat verschillende versies van services compatibel zijn met elkaar.