Runtime Adaptation of Microservices

Detalhes bibliográficos
Autor(a) principal: SAMPAIO JUNIOR, Adalberto Ribeiro
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