Architettura a microservizi — approccio alla costruzione di sistemi software in cui l'applicazione è composta da piccoli servizi isolati, ognuno dei quali si occupa di un determinato compito di business, sviluppato e distribuito indipendentemente dagli altri.
Vantaggi:
Svantaggi:
Esempio di modello REST di un microservizio 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)
Caratteristiche chiave:
Possono i microservizi lavorare su un unico database?
Questo è accettabile durante la migrazione da un monolite, ma contraddice l'ideologia, poiché ogni servizio dovrebbe memorizzare i propri dati separatamente per minimizzare le dipendenze e garantire l'indipendenza dello sviluppo.
È obbligatorio usare Docker per l'architettura a microservizi?
No, Docker semplifica il dispiegamento e l'isolamento, ma i microservizi possono essere realizzati anche senza containerizzazione, utilizzando, ad esempio, macchine virtuali o anche server fisici separati.
Cosa succede se il contratto API tra i servizi è rotto, ma nel pipeline CI/CD tutto è verde?
Un guasto nel contratto API porterà a errori di interazione tra i servizi, che possono essere individuati solo tramite test di integrazione. Un build verde nel CI/CD non garantisce che le diverse versioni dei servizi siano compatibili tra loro.