Supporting Microservice Evolution
Adalberto R. Sampaio,Harshavardhan Kadiyala,Bo Hu,John Steinbacher,Tony Erwin,Nelson Rosa,Ivan Beschastnikh,Julia Rubin
DOI: https://doi.org/10.1109/icsme.2017.63
2017-01-01
Abstract:Microservices have become a popular pattern for deploying scale-out application logic and are used at companies like Netflix, IBM, and Google. An advantage of using microservices is their loose coupling, which leads to agile and rapid evolution, and continuous re-deployment. However, developers are tasked with managing this evolution and largely do so manually by continuously collecting and evaluating low-level service behaviors. This is tedious, error-prone, and slow. We argue for an approach based on service evolution modeling in which we combine static and dynamic information to generate an accurate representation of the evolving microservice-based system. We discuss how our approach can help engineers manage service upgrades, architectural evolution, and changing deployment trade-offs.