In a microservice architecture, each service is designed to be independent of other microservices. The size of a microservice, defined by the features it provides, directly impacts performance and availability of the microservice. However, none of the currently available approaches take this into account. MicADO provides an approach to improve the performance of a microservice architecture by workload-based feature clustering. Given a feature model, the current microservice architecture, and the workload, this approach recommends a deployment that improves the performance for the given workload using a genetic algorithm. MicADO is an open-source tool, in which we implemented this approach, and applied it in a case study on an ERP system. For different workloads, the resulting generated microservice architectures show substantial improvements, which sets the potential of the approach.
- Paper at the International Conference on Software Architecture (IEEE) (pre-print)
- MicADO on github
- Thesis Sander Klock