Spelling suggestions: "subject:"horisontell skalning"" "subject:"horisontella skalning""
1 |
Mikrotjänst-arkitektur och dess skalbarhet / The Scalability of Microservice ArchitectureLarsson, Mattias January 2018 (has links)
Att designa mjukvaruapplikationer med en viss struktur kan ofta framhäva efterfrågade egenskaper. För att välja rätt arkitektur behövs ofta övervägningar, och ibland till och med kompromisser, göras om applikationens planerade karaktär. Det är ofta bra att i detta stadie ha en klar bild om vilka attribut en applikation önskas ha. Ett av de viktigare attributen på sikt är skalbarhet. Kunskapen om olika arkitekturers skalbarhet spelar en definitiv roll i designfasen, vilket avgör hur en applikation senare skalas. På senare år har mikrotjänst-arkitektur blivit ett populärt sätt att bygga mjukvara på där den höga skalbarheten sägs vara en bidragande faktor. Detta arbete har till syfte att undersöka skalbarheten hos mikrotjänst-arkitektur i förhållande till monolitisk arkitektur och visa hur detta kvalitetsattribut påverkas när en transformering från en monolit till en mikrotjänst-arkitektur görs. Arbetet har valt att utgå ifrån en existerande modul i en E-handelsplattform med öppen källkod. Modulen som transformerades till en mikrotjänst, skalades horisontellt för respektive arkitektur och applikations-version. Vid användandet av lämpliga verktyg, såsom Docker, visar resultatet att horisontell skalbarhet finns i högre grad hos mikrotjänst-arkitekturen och fortsätter därefter vara hög. Skalning av mikrotjänster kan göras med en högre precision av det som önskas förändras. Detta står i kontrast till den monolitiska strukturen, där skalning begränsas av prestandan av den miljö där mjukvaruapplikationen körs. Efter transformationen till en mikrotjänst-arkitektur ökade skalbarheten, då skalningsmetoden gjordes med mer finkornighet och isolering av den utvalda modulen. För att individuellt skala den monolitiska modulen horisontellt behövdes förändringen göras virtuellt med hjälp av bakgrundsprocesser. Denna lösning visar sig vara en indirekt skalning av hela den monolitiska strukturen. Utöver horisontell skalbarhet fokuserar utvärderingen av resultatet på kvalitativa attribut i form av simplicitet, autonomi och modularitet. / In designing software applications, a chosen structure can often accentuate desired properties. To choose the correct architecture, one must often do considerations and sometimes even compromises, about the intended characteristics of the application. In that stage it is often well motivated to have a clear picture about which attributes the application shall possess. Over time, one of the most important attributes is scalability. The knowledge about the scalability of different architectures could play a crucial part in the design phase, determining how an application is scaled in the future. In recent years Microservice Architecture has been a popular way of building software and its high scalability is said to be a contributing factor. This work has the purpose of examine the scalability of microservice architecture relative to the monolithic architecture and how this quality attribute is affected after a transformation is done from a monolith to a microservice system. This work is based on an existing module from an open source E-commerce platform. The module was first transformed into a working microservice, then both architectures was horizontally scaled. Using suitable tools such as Docker, the result of this work shows that horizontal scalability exists in a high degree within the microservice architecture and continues being high there after. Scaling of microservices can be done with higher precision of what are to be changed. This stands in relation to the monolithic approach where scaling is limited to the performance of the environment where the software application is running. The transformation to a microservice architecture resulted in an increase of scalability. The scaling method was more fined-grained and isolated to the selected module. In contrast, individual horizontal scaling of the monolithic module was required to be done virtually with background processes. This concluded in an indirect scaling of the whole structure of the monolith. Besides horizontal scalability, the evaluation is focused on the system quality attributes of simplicity, autonomy and modularity.
|
2 |
Cloud execution environment for real-time media applicationsKämpe, Eddie January 2015 (has links)
Smartphones and other Internet of Things devices have become a rapidly growing topic. Along with the growth comes new technologies, likeWeb Real- Time Communication (WebRTC), that enables richer services to be built for the devices. These kind of services are typically consumed on-demand, in shorter periods at a time. Likewise have cloud computing exploded in popularity during the last years. Cloud computing offers compelling advantages, such as rapid elasticity and on-demand usage, that allow servers' resource utilization to be more effcient. The flexibility of allocating and releasing resources swiftly as they are required, enables services that run in the cloud to adopt to ephemeral workloads. The research in this thesis targets a real-time video streaming service that is based on WebRTC. Incoming streams are handled by Multipoint Control Units (MCUs) that have the responsibility to redistribute the incoming streams to the consumers. Scaling horizontally aligns well with the idea of cloud computing. The work in this thesis is based on the extreme case where each of the incoming streams are handled by a separate MCU. The thesis presents the process of finding a exible Cloud Execution Environment (CEE) for the streaming service. The process includes an analysis of the streaming service's requirements, an evaluation of existing solutions, and an implementation. Moreover, the thesis includes a discussion about the capabilities of the implemented system. The result of the thesis is a CEE upon which the streaming service can be deployed and managed. The developed CEE allows any workload that is encapsulated within a Docker container to be orchestrated, not exclusively the streaming service, which makes the implementation viable to other cloud computing projects. / Användandet av smartphones och andra "Internet of Things"-enheter ökar snabbt. I takt med ökningen, så släpps nya tekniker som möjliggör utveckling av mer avancerade tjänster. Ett exampel är Web Real-Time Communication (WebRTC). Den här typen av tjänster konsumeras oftast sporadiskt under kortare tidsintervall. även cloud computing har drastiskt ökat i popularitet under de senaste åren. Hög elasticitet samt möjligheten att allokera datorresurser på begäran har medfört att utnyttjandegraden av datorers kapacitet kan höjas. Flexibiliteten att snabbt kunna allokera och frigöra resurser möjliggör att tjänster kan utvecklas för att utnyttja upp- och nerskalningsm öjligheterna bättre, även för kortvariga lastökningar. Forskningen i rapporten riktar in sig på ett system för videoströmning mellan användare i realtid baserat påa WebRTC. Inkommande strömmar hanteras av Multipoint Control Units (MCUs), som har som uppgift att vidaredistribuera strömmarna till andra användare som vill spela upp strömmen. Horisontell skalning och cloud computing har mycket gemensamt. Det underliggande arbetet till den här rapporten fokuserar på ett extremfall, där varje inkommande videoström hanteras av en enskild MCU. Den här uppsatsen presenterar den process som användes för att ta fram en lämplig molnlösning för strömningssystemet. Processen beståar av en kravanalys av strömningssystemet, en jämförelse av befintliga lösningar samt en implementation av en molnlösning. Slutligen så innehåller uppsatsen en utvärdering av implementationen. Resultatet av uppsatsen är en molnlösning som videoströmningssystemet kan driftsättas och köras på. Molnlösningen är inte begränsad till videoströmningssystemet utan klarar av att hantera alla applikationer som paketerats inuti Docker-kapslar. Molnlösningen är så pass generell att den kan användas till andra projekt inom cloud computing.
|
Page generated in 0.0712 seconds