Você está na página 1de 26

FACULDADE DE CIÊNCIAS HUMANAS ESUDA

UNIDADE ACADÊMICA DE GRADUAÇÃO


CURSO DE REDES DE COMPUTADORES

DOCENTES: BRUNO YTALO E RENAN OLIVEIRA

Máquinas Virtuais e Contêineres

Recife
2020
BRUNO YTALO E RENAN OLIVEIRA

Máquinas Virtuais e Contêineres

Trabalho apresentado para a disciplina


Redes de Computadores, pelo Curso de
Redes de Computadores da Faculdade de
Ciências Humanas- ESUDA, ministrada
pelo professor(a) Jymmy Barreto

Recife
2020
SUMÁRIO

1. INTRODUÇÃO ..................................................................................................... 11
2. FUNDAMENTAÇÃO TEÓRICA ........................................................................... 12
2.1 Máquinas Virtuais
2.2 Contêineres
3. O QUE É HIPERVISOR ....................................................................................... 14
4. DIFERENÇAS ENTRE CONTÊINERES E VMS .................................................. 15
5. ONDE SÃO UTILIZADAS .................................................................................... 16
6. O QUE É CRM E ERPS........................................................................................17
6.1 SOFTWARES MAIS UTILIZADOS
7. VANTAGENS E DESVANTAGENS.....................................................................19
8. RELAÇÃO COM DEVOPS..................................................................................20
9. CONSIDERAÇÕES FINAIS.................................................................................21
10. REFERÊNCIAS ...................................................................................................22
11

1 INTRODUÇÃO

Esse trabalho tem como objeto de pesquisa principal as Máquinas Virtuais e


Contêineres, dissertando assim, as suas definições, diferenças entre eles, onde são
mais utilizadas, quais softwares mais usados, as vantagens e desvantagens, e por
fim, destrinchar sobre a relação de Máquinas Virtuais e Contêineres com o Devops.
12

2 FUNDAMENTAÇÃO TEÓRICA

2.1 MÁQUINAS VIRTUAIS

Uma máquina virtual é um programa que age como um computador completo,


com todas as instâncias de um sistema operacional funcional. Em resumo, é um
computador funcionando dentro de outro. Utiliza um programa cliente, que age como
uma camada de virtualização entre o sistema de um computador e outro que você
quer instalar. O processo é diferente de um emulador, que visa copiar os recursos
de um programa ou sistema e fazê-lo rodar em conjunto com o seu computador.

Máquinas virtuais são extremamente úteis no dia a dia, pois permitem ao


usuário rodar outros sistemas operacionais dentro de uma janela, tendo acesso a
todos os softwares que precisa, facilidade de manipular vários sistemas operacionais
ao mesmo tempo é muito simples e intuitivo, como mostra as figuras abaixo.
13

FUNDAMENTAÇÃO TEÓRICA

2.2 CONTÊINERES
Os contêineres, do inglês “containers” é nada mais que um ambiente isolado
em um servidor que diferente das máquinas virtuais, divide um único host de
controle. exemplo imaginamos um navio cargueiro com vários contêineres dentro.
Se um dos recipientes se danificar não afetará outros do navio pois cada um estará
isolado e protegido.
Esse isolamento de container, possibilita uma utilização limitada do HD,
memória RAM e processador, como mostra a figura abaixo.

O QUE É DOCKER?

Docker é uma plataforma Open Source desenvolvida na plataforma de programação


da Google o GO, o funcionamento dele é possibilitado pelo sistema Kernel do Linux,
o Linux Container ou LXC como é chamado popularmente. É exatamente isso que
permite a utilização de recursos isolados, diferentemente do que seria em uma
máquina virtual que depende da criação de um sistema operacional completo para
cada módulo funcionar.
14

O QUE É HIPERVISOR?

Um hipervisor é um software que cria e executa máquinas virtuais. Também


chamado de monitor da máquina virtual, ele isola o sistema operacional do
hipervisor e os recursos das máquinas virtuais e permite a criação e o
gerenciamento dessas máquinas. Para executar VMs, todos os hipervisores
precisam de alguns componentes no nível do sistema operacional, como
gerenciador de memória, agendador de processos, stack de entrada/saída, drivers
de dispositivo, gerenciador de segurança, um stack de rede e muito mais.
O hipervisor fornece a cada máquina virtual os recursos que foram alocados e
gerencia a programação de recursos da VM em comparação com os físicos. Esse é
um dos principais benefícios da virtualização. Sem ela, só é possível executar um
sistema operacional no hardware. Existe 2 tipos de hipervisores, abaixo serão
definidos quais tipos são esses.

Tipo 1: Também chamado de hipervisor nativo, ele vem instalado diretamente


no kernel do sistema, desta forma, não é necessário a utilização de um software
independente para que possa ser executado o sistema. Um exemplo de hipervisor
tipo 1 é o Hyper-V, que usuários do Windows, a partir da versão 10, podem fazer a
habilitação do mesmo e utilizar a plataforma que vem pré-instalado no sistema
operacional.

