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:
Nadelen:
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:
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.