Microservice-oriented Product Line Architecture Design: An Exploratory Study - Costa, Ana Claudia L. A. I.; Colanzi, Thelma E.; Marcolino, Anderson S.; Barbosa, Ellen F. (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), 2019)
Microservice has been successfully employed in software industry [1, 11], as they provide modularization and easy management of small and autonomous services, high availability, scalability and short time-to-market. A recent study on microservices shows that most studies generate specific solutions, which emphasize the need for fundamental research, proposals of reusable practices and works that focus on providing information to ease communication between architects and stakeholders [11] -- software architecture can be a powerful tool for this regard. The definition and documentation of the software product line architecture (PLA) is an important activity, especially for inception and extraction of microservice-oriented PLA, because they involve decisions about how to design customizable microservices, how to arrange the communication between microsservices and APIs, etc. In this work, it is proposed a metamodel for the specification of microsserve-oriented PLA design in order to assist the developer in carrying out such an activity. The proposed metamodel was validated in an exploratory study, in which a new PLA was designed through the instantiation of the proposed metamodel and a product was configured from the designed PLA. Both the metamodel and its instantiation were evaluated in a survey involving software developers. The results indicate that the metamodel addresses the structural needs of microservice-oriented architectures. The main contributions of this work are (i) to assist the software product line developers in the specification and documentation of microservice-oriented PLA design and (ii) the lessons about the industrial practice learned from the surveys that are useful to enhance the proposed metamodel.