Tipo 2: Diferentemente do tipo 1, os hipervisores tipo 2, chamados de hosted,


necessitam de um software instalado na máquina para que possa executar um outro
sistema virtual. Aplicações que são comumente utilizadas para o gerenciamento de
máquinas virtuais são VMWare Workstation, da empresa VMWare e o Virtual Box da
Oracle.
15

DIFERENÇAS ENTRE CONTÊINERES E VMs

Os containers são divididos em um único sistema operacional que tenha o Docker


instalado para o seu gerenciamento,um exemplo se um servidor precisar rodar várias
aplicações ao mesmo tempo não vai ser necessário a criação de outros sistemas
operacionais, já que o Docker tem como característica principal rodar vários sistemas
em um só, sem afetar outros sistemas ali presentes. Por parte das VMs, a diferença
que se destaca em comparação com contêineres, é que que se uma um determinado
projeto necessitar de várias aplicações utilizando uma máquina virtual, será criado
para cada aplicação uma máquina virtual diferente.
16

ONDE SÃO UTILIZADAS?

As máquinas virtuais são comumente utilizadas para o desenvolvimento de


software, possibilitando que os desenvolvedores testem suas aplicações em
diferentes sistemas operacionais, diante disso, possibilitando também que
identifiquem os erros ocorridos no processo de criação do programa,
consequentemente, levando a sua correção. Outro ponto importante que vale
ressaltar é a da utilização de máquinas virtuais para a “fuga” de vírus prejudiciais ao
computador. Isso possibilita que o usuário possa navegar em uma página web não
segura, abrir email-s suspeitos, e também instalar softwares não confiável.
17

Partindo para contêineres, grandes empresas ainda adotam softwares como


ERPs e CRM que iniciam como projeto básico e se tornam ineficientes com o passar
do tempo graças aos seus códigos fontes estáticos e monolíticos.

O QUE É CRM e ERPs?

O Gerenciamento de Relacionamento com o Cliente (Customer Relationship


Management, CRM) pode ajudar a reduzir custos e aumentar a lucratividade por
meio da organização e automação dos processos de negócios que gerenciam a
fidelidade e a satisfação do cliente nas áreas de vendas, marketing e atendimento
ao cliente.
ERP é a sigla para Enterprise Resource Planning e trata-se de um software
integrado de gestão empresarial que reúne numa única solução as informações
gerenciais dos setores de uma empresa, tais como: como Contabilidade, Finanças,
Fiscal, RH, Suprimentos, Patrimônio e Vendas.
O container surge como uma alternativa para esses dois, pois, esse modelo
de desenvolvimentos é feito em diferentes etapas. Com essa desagregação, os
desenvolvedores conseguem, então, adotar um tipo de arquitetura que melhora a
eficiência operacional. O container encapsula todos esses componentes e garante
uma performance consistente, com um pacote único, leve, que permite a execução
de aplicativos com consistência em ambientes físicos ou virtualizados.

SOFTWARES E PLATAFORMAS QUE UTILIZAM ESSA TECNOLOGIA

As máquinas virtuais, tem como principais e mais conhecidas, 2 softwares


que são disponibilizadas para download gratuitamente em suas plataformas na
internet. São elas: VMWare Workstation e o VirtualBox. Abaixo será dissertado uma
breve apresentação dessas principais aplicações.

VIRTUALBOX

O VirtualBox, que atualmente pertence a empresa Oracle, mas originalmente


foi desenvolvido pela empresa Innotek, posteriormente comprado pela Sun
Microsystems. Diferente de qualquer outro software de virtualização, o VirtualBox
apoia inteiramente o padrão Remote Desktop Protocol (RDP). Uma máquina virtual
pode atuar como um servidor RDP, o que lhe permite "executar" a máquina virtual
remotamente em alguns serviços que exibem os dados RDP.
18

VMWARE WORKSTATION

Inicialmente conhecido como VMWare Player, o VMWare Workstation é um


pacote de software de virtualização para computadores, que executam o Microsoft
Windows ou o Linux, fornecido de forma gratuita, mas também fornece licenças
pagas para empresas. Mesmo com a licença gratuita os usuários de forma geral,
podem desfrutar de uma experiência intuitiva e fluida.

Os contêineres também possuem 2 softwares comumente usados por


usuários que utilizam de virtualização, chamados: Docker e LXC.

DOCKER

Docker é um software contêiner da empresa Docker, Inc, que fornece uma


camada de abstração e automação para virtualização de sistema, criando
contêineres
Independentes para executar dentro de uma única instância do sistema
operacional, evitando a sobrecarga de manter máquinas.
19

LINUX CONTÊINERES (LXC)

É um método de virtualização ao nível do sistema operacional para executar vários


sistemas Linux em uma única máquina isolados em um host de controle usando um
único kernel linux.

VANTAGENS E DESVANTAGENS

MÁQUINAS VIRTUAIS:

As vantagens de utilizar máquinas virtuais consiste principalmente no fato de


