3 research outputs found
Estrategias de arquitectura de solución escalables con aprovisionamiento de infraestructura automática (infraestructure as CODE - IAC))
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
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
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