Riassunto analitico
Lavorare su un sistema software complesso di grandi dimensioni e costituito da un'unica codebase, è parecchio difficile. Per far fronte a questo problema, nel tempo, sono state create ed adottate diverse soluzioni. In particolare, negli ultimi anni, è stata largamente adottata una nuova tipologia di architettura denominata "architettura a microservizi". Tramite quest'ultima, il sistema viene suddiviso in tanti servizi piccoli, coesi ma debolmente accoppiati, avviati su un proprio processo e che comunicano tramite un protocollo di rete lightweight. Ciascun microservizio può scalare indipendentemente dagli altri e può fare uso delle tecnologie più inclini alle sue esigenze. Per poter modellare al meglio l'intero sistema e garantire una netta indipendenza tra i vari microservizi, può essere utilizzato il Domain-driven Design. Tramite quest'ultimo, infatti, si crea un modello del sistema che fa uso dei concetti del dominio del progetto e nel quale vengono messi in luce dei contesti limitati che rappresentano delle attività di dominio. Ciascuno di questi contesti può essere considerato come l'equivalente di un microservizio. Lo scopo di questo progetto di tesi è stato quello di studiare l'approccio sintetizzato qui sopra e applicarlo a Magento, un noto framework per la creazione di siti web e-commerce. In particolare, è stato estratto il componente che si occupa della gestione del magazzino come microservizio esterno al framework.
|