Architektura mikroserwisów — podejście do budowy systemów oprogramowania, w którym aplikacja składa się z małych, izolowanych serwisów, z których każdy odpowiada za określone zadanie biznesowe, jest rozwijany i wdrażany niezależnie od innych.
Zalety:
Wady:
Przykład makiety mikroserwisu w Pythonie (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)
Kluczowe cechy:
Czy mikroserwisy mogą działać w jednej bazie danych?
Jest to dopuszczalne na etapie migracji z monolitu, ale sprzeczne z ideologią, ponieważ każdy serwis powinien przechowywać swoje dane osobno, aby zminimalizować zależności i zapewnić niezależność rozwoju.
Czy konieczne jest używanie Dockera w architekturze mikroserwisów?
Nie, Docker ułatwia wdrażanie i izolację, ale mikroserwisy można zrealizować także bez konteneryzacji, korzystając na przykład z maszyn wirtualnych lub nawet oddzielnych fizycznych serwerów.
Co się stanie, jeśli kontrakt API między serwisami zostanie złamany, ale w pipeline CI/CD wszystko jest zielone?
Złamanie kontraktu API doprowadzi do błędów interakcji między serwisami, które można wykryć tylko za pomocą testów integracyjnych. Zielony build w CI/CD nie gwarantuje, że różne wersje serwisów są ze sobą zgodne.