Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract
Este artigo tem por intenção apresentar uma visão geral do que é orquestração
de containers, explicando a fundo o que são, as suas vantagens e desvantagens e
como e quando esta deve ser utilizada. Para uma conceitualização adequada, a
pesquisa se dá através do enquadramento e aplicabilidade da orquestração de
containers, contendo uma comparação de três engines de orquestração de con-
tainers, sendo estes o Docker Swarm, e Kubernets, comparando tanto suas ca-
racterísticas em comum, quanto as suas específicas, em termos de quantidade,
qualidade e usabilidade de ferramentas e sua estabilidade. Em adição, será fala-
do sobre a implantação de funcionalidades, microserviços e como o uso de con-
tainers facilitou esta tarefa, ajudando não só empresas especializadas em desen-
volvimento de software, mas também auxiliando a introdução de novas infraes-
truturas. Será, também, feita uma exposição da performance dos containers nas
plataformas Docker e uma máquina virtual clássica, comparando diferentes re-
sultados encontrados ao longo do estudo.
1 Introdução
Nos últimos anos, o uso de containers vem se popularizando cada vez mais, pois são
leves, flexíveis e permitem o código correr, de forma confiável, em diferentes ambi-
entes através do encapsulamento das aplicações juntamente com as suas bibliotecas,
ficheiros de configuração e outras dependências. Assim, os containers tornaram-se
excelentes soluções para o desenvolvimento de software moderno.
O contexto desta crescente popularidade dá-se juntamente à adoção de novos pa-
drões arquiteturais de software, principalmente os microserviços, que aumentam a
modularidade da aplicação e simplificam, desta forma, os seus testes, escalabilidade e
desenvolvimento. Tecnologias de containerização têm sido cruciais, permitindo rápi-
da implantação, escalabilidade e portabilidade a um custo mais baixo do que tecnolo-
gias mais antigas como, por exemplo, as máquinas virtuais tradicionais.
2
2 Background
2.1 Virtualização
2.2 Microserviços
2.3 Devops
Devops é um conjunto de filosofias, práticas e ferramentas que permitem a uma equi-
pa lançar software a uma velocidade elevada. Tem como objetivo automatizar testes,
construção e entrega de soluções, com a finalidade de gerar software de forma mais
rápida e confiável. Para isto, otimiza o ciclo de vida da aplicação, desde o desenvol-
vimento até o deploy. Devops são aplicados comumente a arquiteturas de microservi-
ços, com o intuito de agilizar seus processos.
Para alcançar esta automatização, a virtualização assume um papel crucial no De-
vops. As máquinas virtuais permitem construir, testar e implantar código dentro de
ambientes isolados, permitindo análise do uso de recursos, maior escalabilidade, fle-
xibilidade e agilidade no desenvolvimento. [7]
4
Neste cenário, muitas empresas optam pela utilização de containerização para adi-
cionar ainda mais flexibilidade e leveza na criação de software. Entretanto, tal uso
acaba, muitas vezes, por gerar um número elevado de containers a serem geridos re-
sultando em perda de escalabilidade. Por isso são adotados, juntamente com as tecno-
logias de containerização, orquestradores de containers, responsáveis justamente pela
gestão e comunicação dos containers produzidos.
3 Tecnologias
A seguir será falado sobre containers, descrevendo o que são, como funcionam e o
quais são as alternativas. Será feita uma breve introdução ao Docker, o que é e como
funciona, descrevendo, assim, a sua arquitetura. Por fim, haverá uma introdução à
orquestração de containers, explicando o seu uso, e explicando em que situação se
devia utilizar as duas ferramentas de orquestração mais utilizadas pela comunidade, o
Kubernetes e o Docker Swarm.
3.1 Containers
Figura 2: Representação gráfica de containers [5] Figura 3: Representação gráfica de máquinas Virtuai [5]s
5
3.2 Docker
4 Conclusão
Ao fim deste artigo, é possível obter uma ampla compreensão sobre o tema da orques-
tração de containers, bem como localização e valências de diferentes ferramentas e
tecnologias presentes neste tópico.
A pesquisa conduzida através dos artigos que são objeto de estudo permitiu, para
além da localização do tema, perceber o funcionamento de motores de orquestração
7
Referências
1. Truyen, E., Van Landuyt, D., Preuveneers, D., Lagaisse, B., & Joosen, W. (2019). A Com-
prehensive Feature Comparison Study of Open-Source Container Orchestration Frame-
works. Applied Sciences, 9(5), Art. 5. https://doi.org/10.3390/app9050931
2. Amit M Potdar, Narayan D G, Shivaraj Kengond, & Mohammed Moin Mulla. (2020). Per-
formance Evaluation of Docker Container and Virtual Machine. Third International Con-
ference on Computing and Network Communications, 10.
https://doi.org/10.1016/j.procs.2020.04.152
3. Zhou, N., Georgiou, Y., Pospieszny, M., Zhong, L., Zhou, H., Niethammer, C., Pejak, B.,
Marko, O., & Hoppe, D. (2021). Container orchestration on HPC systems through Kuber-
netes. Journal of Cloud Computing, 10(1), 16. https://doi.org/10.1186/s13677-021-00231-z
4. Jawarneh, I. M. A., Bellavista, P., Bosi, F., Foschini, L., Martuscelli, G., Montanari, R., &
Palopoli, A. (2019). Container Orchestration Engines: A Thorough Functional and Perfor-
mance Comparison. ICC 2019 - 2019 IEEE International Conference on Communications
(ICC), 1–6. https://doi.org/10.1109/ICC.2019.8762053
5. What is a Container? - Docker. (2021, novembro 11).
https://www.docker.com/resources/what-container/
6. Velimirovic, A. (2022, setembro 21). What is Container Orchestration? Benefits & How It
Works. PhoenixNAP Blog. https://phoenixnap.com/blog/what-is-container-orchestration
7. Velimirovic, A. (2022, August 16). DevOps and Virtualization: The Effect of VMs on
Software Development. phoenixNAP Blog. https://phoenixnap.com/blog/devops-
virtualization