6 research outputs found

    From Monolith to Microservices: A Classification of Refactoring Approaches

    Full text link
    While the recently emerged Microservices architectural style is widely discussed in literature, it is difficult to find clear guidance on the process of refactoring legacy applications. The importance of the topic is underpinned by high costs and effort of a refactoring process which has several other implications, e.g. overall processes (DevOps) and team structure. Software architects facing this challenge are in need of selecting an appropriate strategy and refactoring technique. One of the most discussed aspects in this context is finding the right service granularity to fully leverage the advantages of a Microservices architecture. This study first discusses the notion of architectural refactoring and subsequently compares 10 existing refactoring approaches recently proposed in academic literature. The approaches are classified by the underlying decomposition technique and visually presented in the form of a decision guide for quick reference. The review yielded a variety of strategies to break down a monolithic application into independent services. With one exception, most approaches are only applicable under certain conditions. Further concerns are the significant amount of input data some approaches require as well as limited or prototypical tool support.Comment: 13 pages, 4 tables, 2 figures, Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, First International Workshop, DEVOPS 2018, Chateau de Villebrumier, France, March 5-6, 2018, Revised Selected Paper

    BPM2DDD: A Systematic Process for Identifying Domains from Business Processes Models

    Get PDF
    Domain-driven design is one of the most used approaches for identifying microservice architectures, which should be built around business capabilities. There are a number of documentation with principles and patterns for its application. However, despite its increasing use there is still a lack of systematic approaches for creating the context maps that will be used to design the microservices. This article presents BPM2DDD, a systematic approach for identification of bounded contexts and their relationships based on the analysis of business processes models, which provide a business view of an organisation. We present an example of its application in a real business process, which has also be used to perform a comparative application with external analysts. The technique has been applied to a real project in the department of transport of a Brazilian state capital, and has been incorporated into the software development process employed by them to develop their new system.</jats:p

    Modelo inteligente de especificaci贸n de la granularidad de aplicaciones basadas en microservicios.

    Get PDF
    Los microservicios son un enfoque arquitect贸nico y organizativo del desarrollo de software en el que las aplicaciones est谩n compuestas por peque帽os servicios independientes que se comunican a trav茅s de una interfaz de programaci贸n de aplicaciones (API) bien definida, muchas empresas utilizan los microservicios para estructurar sus sistemas, tambi茅n la arquitectura de microservicios ha sido utilizada en otras 谩reas como la internet de las cosas (IoT), computaci贸n en el borde (edge computing), computaci贸n en la nube, desarrollo de veh铆culos aut贸nomos, telecomunicaciones, sistemas de E-Salud, E-Learning, entre otros. Un gran desaf铆o al dise帽ar este tipo de aplicaciones es encontrar una partici贸n o granularidad adecuada de los microservicios, proceso que a la fecha se realiza y dise帽a de forma intuitiva, seg煤n la experiencia del arquitecto o del equipo de desarrollo. La definici贸n del tama帽o o granularidad de los microservicios es un tema de investigaci贸n abierto y de inter茅s, no se han estandarizado patrones, m茅todos o modelos que permitan definir qu茅 tan peque帽o debe ser un microservicio. Las estrategias m谩s utilizadas para estimar la granularidad de los microservicios son: el aprendizaje autom谩tico, la similitud sem谩ntica, la programaci贸n gen茅tica y la ingenier铆a de dominio. En este trabajo de investigaci贸n doctoral se propone un modelo inteligente para especificar y evaluar la granularidad de los microservicios que hacen parte de una aplicaci贸n; teniendo en cuenta algunas caracter铆sticas como la complejidad cognitiva, el tiempo de desarrollo, el acoplamiento, la cohesi贸n y su comunicaci贸n. En el capitulo uno se presentan el marco te贸rico, se plantea el problema de investigaci贸n resuelto, junto con las preguntas de investigaci贸n que ayudan a resolverlo, tambi茅n se presentan los objetivos y la metodologia de investigaci贸n, por medio de la cual se propone una nueva pr谩ctica, un modelo inteligente de especificaci贸n de la granularidad de los microservicios llamada 驴Microsevices Backlog驴, tambi茅n se presentan las fases y m茅todos de investigaci贸n que permitieron resolver las preguntas de investigaci贸n planteadas. El captiulo dos presenta el esatado del arte y los trabajos relacionados con el presente trabajo de investigaci贸n doctoral; tambi茅n se identifican las m茅tricas que se han utilizado para definir y evaluar la granularidad de los microservicios. En el capitulo 3 se caracteriza el proceso de desarrollo de aplicaciones basadas en microservicios, explicando su uso en un caso de estudio llamado 驴Sinplafut驴. En el capitulo 4 se plantea la descripci贸n del 驴Microservice Backlog驴, se presenta la definici贸n de cada uno de sus componentes, entre los cuales se encuentran: el componente parametrizador, el componente agrupador (un algoritmo gen茅tico y un algoritmo de agrupamiento sem谩ntico basado en aprendizaje autom谩tico no supervisado), el componente evaluador de m茅tricas y el componente comparador de descomposiciones y de microservicios candidatos, tambi茅n se presenta la formulaci贸n matem谩tica de la granularidad de aplicaciones basadas en microservicios. El capitulo 5 presenta la evaluaci贸n de la pr谩ctica propuesta, se realiz贸 de forma iterativa usando cuatro casos de estudio, dos ejemplos planteados en el estado del arte (Cargo Tracking and JPet-Store) y dos proyectos reales (Foristom Conferences y Sinplafut), se utiliz贸 el Microservices Backlog para obtener y evaluar los microservicios candidatos de las cuatro aplicaciones. Se realiz贸 un analisis comparativo contra m茅todos propuestos en el estado del arte y con el dise帽o basado en el dominio (DDD), el cual es le m茅todo m谩s utilizado para definir los microservicios que van a ser parte de una aplicaci贸n. El Microservices Backlog obtuvo un bajo acoplamiento, alta cohesi贸n, baja complejidad y reduce la comunicaci贸n entre los microservicios, esto comparado con las propuestas del estado del arte y con DDD. Finalmente en el capitulo 6 se presentan las conclusiones, contribuciones, limitaciones y productos obtenidos como resultado de esta tesisDoctoradoDOCTOR(A) EN INGENIER脥

    Microservices identification through interface analysis

    No full text
    The microservices architectural style is gaining more and more momentum for the development of applications as suites of small, autonomous, and conversational services, which are then easy to understand, deploy and scale. One of today芒\u80\u99s problems is finding the adequate granularity and cohesiveness of microservices, both when starting a new project and when thinking of transforming, evolving and scaling existing applications. To cope with these problems, the paper proposes a solution based on the semantic similarity of foreseen/available functionality described through OpenAPI specifications. By leveraging a reference vocabulary, our approach identifies potential candidate microservices, as fine-grained groups of cohesive operations (and associated resources). We compared our approach against a state-of-the-art tool, sampled microservices-based applications and decomposed a large dataset of Web APIs. Results show that our approach is able to find suitable decompositions in some 80% of the cases, while providing early insights about the right granularity and cohesiveness of obtained microservices
    corecore