que a plataforma abre um leque de possibilidades para a virtualização de diversos
sistemas operacionais, seja ele Windows ou Linux (todas as distribuições). O
software possui uma interface de simples manuseio, fazendo com que qualquer
pessoa que tenha o mínimo conhecimento possível em virtualização seja capaz de
executar um sistema operacional dentro de outro. Mas como nem tudo são flores, as
máquinas virtuais tem suas desvantagens, que se enquadra principalmente pelo fato
de que cada sistema que é inserido ele abre uma nova “janela”, isso faz com que a
máquina virtual comece a requerer mais do computador principal(hosted),
consequentemente, irá consumir mais do hardware que é o principal meio para a
execução da máquina virtual, como armazenamento, processamento e memória
ram.
20

CONTÊINERES:

Já as vantagens de se utilizar um container é q ele tem um tamanho muito


menor que de uma VM, para ele ser executado precisa de menos recursos que
uma VM, provisionar um container somente toma alguns segundos enquanto que
uma VM precisa esperar carregar o SO e depois a aplicação desejada, testar e
rastrear um bug também torna menos complicado uma vez que não existe
diferença executar localmente ou em produção, containers são mais baratos por
precisarem de menos recursos.
E as desvantagens ocorrem por parte da segurança, por compartilhar o
mesmo kernel, se o kernel tem problemas o container também terá. Isso
acontece por que um container é menos isolado que uma VM, outra
desvantagem é que se seu SO é Linux, você só poderá usar imagens linux, já em
VM podemos ter uma máquina com Windows mais ter uma virtualização de um
Linux.

RELAÇÃO COM DEVOPS

Entregar software com qualidade sempre foi um desafio muito grande para a
maioria das empresas de Tecnologia da Informação (TI). Desafio esse que está
diretamente relacionado aos riscos existentes no processo de Engenharia de
Software, que vão desde a análise até a distribuição da nova versão.
O processo de distribuição de uma nova versão no ambiente de produção
muitas vezes é considerado algo simples e sem muitos riscos. Porém, esse
processo pode se tornar catastrófico se as etapas de testes não forem executadas
em um ambiente bastante similar ao ambiente no qual o software será executado.
Muitas vezes o ambiente de testes não representa o ambiente de produção. Isto
pode ocorrer devido à complexidade do projeto, elevado custo ou até mesmo uma
distância entre a equipe de desenvolvimento e a equipe de infraestrutura.
Na tentativa de estreitar a relação entre as equipes de desenvolvimento e
infraestrutura surgiu o movimento Devops, que trouxe com ele muitos facilitadores
para contornar esses problemas e garantir uma distribuição com testes mais
próximos ao ambiente de produção e com menos riscos.
Através da virtualização é possível criar ambientes mais próximos à produção,
sem a necessidade de dispor de uma grande quantidade de máquinas físicas. Além
do ambiente similar à produção, é muito interessante poder recriar todo ambiente
virtual de uma maneira rápida e sem esforço, viabilizando deste modo testes mais
completos do software antes de distribui-lo.
21

CONSIDERAÇÕES FINAIS

Com tudo que foi apresentado acima, é imprescindível enfatizar que, a tecnologia
de virtualização tem um valor importante por inúmeros motivos como foi dissertado. As máquinas
virtuais e contêineres tem como função principal virtualizar outros sistemas dentro de um outro
sistema principal, todavia, isso abre um leque de possibilidades para que o usuário possa usar
essa tecnologia de virtualização para aprender a utilizar um novo sistema operacional, auxilia no
desenvolvimento de novos softwares, assim, testando sua funcionalidade em outras plataformas
para observar se contêm erros ou bugs, e entre outras funcionalidades.
22

REFERÊNCIAS

1. Os desenvolvedores dão vida á suas ideias com o Docker. Disponível em:


https://www.docker.com/why-docker. Acessado em 25/05/2020.

2. O que são contêineres e para que serve. Disponível em:


https://www.valuehost.com.br/blog/o-que-sao-
containers/#O_que_sao_containers_e_para_que_servem. Acessado em
25/05/2020.

3. Entenda o que é o LXC. Disponível em:


https://www.salimaouar.com.br/artigo/entenda-o-que-e-o-lxc-linux-
containers#:~:text=O%20LXC%20(Linux%20Containers)%20%C3%A9,%C3%
A1gil%20e%20segura%20(isolada). Acessado em 25/05/2020.

4. Container vs. Máquinas Virtuais. Disponível em


http://softwarelivre.org/devops/blog/gomex-container-vs-maquina-virtual.
Acessado em 25/05/2020.

5. Máquinas Virtuais: O que são, como funcionam e quando utilizar. Disponível


em: https://www.opservices.com.br/maquinas-
virtuais/#:~:text=Entenda%20o%20b%C3%A1sico%20sobre%20o,(m%C3%A
1quinas%20virtuais%20de%20inst%C3%A2ncias). Acessado em 25/05/2020.

6. O que é uma máquina virtual? Disponível em: https://www.redhat.com/pt-


br/topics/virtualization/what-is-a-virtual-machine. Acessado em 25/05/2020.

Você também pode gostar