Breaking down monoliths with Microservices and DevOps: an industrial experience report

   page       BibTeX_logo.png   
2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)

Recent trends in software production fostered the adoption of microservice architectures, where a product is the result of the coordinated execution of several loosely coupled autonomous services, thus promoting modularity, scalability, and integration of legacy products by wrapping. This architectural style also promotes parallel development, as different teams can be in charge of different services; however, this parallelization is at first sight at odds with the established practice of continuous integration: a change to a single service may cause cascading effects that the local testing cannot capture, and the overall functionality may thus get compromised even though all services apparently work. In this paper, we report an experience of a successful and thorough implementation of DevOps techniques into a large business, carried out by a relatively small team. We discuss the steps taken to build a continuous integration pipeline performing system-wide quality assurance, the development practices that enable such a pipeline to be effective, and the lessons learned by applying these practices in a digital publishing industry setting.