Runtime Adaptation of Microservices
Autor(a) principal: | |
---|---|
Data de Publicação: | 2018 |
Tipo de documento: | Tese |
Idioma: | eng |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/001300000w04q |
Texto Completo: | https://repositorio.ufpe.br/handle/123456789/32395 |
Resumo: | The architectural style of Microservices is an approach that uses small pieces of software, each one with a single responsibility and well-defined boundaries, integrated with lightweight and general purpose communication protocols to build an application. The decoupling promoted by microservice usage makes continuous delivery cheaper and safer to be applied in comparison to other architectural styles thus allowing a microservice-based application (App) to be continuously updated and upgraded at runtime. For this reason, many companies have adopted microservices to facilitate the development and maintenance of their applications. However, high decoupling and a large number of microservices and technologies adopted, make it difficult to control a App. Despite the Microservice’s architectural style relying on tools to automatically manage the deployment and execution of Apps, these tools are not aware of the application’s behaviour. Therefore, most decisions are made manually by engineers, that analyze application logs, metrics, messages and take actions in response to triggers. This characteristic makes it difficult to make optimal decisions at runtime (i.e., optimizing the placement of microservices in the cluster). This thesis proposes an approach to bring autonomy to the microservice management tools by automatically evaluating the App’s behaviour, allowing alterations to be made with minimum intervention. To achieve that, we present REMaP, a MAPE-K based framework that inspects and adapts App in a cluster through a model at run-time. This model abstracts several technologies and semantics of Apps cohesively, allowing decisions to be computed without the supervision of engineers. To show the feasibility of this autonomic approach, we used REMaP to optimize the placement of microservices at runtime by autonomously monitoring the App’s behaviour, computing a (quasi-) optimal placement and re-configuring the App at runtime. Our approach allowed us to determine that it was possible to save up to 85% of servers used in the deployment of App by maintaining and, in some cases improving, its overall performance. |
id |
UFPE_2c21f3956e800b5ec6327dfdd17879e1 |
---|---|
oai_identifier_str |
oai:repositorio.ufpe.br:123456789/32395 |
network_acronym_str |
UFPE |
network_name_str |
Repositório Institucional da UFPE |
repository_id_str |
2221 |
spelling |
SAMPAIO JUNIOR, Adalberto Ribeirohttp://lattes.cnpq.br/0514382984176352http://lattes.cnpq.br/4220236737158909ROSA, Nelson SoutoBESCHASTNIKH, Ivan2019-09-10T16:43:13Z2019-09-10T16:43:13Z2018-11-09https://repositorio.ufpe.br/handle/123456789/32395ark:/64986/001300000w04qThe architectural style of Microservices is an approach that uses small pieces of software, each one with a single responsibility and well-defined boundaries, integrated with lightweight and general purpose communication protocols to build an application. The decoupling promoted by microservice usage makes continuous delivery cheaper and safer to be applied in comparison to other architectural styles thus allowing a microservice-based application (App) to be continuously updated and upgraded at runtime. For this reason, many companies have adopted microservices to facilitate the development and maintenance of their applications. However, high decoupling and a large number of microservices and technologies adopted, make it difficult to control a App. Despite the Microservice’s architectural style relying on tools to automatically manage the deployment and execution of Apps, these tools are not aware of the application’s behaviour. Therefore, most decisions are made manually by engineers, that analyze application logs, metrics, messages and take actions in response to triggers. This characteristic makes it difficult to make optimal decisions at runtime (i.e., optimizing the placement of microservices in the cluster). This thesis proposes an approach to bring autonomy to the microservice management tools by automatically evaluating the App’s behaviour, allowing alterations to be made with minimum intervention. To achieve that, we present REMaP, a MAPE-K based framework that inspects and adapts App in a cluster through a model at run-time. This model abstracts several technologies and semantics of Apps cohesively, allowing decisions to be computed without the supervision of engineers. To show the feasibility of this autonomic approach, we used REMaP to optimize the placement of microservices at runtime by autonomously monitoring the App’s behaviour, computing a (quasi-) optimal placement and re-configuring the App at runtime. Our approach allowed us to determine that it was possible to save up to 85% of servers used in the deployment of App by maintaining and, in some cases improving, its overall performance.CAPESFACEPEO estilo arquitetural de Microserviços é uma abordagem que usa pequenas peças de software, cada uma com uma única responsabilidade e limites bem definidos, integradas sobre um protocolo de comunicação leve e de propósito geral para construir uma aplicação. O desacoplamento promovido pelo uso de microsserviços faz com que a entrega contínua seja segura e barata de ser aplicada, ao contrário de outros estilos arquiteturais. Assim uma aplicação baseada em microsserviços (App) pode ser constantemente atualizada em tempo de execução. Por esta razão, muitas companhias têm adotado microsserviços para facilitar o desenvolvimento e manutenção de suas aplicações. Entretanto, a alto nível de desacoplamento, e consequentemente, o grande número de microerviços e tecnologias adotadas, faz com que o controle de uma App não seja fácil. Apesar do estilo arquitetural de microsserviços depender de ferramentas para gerenciar automaticamente a implantação e execução de Apps, essas ferramentas não são cientes do comportamento das aplicações. Dessa forma, a maioria das decisões são feitas manualmente por engenheiros que analisam os logs, métricas e mensagens da aplicação e tomam ações em resposta à algum gatilho. Está característica dificulta que decisões ótimas sejam aplicadas em tempo de execução como, por exemplo, otimizar o arranjo dos microservices no cluster. Neste trabalho nós propomos uma abordagem para trazer autonomia às ferramentas de gerenciamento de microsserviços, avaliando automaticamente o comportamento da App e alterando a aplicação com a mínima intervenção de engenheiros. Para alcançar isso, nós apresentamos REMaP, um framework baseado na arquitetura MAPE-K, que inspeciona e adapta Apps em um cluster usando um modelo em tempo de execução. Este modelo abstrai várias tecnologias e semânticas das Apps de forma coesa, permitindo que decisões sejam calculadas sem a supervisão dos engenheiros. Para mostrar a factibilidade desta abordagem autonômica, nós usamos o REMaP para otimizar o arranjo de uma App. Através de um monitoramento autônomo do comportamento do App, REMaP calcula um arranjo quasi-ótimo, e reconfigura a App em tempo de execução. Com nossa abordagem constatamos que é possível economizar até 85% dos servidores usados na implantação inicial de Apps mantendo, e em alguns casos melhorando, a performance geral da aplicação.engUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessSistemas distribuídosMicroserviçosComputação autonômicaRuntime Adaptation of Microservicesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisdoutoradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILTESE Adalberto Ribeiro sampaio Jr.pdf.jpgTESE Adalberto Ribeiro sampaio Jr.pdf.jpgGenerated Thumbnailimage/jpeg1280https://repositorio.ufpe.br/bitstream/123456789/32395/5/TESE%20Adalberto%20Ribeiro%20sampaio%20Jr.pdf.jpg3ccab18383188afbd5fb2a43e325cd35MD55ORIGINALTESE Adalberto Ribeiro sampaio Jr.pdfTESE Adalberto Ribeiro sampaio Jr.pdfapplication/pdf5291580https://repositorio.ufpe.br/bitstream/123456789/32395/1/TESE%20Adalberto%20Ribeiro%20sampaio%20Jr.pdf424808e908ad1a5a77c2a0ff21f8d502MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/32395/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82310https://repositorio.ufpe.br/bitstream/123456789/32395/3/license.txtbd573a5ca8288eb7272482765f819534MD53TEXTTESE Adalberto Ribeiro sampaio Jr.pdf.txtTESE Adalberto Ribeiro sampaio Jr.pdf.txtExtracted texttext/plain310542https://repositorio.ufpe.br/bitstream/123456789/32395/4/TESE%20Adalberto%20Ribeiro%20sampaio%20Jr.pdf.txt5be1234a1aae3b4450337efe63bf344cMD54123456789/323952019-10-25 10:45:15.145oai:repositorio.ufpe.br:123456789/32395TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLCBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWlzcXVlciBvYnJpZ2HDp8O1ZXMgZXhpZ2lkYXMgcGVsbyByZXNwZWN0aXZvIGNvbnRyYXRvIG91IGFjb3Jkby4KCkEgVUZQRSBpZGVudGlmaWNhcsOhIGNsYXJhbWVudGUgbyhzKSBub21lKHMpIGRvKHMpIGF1dG9yIChlcykgZG9zIGRpcmVpdG9zIGRvIGRvY3VtZW50byBlbnRyZWd1ZSBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZG8gcHJldmlzdG8gbmEgYWzDrW5lYSBjKS4KRepositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T13:45:15Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
dc.title.pt_BR.fl_str_mv |
Runtime Adaptation of Microservices |
title |
Runtime Adaptation of Microservices |
spellingShingle |
Runtime Adaptation of Microservices SAMPAIO JUNIOR, Adalberto Ribeiro Sistemas distribuídos Microserviços Computação autonômica |
title_short |
Runtime Adaptation of Microservices |
title_full |
Runtime Adaptation of Microservices |
title_fullStr |
Runtime Adaptation of Microservices |
title_full_unstemmed |
Runtime Adaptation of Microservices |
title_sort |
Runtime Adaptation of Microservices |
author |
SAMPAIO JUNIOR, Adalberto Ribeiro |
author_facet |
SAMPAIO JUNIOR, Adalberto Ribeiro |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/0514382984176352 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/4220236737158909 |
dc.contributor.author.fl_str_mv |
SAMPAIO JUNIOR, Adalberto Ribeiro |
dc.contributor.advisor1.fl_str_mv |
ROSA, Nelson Souto |
dc.contributor.advisor-co1.fl_str_mv |
BESCHASTNIKH, Ivan |
contributor_str_mv |
ROSA, Nelson Souto BESCHASTNIKH, Ivan |
dc.subject.por.fl_str_mv |
Sistemas distribuídos Microserviços Computação autonômica |
topic |
Sistemas distribuídos Microserviços Computação autonômica |
description |
The architectural style of Microservices is an approach that uses small pieces of software, each one with a single responsibility and well-defined boundaries, integrated with lightweight and general purpose communication protocols to build an application. The decoupling promoted by microservice usage makes continuous delivery cheaper and safer to be applied in comparison to other architectural styles thus allowing a microservice-based application (App) to be continuously updated and upgraded at runtime. For this reason, many companies have adopted microservices to facilitate the development and maintenance of their applications. However, high decoupling and a large number of microservices and technologies adopted, make it difficult to control a App. Despite the Microservice’s architectural style relying on tools to automatically manage the deployment and execution of Apps, these tools are not aware of the application’s behaviour. Therefore, most decisions are made manually by engineers, that analyze application logs, metrics, messages and take actions in response to triggers. This characteristic makes it difficult to make optimal decisions at runtime (i.e., optimizing the placement of microservices in the cluster). This thesis proposes an approach to bring autonomy to the microservice management tools by automatically evaluating the App’s behaviour, allowing alterations to be made with minimum intervention. To achieve that, we present REMaP, a MAPE-K based framework that inspects and adapts App in a cluster through a model at run-time. This model abstracts several technologies and semantics of Apps cohesively, allowing decisions to be computed without the supervision of engineers. To show the feasibility of this autonomic approach, we used REMaP to optimize the placement of microservices at runtime by autonomously monitoring the App’s behaviour, computing a (quasi-) optimal placement and re-configuring the App at runtime. Our approach allowed us to determine that it was possible to save up to 85% of servers used in the deployment of App by maintaining and, in some cases improving, its overall performance. |
publishDate |
2018 |
dc.date.issued.fl_str_mv |
2018-11-09 |
dc.date.accessioned.fl_str_mv |
2019-09-10T16:43:13Z |
dc.date.available.fl_str_mv |
2019-09-10T16:43:13Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/32395 |
dc.identifier.dark.fl_str_mv |
ark:/64986/001300000w04q |
url |
https://repositorio.ufpe.br/handle/123456789/32395 |
identifier_str_mv |
ark:/64986/001300000w04q |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.publisher.program.fl_str_mv |
Programa de Pos Graduacao em Ciencia da Computacao |
dc.publisher.initials.fl_str_mv |
UFPE |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
instname_str |
Universidade Federal de Pernambuco (UFPE) |
instacron_str |
UFPE |
institution |
UFPE |
reponame_str |
Repositório Institucional da UFPE |
collection |
Repositório Institucional da UFPE |
bitstream.url.fl_str_mv |
https://repositorio.ufpe.br/bitstream/123456789/32395/5/TESE%20Adalberto%20Ribeiro%20sampaio%20Jr.pdf.jpg https://repositorio.ufpe.br/bitstream/123456789/32395/1/TESE%20Adalberto%20Ribeiro%20sampaio%20Jr.pdf https://repositorio.ufpe.br/bitstream/123456789/32395/2/license_rdf https://repositorio.ufpe.br/bitstream/123456789/32395/3/license.txt https://repositorio.ufpe.br/bitstream/123456789/32395/4/TESE%20Adalberto%20Ribeiro%20sampaio%20Jr.pdf.txt |
bitstream.checksum.fl_str_mv |
3ccab18383188afbd5fb2a43e325cd35 424808e908ad1a5a77c2a0ff21f8d502 e39d27027a6cc9cb039ad269a5db8e34 bd573a5ca8288eb7272482765f819534 5be1234a1aae3b4450337efe63bf344c |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
repository.mail.fl_str_mv |
attena@ufpe.br |
_version_ |
1815172929816625152 |