1 |
Microservices in context: Internet of Things : Infrastructure and ArchitectureKhan, Asghar January 2017 (has links)
The enterprise systems are built with a monolithic way of software architecture which may not be the very suitable and realistic solutions, due to the quantity and diversity of Internet of Things (IOT) devices connected to the internet. The large code is based as a single deployable unit; making it cumbersome and difficult to change, test, and deploy – typically in the monthly deployment cycles. Which could potentially be a large impact and high-risk for updates and deployment build up between releases. The thesis aims to exploit Microservices Architecture in context of the Internet of Things. Because of scalability and rapid deployment, Microservices Architecture (MSA) naturally fits for M2M and IOT developments. Therefore, it has become increasingly popular and highly suited as a design choice in the context of developing IOT applications. We have proposed various ontologies for conceptual architecture designs. Our conceptual model encompasses all the essential elements and entities that constitute IOT; describing various characteristics of microservices and consideration to be used as a basis for developing a Reference Architecture model. The reference architecture is effectively exploiting Microservices Architectural Style for a diverse set of things composition like sensor devices, connectivity and transportation protocols for IP enabled IOT smart objects. The thesis will contribute to the conceptual space of more successful reference architectures. The goal is to provide features and deployment information with instantiation guidelines to derive the software architecture instances in a given IOT application domain. Thus, it promises to become a valuable framework in the derivation of the Microservices IOT architectures.
|
2 |
Abandoning Monolithic Architecture: Leaving an old paradigm for the possibilities of containerized microservices using an automated orchestration toolCardell, Sabina, Widén, Oscar January 2023 (has links)
Många stora organisationer som myndigheter och banker arbetar med en monolitisk applikationsarkitektur som är ett gammalt sätt att strukturera applikationer. Flera faktorer som att attrahera och behålla talang, vara skalbar och flexibel, samt en bra tjänsteleverans driver dessa organisationer att byta till en mikrotjänstorienterad arkitektur. Att migrera stora applikationer och samtidigt leverera tjänster till kunder eller användare är en stor och svår uppgift. Problemet är att det inte finns tillräckligt med forskning om hur man arbetar under denna typ av modernisering av applikationsarkitekturen samtidigt som organisatorisk stabilitet upprätthålls. Denna studie syftar till att bättre förstå hur organisatorisk stabilitet kan upprätthållas under tider av stora tekniska förändringar i arbetssätt under övergångsperioden för arkitekturer. Studien utgick från följande forskningsfråga: Hur upprätthålls organisatorisk stabilitet under övergångsperioden för modernisering av arkitekturer under flytten mot mikrotjänster? Studien har baserats på en kvalitativ ansats, där en fallstudie har använts för att samla in empiriskt material. Studiens empiriska material har samlats in genom åtta semistrukturerade intervjuer med anställda med olika roller på myndigheten som utför ett storskaligt applikationsarkitektur projekt; containerprojektet. Datan analyserades med hjälp av tematisk analys. Studiens resultat visar hur både förberedande och löpande hantering är viktiga för framgång. I de förberedande stadierna är faktorer relaterade till risktagande och hantering av projektets arbetsstyrka viktiga att besluta om. När projektet väl har startat är det viktigt att aktivt arbeta med förändringsarbete och att vara flexibel, kommunicera med riktad information och hantera varje specifikt hinder noggrant. Studien visade också hur valet av teknik inte är avgörande för projektets framgång utan en metod för att nå dit. Resultaten har visat hur uppdelningen av en stor plan i mindre projekt, som vidare delas upp i faser, är en framgångsfaktor. Studien har bidragit med nya insikter till forskningen inom IT-hantering och applikationsarkitektur. / Many large organizations, such as government entities and banks, operate with a monolithic application architecture, an old way of structuring applications. Several factors including attracting and maintaining talent, being scalable and flexible, as well as a good service delivery, are driving these organizations to change toward a microservice-oriented architecture. To migrate large applications while simultaneously delivering the services to clients or users is a large and challenging task. The problem is that there is insufficient research on how to work during this type of application architecture modernization while maintaining organizational stability. This thesis aims to better understand how organizational stability can be maintained during times of disruptive technological change in the workspace during the transition period of architecture. The study utilized the following research question: How to maintain organizational stability in the transition period of architectural modernization moving towards microservices? The study has been based on a qualitative approach, where one case has been used in gathering empirical material. The study's empirical material has been collected through eight semi-structured interviews with employees of various roles at the Swedish agency performing a large-scale application architecture project; the containerization-project. The data were analyzed using thematic analysis. The thesis findings show how both preparatory and ongoing management contributions are essential for success. In the preparatory stages, factors related to risk-taking and managing the project workforce are essential to decide. Once the project has started, it is crucial to work on change management efforts actively and to be flexible, communicate with targeted information, and handle each specific obstacle carefully. The study also showed how the choice of technologies is not central to the project's success but a method to get there. The findings have shown how dividing a large plan into smaller projects, further divided into phases, is a success factor. The study contributed new insights to IT management and application architecture research.
|
3 |
Enhancing Availability of Microservice Architecture : A Case Study on Kubernetes Security ConfigurationsHabbal, Nadin January 2020 (has links)
No description available.
|
4 |
Aprendizaje de patrones de diseño de microservicios mediante un juego serioAguirre Valera, Jeffrey Axel 27 November 2020 (has links)
La tendencia de microservicios cada día tiene mayor participación en las empresas de la industria de software para el desarrollo de aplicaciones gracias a las características y soluciones que ofrecen. Adoptar este estilo arquitectónico resulta ser un reto para muchos en especial en la etapa de diseño del ciclo de vida de un software. En esta fase inicial la selección de patrones de diseño de software y atributos de calidad son esenciales para toda creación de software. Sin embargo, hemos encontrado que la adaptación de microservicios, para establecer una nueva arquitectura, se vuelve tediosa a la hora de establecer los atributos de calidad en el diseño de un proyecto de software. Por otro lado, una técnica para la enseñanza y aprendizaje efectiva de conocimientos de la ingeniería de software resulta ser la aplicación de los juegos serios. En este proyecto planteamos la propuesta del diseño de un juego serio para el aprendizaje de patrones de diseño que satisfacen los atributos de calidad de software de una arquitectura basada en microservicios con el objetivo de enfrentar estos retos y complicaciones. / The trend of microservices every day has a greater participation in companies in the software industry for application development thanks to the features and solutions they offer. Adopting this architectural style turns out to be a challenge for many people especially in the design stage of the life cycle of a software. In this initial phase the selection of software design patterns and quality attributes are essential for all software creation. However, we have found that adapting microservices, to establish a new architecture, becomes tedious when it comes to establishing quality attributes in the design of a software project. On the other hand, a technique for the effective teaching and learning of software engineering knowledge turns out to be the application of serious games. In this project, we propose the design of a serious game for learning design patterns that satisfy the software quality attributes of an architecture based on microservices in order to face these challenges and complications. / Tesis
|
5 |
[pt] IDENTIFICANDO CANDIDATOS A MICROSSERVIÇOS EM CÓDIGO LEGADO / [en] IDENTIFYING MICROSERVICES CANDIDATES IN LEGACY CODE10 December 2020 (has links)
[pt] Microsserviços é uma técnica industrial para promover melhor escalabilidade e manutenibilidade de pequenos e autônomos serviços. Estudos prévios sugerem que a arquitetura de microsserviços vem sendo amplamente usada para reduzir limitações encontradas em sistemas monolíticos legados tais como melhoria de inovação, uso de diferentes tecnologias, entre outras. O processo de migração para a arquitetura de microsserviços não é trivial. Este é particularmente o caso da tarefa de identificar candidatos a microsserviço e o código fonte associado com cada candidato que é dispendiosa e propensa a erro. Consequentemente, abordagens automatizadas têm sido propostas para reduzir o esforço relacionado a essa atividade. Essas abordagens comumente adotam um ou dois critérios para suportar a identificação
de microsserviços com base no sistema monolítico legado. Contudo, existe uma falta de compreensão da utilidade desses critérios adotados na prática. Além disso, há limitado conhecimento em quais são os critérios que profissionais consideram relevantes. Levando em consideração esses limitantes
existentes, nós conduzimos um survey e entrevista para melhor compreender a utilidade de critérios relatados em estudos empíricos (e.g, estudos de caso e relatos) do ponto de vista dos profissionais. Os resultados do survey e da entrevista mostram que as abordagens automatizadas e ferramentas existentes
não são totalmente alinhadas com necessidades práticas. Para atender às necessidades deles, este trabalho define uma abordagem automatizada chamada toMicroservices. A abordagem baseia-se em uma combinação de análise estática e dinâmica do código legado. A abordagem visa indicar os candidatos a microsserviço e a fonte correspondente extraído do sistema legado. toMicroservices faz uso da engenharia de software baseada em busca para otimizar e balancear os cinco critérios comumente adotados por
profisionais, nomeados de modularização de funcionalidade, redução de sobrecarga de rede, reúso, acoplamento e coesão. Além disso, um estudo de caso e grupo focal foram conduzidos a posteriori para avaliar e melhorar toMicroservices. / [en] Microservices is an industrial technique to promote better scalability and maintainability of small and autonomous services. Previous studies suggested that microservice architectures have been widely used to reduce limitations found in legacy monolithic systems such as the inclusion of innovation, use of a different stack of technologies, among others. The process of migrating to a microservices architecture is far from trivial. This is particularly the case for the task of identifying candidate microservices and the source code associated with each candidate, which is recognizably time-consuming and error-prone. Thus, automated approaches have been proposed to reduce the effort related to that task. These approaches commonly
adopt one or two criteria to support the identification of microservices from a legacy monolithic system. However, there is a lack of understanding on the usefulness of these criteria in practical settings. Moreover, there is limited knowledge on what are the criteria that practitioners consider relevant. Taking into account these existing limitations, we conducted a survey and interviews to better understand the usefulness of criteria reported in empirical studies (e.g, case studies and reports) from the point of view of practitioners. The results of the survey and interviews revealed that existing automated approaches and tools are far from being aligned with practical needs. To fulfill these needs, this work defines a automated approach named toMicroservices. The approach relies on a combination of static and dynamic analysis of the legacy code. The approach aims at indicating the microservice candidates and the corresponding source extracted from the legacy system. toMicroservices makes use of search-based software engineering (SBSE) to optimize and balance the five criteria commonly adopted by practitioners, namely feature modularization, network overhead reduction, reuse, coupling and cohesion. Additionally, an industrial case study
and a focus group were conducted a posteriori to support the evaluation and improvements of toMicroservices.
|
6 |
More tools for Canvas : Realizing a Digital Form with Dynamically Presented Questions and AlternativesSarwar, Reshad, Manzi, Nathan January 2019 (has links)
At KTH, students who want to start their degree project must complete a paper form called “UT-EXAR: Ansökan om examensarbete/application for degree project”. The form is used to determine students’ eligibility to start a degree project, as well as potential examiners for the project. After the form is filled in and signed by multiple parties, a student can initiate his or her degree project. However, due to the excessively time-consuming process of completing the form, an alternative solution was proposed: a survey in the Canvas Learning Management System (LMS) that replace s the UT-EXAR form. Although the survey reduces the time required by students to provide information and find examiners, it is by no means the most efficient solution. The survey suffers from multiple flaws, such as asking students to answer unnecessary questions, and for certain questions, presenting students with more alternatives than necessary. The survey also fails to automatically organize the data collected from the students’ answers; hence administrators must manually enter the data into a spreadsheet or other record. This thesis proposes an optimized solution to the problem by introducing a dynamic survey. Moreover, this dynamic survey uses the Canvas Representational State Transfer (REST) API to access students’ program-specific data. Additionally, this survey can use data provided by students when answering the survey questions to dynamically construct questions for each individual student as well as using information from other KTH systems to dynamically construct customized alternatives for each individual student. This solution effectively prevents the survey from presenting students with questions and choices that are irrelevant to their individual case. Furthermore, the proposed solution directly inserts the data collected from the students into a Canvas Gradebook. In order to implement and test the proposed solution, a version of the Canvas LMS was created by virtualizing each Canvas-based microservice inside of a Docker container and allowing the containers to communicate over a network. Furthermore, the survey itself used the Learning Tools Interoperability (LTI) standard. When testing the solution, it was seen that the survey has not only successfully managed to filter the questions and alternative answers based on the user’s data, but also showed great potential to be more efficient than a survey with statically-presented data. The survey effectively automates the insertion of the data into the gradebook. / På KTH, studenter som skall påbörja sitt examensarbete måste fylla i en blankett som kallas “UT-EXAR: Ansökan om examensarbete/application for degree project”. Blanketten används för att bestämma studenters behörighet för att göra examensarbete, samt potentiella examinator för projektet. Efter att blanketten är fylld och undertecknad av flera parter kan en student påbörja sitt examensarbete. Emellertid, på grund av den alltför tidskrävande processen med att fylla blanketten, var en alternativ lösning föreslås: en särskild undersökning i Canvas Lärplattform (eng. Learning Management System(LMS)) som fungerar som ersättare för UT-EXAR-formulär. Trots att undersökningen har lyckats minska den tid som krävs av studetenter för att ge information och hitta examinator, det är inte den mest effektiva lösningen. Undersökningen lider av flera brister, såsom att få studenterna att svara på fler frågor än vad som behövs, och för vissa frågor, presenterar studenter med fler svarsalternativ än nödvändigt. Undersökningen inte heller automatiskt med att organisera data som samlats in från studenters svar. Som ett resultat skulle en administratör behöva organisera data manuellt i ett kalkylblad. Detta examensarbete föreslår en mer optimerad lösning på problemet: omskrivning av undersökningens funktionaliteter för att använda Representational State Transfer(REST) API för att komma åt studenters programspecifika data i back-end, såväl att använda speciella haschar för att hålla referenser till uppgifter som lämnas av studenterna när de svarar på frågorna i undersökningen, så att undersökningen inte bara kan använda dessa data för att dynamiskt konstruera frågor för varje enskild student, men också dynamiskt konstruera svarsalternativ för varje enskild student. Denna lösning förhindrar effektivt undersökningen från att presentera studenter med frågor och valbara svarsalternativ som är helt irrelevanta för var och en av deras individuella fall. Med den föreslagna lösningen kommer undersökningen dessutom att kunna organisera de data som samlats in från Studenterna till ett speciellt Canvas-baserat kalkyllblad, kallas som Betygsbok. För att genomföra och testa den förslagna lösningen skapades en testbar version av Canvas LMS genom att virtualisera varje Canvas-baserad mikroservice inuti en dockercontainer och tillåter containers att kommunicera över ett nätverk. Dessutom var undersökningen själv konfigurerad för att använda Lärverktyg Interoperability (LTI) standard. Vid testning av lösningen, det visade sig att undersökningen på ett sätt effektivt har lyckats använda vissa uppgifter från en testanvändare att bara endast svara på de relevanta frågorna, men också presentera användaren med en mer kondenserad lista svarsalternativ över baserat på data.<p>
|
Page generated in 0.0967 seconds