Figure 5 - available via license: CC BY
Content may be subject to copyright.
The monolithic application software architecture implemented for stress testing.

The monolithic application software architecture implemented for stress testing.

Source publication
Article
Full-text available
Currently, organizations face the need to create scalable applications in an agile way that impacts new forms of production and business organization. The traditional monolithic architecture no longer meets the needs of scalability and rapid development. The efficiency and optimization of human and technological resources prevail; this is why compa...

Contexts in source publication

Context 1
... runs in a KVM. The following elements intervene in the general information of the architecture (presentation, application, and data layers depicted in Figure 5). Client: The client requests the application through port 80 to the load balancer. ...
Context 2
... regards to the process of reading/write hard disk speed (i.e., throughput), within the case of disk reading speed, there is no difference in both architectures (h = 3.833604 (see Table 8) and Figure 15). However, the disk writing speed in microservices is lowest (9.23 units less), instead of the one obtained by the Monolithic (see Figure 16). ...

Citations

... Hence, BPJS Kesehatan needs to set the application update period so that it is not updated too often [40], [41]. In addition, his factor can be improved by using auto-scaling technology, such as microservices, to increase the speed of performance of the Mobile JKN application function [42]. ...
Article
Full-text available
span lang="EN-US">Social security administration for health or Badan Penyelenggara Jaminan Sosial Kesehatan (BPJS Kesehatan), as a public legal entity, has a critical role in the health of the Indonesian population. BPJS Kesehatan introduced the Mobile national health insurance or jaminan kesehatan nasional (JKN) application to enhance its services, enabling Indonesians to access it directly. Nevertheless, the rating of the Mobile JKN application on the Google Play Store has shown a gradual decline over time. Therefore, this study was conducted to analyze the factors influencing the user experience of the Mobile JKN application, utilizing the review data obtained from the Google Play Store. Sentiment analysis using the Naïve Bayes (NB) classification model and support vector machine (SVM) combined with synthetic minority oversampling technique (SMOTE) and slang word replacement. The results obtained an accuracy value of 93.33%, precision of 93.76%, recall of 93.33%, and F1-score of 93.43%. A further analysis was conducted using online service quality factors to obtain the main factors influencing the experience of Mobile JKN application users. The evaluation findings revealed that factors of security, ease of use, and timeliness are three fundamental aspects that should be given immediate attention by BPJS Kesehatan while improving the Mobile JKN application in the future.</span
... These services communicate via well-defined APIs and protocols, enabling developers to work on individual components autonomously. Microservices promote modularity, flexibility, and scalability by allowing teams to iterate and scale services independently, leading to faster development cycles and improved fault isolation (Tapia et al., 2020). ...
Article
Full-text available
In the landscape of modern software development, the demand for scalability and resilience has become paramount, particularly with the rapid growth of online services and applications. Cloud-native technologies have emerged as a transformative force in addressing these challenges, offering dynamic scalability and robust resilience through innovative architectural approaches. This paper presents a comprehensive review of leveraging cloud-native technologies to enhance scalability and resilience in software development. The review begins by examining the foundational concepts of cloud-native architecture, emphasizing its core principles such as containerization, microservices, and declarative APIs. These principles enable developers to build and deploy applications that can dynamically scale based on demand while maintaining high availability and fault tolerance. Furthermore, the review explores the key components of cloud-native ecosystems, including container orchestration platforms like Kubernetes, which provide automated management and scaling of containerized applications. Additionally, it discusses the role of service meshes in enhancing resilience by facilitating secure and reliable communication between microservices. Moreover, the paper delves into best practices and patterns for designing scalable and resilient cloud-native applications, covering topics such as distributed tracing, circuit breaking, and chaos engineering. These practices empower developers to proactively identify and mitigate potential failure points, thereby improving the overall robustness of their systems. This review underscores the significance of cloud-native technologies in enabling software developers to build scalable and resilient applications. By embracing cloud-native principles and adopting appropriate tools and practices, organizations can effectively meet the evolving demands of modern software development in an increasingly dynamic and competitive landscape.
... [6,7], or are evaluated using simple systems, e.g. [8]. Furthermore, in these studies, it was not necessary to redesign the monolith functionalities to migrate to the microservice architecture. ...
... Some other perspectives compare the performance of monolith and microservices systems in terms of the distributed architecture of the solution, such as master-slave [17], the characteristics of the running environment, whether it uses containers or virtual machines [6], the particular technology used, such as different microservice discovery technologies [7], or other aspects of microservices deployment [8]. A major aspect of performance is the type of inter-microservice communication and the technology used. ...
Article
Due to scalability requirements and the split of large software development projects into small agile teams, there is a current trend toward the migration of monolith systems to the microservice architecture. However, the split of the monolith into microservices, its encapsulation through well-defined interfaces, and the introduction of inter-microservice communication add a cost in terms of performance. In this paper, we describe a case study of the migration of a monolith to a microservice architecture, where a modular monolith architecture is used as an intermediate step. The impact on migration effort and performance is measured for both steps. Current state-of-the-art analyses the migration of monolith systems to a microservice architecture, but we observed that migration effort and performance issues are already significant in the migration to a modular monolith. Therefore, a clear distinction is established for each of the steps, which may inform software architects on the planning of the migration of monolith systems. In particular, we consider the trade-offs of doing all the migration process or just migrating to a modular monolith.
... Today, agile development of scalable applications that influence new forms of production and business organization is a requirement for organizations. Scalability and quick development requirements are no longer met by traditional monolithic architectures [1]. Organizations want strong, technologically based solutions. ...
... However, it is up to the maintainers to choose which elements from the legacy system should be recreated as microservices and how. Each legacy feature's current structure, which may be structurally degraded, is examined as part of the redesign process in order to create a new design structure, or the ensuing microservice-based redesign [25]. Selecting the best migration solution for each application is complex due to its unique architecture. ...
... Our work aims to support or contradict their findings, providing valuable insights for academics and practitioners. In a study [25], the use of microservices vs. a monolithic design for a Web application is compared. The research found that microservices are more efficient in terms of hardware resources, cost reduction, and high productivity. ...
... These approaches make their choices based on a variety of data sources, including metrics and unpleasant odour catalogues. Out of these eight SLRs, [25] found microservices more efficient, cost-effective, and highly productive. However, the study neglects security and cyberattacks. ...
Preprint
Full-text available
Scalable solutions have become extremely required with the emergence of cloud computing and the transformation to microservices-based applications. Although creating software is challenging, creating a scalable system is far more challenging. A microservices architecture is a collection of smaller, independently deployable services as opposed to a monolithic application, which is created as a single integrated entity. The objective is to pave the way for a generic framework that helps companies and industries in their migration to microservices and get a methodology for evaluation that a company might use to compare its utilisation of microservices. This effort aims to enable enterprises to assess their capacity to successfully adopt microservices through the use of quality criteria. We conducted a Systematic Literature Review (SLR) to find 48 selected research papers over the last four years (2020–2023) and compile pertinent research that provides data about contrasting the quality attributes of monolithic and microservice applications. This study demonstrates how choosing quality attribute metrics can provide a more accurate evaluation of both monolithic and microservice systems. The shift from a monolithic to a microservice-based architecture will be made possible thanks to the relevant indicators we provide. According to the findings of the literature review, the most important quality attributes and subcharacters are: performance, scalability, coupling, cohesion, deployment, security, development, complexity, maintainability, and availability. The findings indicate a rising tendency in the research community towards quality-driven migration to microservices, and numerous researchers take quality characteristics into account in the methods they outline in their work and include quality improvement as one of the migration aims.
... Fig. 1. Ciclo de vida estándar de componentes JSF [14] La capa model (modelo) sería el conjunto de componentes que harán las funciones de backend, que se encargan de implementar las funciones internas del servidor como tomar datos, procesarlos y enviar la respuesta al usuario [15]. ...
Article
La plataforma Java EE (Enterprise Edition) permite el desarrollo de software de tipo empresarial, cubriendo todas las capas que una aplicación monolítica requiere, pero carece de funcionalidades reactivas de manera nativa, lo que ocasiona un menor desempeño en la presentación de información al usuario final. Este problema afecta a los usuarios, porque la información que se visualiza en sus pantallas probablemente ya está desactualizada. En esta investigación se plantea comprobar la integración entre Java EE (plataforma backend) y Angular (framework frontend), con el propósito de mejorar el tiempo de respuesta para el usuario. Se utiliza el método Design Science Research como ruta principal de la investigación para determinar el problema, los antecedentes, la situación actual y los objetivos del proyecto propuesto. La parte teórica incluye información sobre plataformas tecnológicas y la metodología para el desarrollo del software propuesto. Se implementa una capa de servicios REST para proporcionar información de un sistema utilizado como caso de estudio en la Universidad Técnica del Norte, que se denomina SIAD (Sistema Integrado de Actividades Docentes), dicho servicio es consumido por la aplicación web Angular. Por otro lado, se ejecutan las pantallas JSF, las cuales consumen la información proporcionada por los componentes EJB. Finalmente, se ejecutan los dos tipos de clientes web (JSF y Angular) y se valida el desempeño utilizando el estándar ISO/IEC 25010. Se puede concluir de manera global que, los componentes reactivos de Angular mejoran el indicador de desempeño del sistema informático en un 21%.
... Moreover, each of these services can be deployed independently, offering flexibility to the teams to scale up and scale down as needed. [9] Despite this independence, all these services communicate harmoniously to attain the application's purpose using well-defined API contracts. ...
Article
Full-text available
The evolution of software architecture has led to the emergence of various paradigms, including monolithic, microservices, and the lesser-explored modular monolith architecture. This paper delves into the historical development of these architectures, assessing their advantages and limitations, with a specific focus on their application in the fintech domain. Through an in-depth literature review and case studies of organizations like Shopify, Root, and Google, the study evaluates the potential of modular monolith architecture as the primary choice for developing efficient payment systems. By addressing the research gaps in existing studies and comparing modular monoliths with traditional monolithic and microservices architectures, this paper provides valuable insights for software developers, architects, and fintech industry professionals.
... Some other studies analyzed the technical issues of building microservices. Tapia et al. [28] assessed the performance and relationship between different variables of an application that runs in a monolithic structure compared to one of the microservices. Bandeira et al. [27] analyzed microservice-related discussions on Stack Overflow and categorized them into three: technical, conceptual, and nonrelated discussion. ...
... Bandeira et al. [27] analyzed microservice-related discussions on Stack Overflow and categorized them into three: technical, conceptual, and nonrelated discussion. Soldani et al. [28] decomposed the pains and gains of designing, developing, and operating microservices. Bogner et al. [29] identified the technologies, characteristics, and software quality-related issues on microservices. ...
... Las aplicaciones empresariales han impulsado a crear nuevos enfoques de solución para dar frente a las diferentes problemáticas que se presentan en el desarrollo tradicional de software como son la escalabilidad y el desarrollo rápido de aplicaciones [1]. Hoy en día, no se considera como buena práctica tener una sola aplicación que gestione toda la solución empresarial. ...
... Git es un sistema de control de versiones de código fuente, gratuito y distribuido como código abierto. Éste se utiliza para mantener actualizada la aplicación en todos los entornos, manteniendo así la integridad y asegurando que tanto los procesos como los resultados sean adecuados [1]. GitLab 3 es un Servidor de repositorio de código integrable con Jenkins y otras herramientas de CI/CD. ...
Conference Paper
The API Gateway is a fundamental component within a large-scale microservices architecture, as it centralizes all the applications consumed by the different clients in a single access point. This is responsible for managing and administering security as a policy enforcement point, as well as the API lifecycle. The basic function of the API Gateway is to intercept all incoming requests that are sent through the API management system. Managing APIs in large systems requires a lot of effort to maintain the API lifecycle. To address this issue, we created a project that automatically manages the registration and deployment of APIs, using the starter provided by the Spring Boot framework, which is normally used to solve dependency management, WSO2 API Gateway and Jenkins as a tool for automating deployment tasks. The testing and validation process of the API lifecycle management solution scheme was performed in a controlled environment with virtual machines and docker container for the API Gateway.
... In the context of achieving high availability in containerized solutions, operating system-level virtualization is used, allowing multiple Linux systems to run concurrently. Unlike technologies that rely on a separate virtualization hypervisor, containers operate without the need for an additional hypervisor [18][19][20]. ...
Article
Full-text available
In the current era of prevailing information technology, the requirement for high availability and reliability of various types of services is critical. This paper focusses on the comparison and analysis of different high-availability solutions for Linux container environments. The objective was to identify the strengths and weaknesses of each solution and to determine the optimal container approach for common use cases. Through a series of structured experiments, basic performance metrics were collected, including average service recovery time, average transfer rate, and total number of failed calls. The container platforms tested included Docker, Kubernetes, and Proxmox. On the basis of a comprehensive evaluation, it can be concluded that Docker with Docker Swarm is generally the most effective high-availability solution for commonly used Linux containers. Nevertheless, there are specific scenarios in which Proxmox stands out, for example, when fast data transfer is a priority or when load balancing is not a critical requirement.