3 research outputs found

    Estrategias de arquitectura de solución escalables con aprovisionamiento de infraestructura automática (infraestructure as CODE - IAC))

    Get PDF
    Este documento tiene como objetivo principal identificar y analizar las diferentes estrategias de implementación de arquitecturas de software escalables, haciendo uso del aprovisionamiento automático de infraestructura, conocido como Infraestructure as Code (IAC), que busca garantizar la escalabilidad y la tolerancia a fallos en las aplicaciones empresariales. En primer lugar, se realiza una investigación sobre la evolución de las arquitecturas de software en los últimos años, enfocándose en las estrategias utilizadas en aplicaciones empresariales. Se identificaron las principales limitaciones de la arquitectura tradicional monolítica y de la arquitectura orientada a servicios. Posteriormente, se emplean herramientas de software como Terraform y Terratest para llevar a cabo una prueba de concepto. Estas herramientas permiten automatizar el proceso de aprovisionamiento de infraestructura en diferentes plataformas y entornos. Mediante esta prueba, se evalúa la viabilidad y efectividad de las estrategias de aprovisionamiento automático en términos de escalabilidad y tolerancia a fallos. Los resultados de este estudio contribuirán a la comprensión de las arquitecturas de software escalables y sus beneficios en términos de operación eficiente y reducción de errores. Además, proporcionarán una base sólida para la implementación exitosa de estrategias de aprovisionamiento automático de infraestructura en aplicaciones empresariales.This document aims to identify and analyze different strategies for implementing scalable software architectures using Infrastructure as Code (IAC), an automated infrastructure provisioning approach. The primary objective is to ensure scalability and fault tolerance in enterprise applications. Firstly, this research explores the evolution of software architectures in recent years, focusing on strategies employed in enterprise applications. It identifies the main limitations of traditional monolithic architecture and service-oriented architecture. Subsequently, software tools such as Terraform and Terratest are utilized to conduct a proof of concept. These tools automate the infrastructure provisioning process across various platforms and environments. Through this proof of concept, the feasibility and effectiveness of automated provisioning strategies in terms of scalability and fault tolerance are evaluated. The findings of this study will contribute to understanding scalable software architectures and their benefits in terms of efficient operation and error reduction. Furthermore, they will provide a solid foundation for the successful implementation of automated infrastructure provisioning strategies in enterprise applications

    Exploring and categorizing maintainability assurance research for service and microservice-based systems

    Get PDF
    Im Laufe des Softwarelebenszyklus eines Programms innerhalb einer sich ständig wechselnden Softwareumgebung ist es wahrscheinlich, dass dieses Programm regelmäßig gewartet werden muss. Wartungen kosten Geld und somit ist es wichtig, dass ebensolche Wartungen effizient und effektiv durchgeführt werden können. Im Laufe der Geschichte der Softwareentwicklung traten unter anderem zwei Architekturmuster hervor: Serviceorientierte Architektur und Microservices. Da diese Architekturmuster ein hohes Maß an Wartbarkeit versprechen, wurden viele Altsysteme hin zu diesen modernen Architekturen migriert. Es kann fatale Folgen für Unternehmen haben, wenn Änderungen an einem System nicht schnell, risikofrei und fehlerfrei umgesetzt werden können. Es wurden bereits viele Forschungsarbeiten bezogen auf die Wartbarkeit von serviceorientierter Architektur publiziert. Systeme basierend auf Microservices fanden jedoch, bezogen auf Wartbarkeitssicherung, nicht viel Beachtung. Sämtliche Forschungsarbeiten befinden sich verteilt auf viele Literaturdatenbanken, wodurch ein umfassender Überblick erschwert wird. Um einen solchen Überblick bereitzustellen, führten wir im Rahmen dieser Bachelorarbeit eine systematische Literaturstudie durch, die sich mit der Wartbarkeitssicherung von serviceorienter Architektur und Systemen basierend auf Microservices beschäftigt. Zur Durchführung dieser systematischen Literaturstudie entwickelten wir eine Reihe von relevanten Forschungsfragen sowie ein striktes Forschungsprotokoll. Aufbauend auf diesem Protokoll sammelten wir insgesamt 223 Forschungsarbeiten von verschiedenen Herausgebern. Diese Arbeiten wurden bezüglich ihres Inhalts zuerst in drei Gruppen von Kategorien unterteilt (architektonisch, thematisch und methodisch). Danach wurden die jeweils relevantesten Forschungsrichtungen aus jeder thematischen Kategorie herausgearbeitet und vorgestellt. Zum Abschluss wurden deutliche Unterschiede der in den Forschungsarbeiten präsentierten Inhalte in Bezug auf serviceorientierte Architektur und Microservice-basierte Systeme herausgearbeitet und dargestellt. Unsere Ergebnisse zeigten eine deutliche Unterrepräsentation von Forschungsarbeiten zur Wartbarkeitssicherung für Microservice-basierte Systeme. Während der Untersuchung der Kategorien konnten wir diverse Forschungsrichtungen innerhalb dieser feststellen. Ein Beispiel hierfür ist die Forschungsrichtung "change impact in business processes" in der Kategorie "Change Impact and Scenarios". Abschließend konnten wir einige Unterschiede bezogen auf die gesammelten Forschungsarbeiten zwischen Systemen basierend auf einer serviceorientierten Architektur und Systemen basierend auf Microservices feststellen. Ein solcher Unterschied kann zum Beispiel in der Kategorie "Antipatterns and Bad Smells" gefunden werden. Im Vergleich zu Forschungsarbeiten, welche sich auf serviceorientierte Architektur beziehen, beinhalten Forschungsarbeiten im Zusammenhang mit Systemen auf Basis von Microservices nur grundlegende Informationen zu Antipatterns, jedoch keine Herangehensweisen, um diese zu erkennen. Aufgrund unserer Ergebnisse schlagen wir einen stärkeren Fokus auf Forschung zur Wartbarkeitssicherung in Microservice-basierten Systemen vor. Mögliche zukünftige Forschungsarbeiten könnten überprüfen, ob Herangehensweisen zur Wartbarkeitssicherung von serviceorientierter Architektur auch bei Microservices anwendbar sind. Darüber hinaus schlagen wir die Durchführung von systematischen Literaturstudien vor, welche Themen wie "runtime adaptation", "testing" und "legacy migration" untersuchen, da diese Themen in unserer Literaturstudie ausgeschlossen wurden.It is very likely that software running in an everchanging environment needs to evolve at multiple points during its lifecycle. Because maintenance costs money, it is important for such tasks to be as effective and efficient as possible. During the history of software development service- and microservice-based architectures have emerged among other architectures. Since these architectures promise to provide a high maintainability, many legacy systems are or were migrated towards a service- or microservice-based architecture. In order to keep such systems running, maintenance is inevitable. While a lot of research has been published regarding maintainability assurance for service-based systems, microservice-based systems have not gotten a lot of attention. All published research is spread across several scientific databases which makes it difficult to get an extensive overview of existing work. In order to provide such overview of maintainability assurance regarding service- and microservice-based systems, we conducted a systematic literature review. To support our literature review, we developed a set of meaningful research questions and a rigid research protocol. Based on our protocol we collected a set of 223 different papers. These papers were first categorized into a threefold set of categories (architectural, thematical and methodical). After that, the most relevant research directions from each thematical category were extracted and presented. Lastly, we extracted and presented notable differences between approaches relating to service-oriented architecture or microservice-based systems. Our findings show a clear underrepresentation of maintainability assurance approaches suitable for microservice-based systems. We further discovered that regarding our formed categories, we could find several research directions such as change impact in business processes in "Change Impact and Scenarios". In the end, we could identify some differences between service- and microservice-based systems concerning approaches we retrieved in this thesis. A difference, for example was that in comparison with papers related to service-oriented architecture in "Antipatterns and Bad Smells", microservices related papers only contained basic information on antipatterns, but no approaches to detect them. Due to our findings we suggest a higher participation in research regarding maintainability assurance for microservice-based systems. Possible future work in this area could include further research on the applicability of service-oriented maintainability assurance approaches or techniques in microservice-based systems. Furthermore, future researchers could conduct follow-up literature reviews and investigate topics such as runtime adaptation, testing and legacy migration, since we excluded such topics from this thesis

    Customisable transformation-driven evolution for service architectures

    Get PDF
    Service-based architectures have now become commonplace, creating the need to address their systematic maintenance and evolution. We propose to enable transformation-driven evolution for service architectures in a semi-automated fashion. In contrast to the existing solutions like service wrapping, migration or run-time adaptation etc., the proposal supports primitive and customisable architectural transformations to support an incremental evolution for service architectures. An empirical approach is adopted to investigate the extent to which the architecture evolution tasks (i.e. modeling, transformation and refinement) can be automated and validated in context to the central hypothesis for architecturecentric software evolution. Based on the initial results, we plan to proceed toward modeling and automating the architectural evolution in a formal way
    corecore