58
Beers & Bytes - 7ª Edição

Beers & Bytes - O Futuro da virtualização

Embed Size (px)

Citation preview

Page 1: Beers & Bytes - O Futuro da virtualização

Beers & Bytes - 7ª Edição

Page 2: Beers & Bytes - O Futuro da virtualização

Docker

E o futuro da infraestrutura Moderna

Page 3: Beers & Bytes - O Futuro da virtualização

Apresentação pessoal

Carlos Smanitto - Nerd, apaixonado por tecnologia

Gerente de Infra - VivaReal

Page 4: Beers & Bytes - O Futuro da virtualização

Objetivo

Demonstrar como a utilização da tecnologia Docker pode ser empregada como uma proposta interessante de crescimento estratégico em IT, principalmente em ambiente DevOps.

Page 5: Beers & Bytes - O Futuro da virtualização

Historia…

Vamos revisar um pouco a história…

Page 6: Beers & Bytes - O Futuro da virtualização

História

Alan Turing, Matemático e Ninja computacional e Pai da computação moderna.

Em 1950 - Previu que na virada do século os computadores ter iam memória na casa do 1GB.

Page 7: Beers & Bytes - O Futuro da virtualização

História

Gordon Moore, co-founder da Intel.

Em meados de 1965, declarou que a cada 18 meses a capacidade de processamento dobra enquanto o custo permanece constante.

Da qui 1 ano e meio, será possível comprar o dobro de potência computacional com mesmo preço do valor corrente.

Page 8: Beers & Bytes - O Futuro da virtualização

História

APPLE II

Lançado em 1977, possuía 64KB de RAM com 1MHz de CPU de 8-bits :)

Page 9: Beers & Bytes - O Futuro da virtualização

História

Carl Anderson, cientista da IBM.

Declarou em 2010 que a lei de Moore chegaria ao fim provavelmente em 2015.

Page 10: Beers & Bytes - O Futuro da virtualização

História

MOTIVO:

Pesquisa para novos processadores cada vez mais $$$$$

Engenharia de Software = Cada vez mais otimizada :)

Page 11: Beers & Bytes - O Futuro da virtualização

Questão

Mas… precisamos mesmo dobrar ou evoluir nosso poder de processamento ?

continuando….

Page 12: Beers & Bytes - O Futuro da virtualização

Transição

Parece familiar ?

Em 1995 ap l icação em grande totalidade Client Side - Geração Clipper

Em 2010 aplicação baseando em cliente/servidor - Delphi + Oracle

1995

2010(BumdaInternet)

Page 13: Beers & Bytes - O Futuro da virtualização

TransiçãoInternautase

mm

ilhõe

s

0

17.5

35

52.5

70

1997 1999 2001 2003 2005 2009

67

25.9

14.3212.046.79

1.15

CrescimentodaInternet-BrasilFonte:Institu

toW

orldStatseInstitu

todiversos-abril/2008

Page 14: Beers & Bytes - O Futuro da virtualização

Transição

Começa então o nascimento dos grandes centros de processamento, ou seja, datacenters :)

EM Hardware - Latão

Page 15: Beers & Bytes - O Futuro da virtualização

Datacenters

Setor investe 5% ao ano em melhoria.

Existem hoje 7.5 milhões de DCs no mundo: privado, militares, provedores, etc.

Isso equivale a mais de 200 milhões de servidores espalhados pelo mundo.

Fonte:ID

CeSymantec2012

Page 16: Beers & Bytes - O Futuro da virtualização

Datacenters

Em 2020 serão 35 Zettabytes de dados entre fotos, vídeos e documentos.

44x mais dados do que em 2009, 0.8 Zettabytes.

Colinha: Gigabyte, Terabyte, Petabyte, ZettaByte

Fonte:ID

C-2

010

Page 17: Beers & Bytes - O Futuro da virtualização

Datacenters

Problema: Consumo energético

Consumo de um DC: Calcula-se em kva / hora.

1 KVA = 800 Watts = 14 lâmpadas acessasFo

nte:ID

C-2

010

Page 18: Beers & Bytes - O Futuro da virtualização

Datacenters

Climatização=37%

Equipamentos=32%

NO-Break = 8%Iluminação = 8%

Gerador = 10%

Outros = 5%

Entrada de Energia

Calor interno do D

C

Page 19: Beers & Bytes - O Futuro da virtualização

Datacenters

Em um datacenter, 44% do TCO é gasto com energia elétrica.

Estudo de 2010 da Universidade de Stanford afirma que 1.2% de toda energia produzida no EUA vai para alimentar os DCs existentes.Fo

nte:ID

C-2

010

Page 20: Beers & Bytes - O Futuro da virtualização

Datacenters

Problema: Mal uso de processamento

Dos 100% de processamento, segundo pesquisa americana financiada pela IDC - Usa -se apenas 15% do processamento, 85% da máquina fica OCISA!!! Fo

nte:ID

C-2

010

Page 21: Beers & Bytes - O Futuro da virtualização

Datacenters

Conclusão:

Quer dizer que existem praticamente 200 milhões de servidores utilizando a p e n a s 1 5 % d o p o d e r d e processamento gastando energia elétrica desnecessariamente ???Fo

nte:ID

C-2

010

Page 22: Beers & Bytes - O Futuro da virtualização

Datacenters

REFRIGERAÇÃO

GERENCIAMENTO

ENERGIA

INSTALAÇÃO

CARGADETI

Page 23: Beers & Bytes - O Futuro da virtualização

Datacenters

Solução:

U t i l i z a r - s e d e u m c o n c e i t o desenvolvido em 1960 para dividir recursos de sistema de forma lógica entre Mainframes para atender d i fe rentes ap l icações, ou se ja , VIRTUALIZAÇÃO.

Fonte:ID

C-2

010

Page 24: Beers & Bytes - O Futuro da virtualização

Virtualização

Primeiro objetivo é reduzir fisicamente a quantidade de servidores existentes.

Diminui o TCO no geral em 35%.1 - Redução do consumo elétrico.2 - Redução do gerenciamento.3 - Redução da refrigeração.

Concentrando várias máquinas virtuais em uma única máquina física.

Fonte:ID

C-2

010

Page 25: Beers & Bytes - O Futuro da virtualização

Virtualização

Segundo a Gartner

Em 2008 12 % dos ambientes eram virtuais

Em 2014 esse número já era maior que 60%

Page 26: Beers & Bytes - O Futuro da virtualização

Virtualização

Sendo assim, não existe Cloud sem virtualização, então…

Evolução de ilhas isoladas para polo de recursos virtuais interconectadas

- Maximizar eficiência- Reduzir custo

Page 27: Beers & Bytes - O Futuro da virtualização

Questões

1 - Mas a virtualização realmente resolve o problema de subutilização de processamento ?

2 - E como fazer deploy entre diferentes tecnologias de cloud com diversas ferramentas de virtualização ?

Page 28: Beers & Bytes - O Futuro da virtualização

Resposta…

AWS - Cost Optimization - Truted Advisor

Virtualizar resolve parcialmente o problema: energético ok mas não a subutilização.

Page 29: Beers & Bytes - O Futuro da virtualização

Resposta…

Page 30: Beers & Bytes - O Futuro da virtualização

Docker

Docker é uma plataforma OpenSource para developers e sysadmin que

permite construir um pacote conhecido pelo nome de container, constituído por uma distribuição linux sistema operacional + aplicação.

Uma máquina consegue executar vários containers diferentes de forma organizada e separada dentro de um computador anfitrião de forma semelhante aos que ocorre na virtualização tradicional.

COM MAIS PODER E MAIS FLEXIBILIDADE :)

Page 31: Beers & Bytes - O Futuro da virtualização

Docker

O Docker é constituído por duas ferramentas:

1 - Docker Engine: Responsável pela criação, empacotamento e execuçãoArquitetura cliente / server (Possível administrar remotamente)

2- Docker Hub: Serviço nas nuvens para o compartilhamento das aplicações criadas em Docker.

Integrado com Git :)

Page 32: Beers & Bytes - O Futuro da virtualização

Docker

Como assim ?

No mundo Docker, você não tem mais uma aplicação que roda em Ubuntu, por exemplo. Você tem um contêiner que representa tudo isso!

E qual a vantagem disso ?

Page 33: Beers & Bytes - O Futuro da virtualização

Docker

? ? ? ?? ? ? ?? ? ? ?? ? ? ?

Como eu resolvo esse problema de logística ?

Page 34: Beers & Bytes - O Futuro da virtualização

Docker

Page 35: Beers & Bytes - O Futuro da virtualização

Docker

Page 36: Beers & Bytes - O Futuro da virtualização

Docker

Containers foram feitos para serem transportados entre diferentes tipos de tecnologia.

Page 37: Beers & Bytes - O Futuro da virtualização

Docker

Mobilidade :)

Page 38: Beers & Bytes - O Futuro da virtualização

Docker

Mas é só isso ?

Page 39: Beers & Bytes - O Futuro da virtualização

Construir um contêiner

DockerfileInfraestrutura em código :)

Page 40: Beers & Bytes - O Futuro da virtualização

Construir um container

FROM centos:centos6 MAINTAINER Carlos Smaniotto [email protected]

ENV EPEL_URL http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm tar ENV BASELINE_PACK tar openssh-server openssh-clients unzip vim yum-utils git golang wget ENV ORA_URL http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.rpm

RUN yum install -y $EPEL_URL $BASELINE_PACK#install oracle java RUN wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" \ "$ORA_URL" -O /var/tmp/jdk-8-linux-x64.rpm && yum localinstall -y /var/tmp/jdk-8-linux-x64.rpm && \ rm /var/tmp/* -rf && yum clean all

ENV JAVA_HOME /usr/java/default

Dockerfile

Infraestrutura em código :)

Page 41: Beers & Bytes - O Futuro da virtualização

Construir um container - Herança

Podemos usar um container para criar um outro container

FROM centos/6:5 …

FROM carlos.smaniotto/centos:java7 …

carlos.smaniotto/centos:java7

Page 42: Beers & Bytes - O Futuro da virtualização

Construir um contêiner

AuFSVersionamento de um container

Page 43: Beers & Bytes - O Futuro da virtualização

Como isso é possível ?

AuFS - Advanced multi layered unification filesystem

Permite fazer merge de layers

Page 44: Beers & Bytes - O Futuro da virtualização

Como isso é possível ?

Page 45: Beers & Bytes - O Futuro da virtualização

Como isso é possível ?

Arquitetura

Page 46: Beers & Bytes - O Futuro da virtualização

Docker

O Docker utiliza subsistemas do Kernel Linux Host que permitem rodar somente a parte que interessa do Guest OS e compartilhar parte dos recursos do kernel do sistema operacional Host.

Um dos projetos precursor para isso foi o LXC - IBM, Google, Parallels entre outros.O LXC é uma técnica de virtualização de nível baixo, camada de Kernel. Usando para isso subsistemas como cgroups, namespaces.

Colinha: Host é o SO que esta no hardware e Guest é o virtual

Page 47: Beers & Bytes - O Futuro da virtualização

Docker

RESUMINDO: Permite que recursos, libs e configurações sejam “aprisionados” em um path e isolados

+…

Com a ajuda do AuFS.

O Docker funciona como uma camada sobre o LXC. Atualmente estão desenvolvendo uma arquitetura de acesso direto aos subsistemas de kernel: libcontainer

Colinha: Host é o SO que esta no hardware e Guest é o virtual

Page 48: Beers & Bytes - O Futuro da virtualização

Docker

Logo… container é um grupo de processos isolados em um BOX Linux gravados em um arquivo gerenciado pelo AuFS, o que permite inclusive versionamento deste arquivo.

Para quem conhece chroot é um chroot com esteroides.

Page 49: Beers & Bytes - O Futuro da virtualização

Docker

Virtualizaçãotradicional

LinuxConteiner

Docker

Page 50: Beers & Bytes - O Futuro da virtualização

Docker

Page 51: Beers & Bytes - O Futuro da virtualização

Docker

Page 52: Beers & Bytes - O Futuro da virtualização

Docker

Vantagem

Page 53: Beers & Bytes - O Futuro da virtualização

Docker

Qual a vantagem disso ?

Extremamente rápido: inclusive no startup do container.

Isola o sistema: chroot e processo único.

Fácil replicação: é só pegar a imagem, subir em outro ambiente e mandar rodar o container dessa imagem.

Versionamento: Posso ter diferentes versões de minha aplicação completa

Page 54: Beers & Bytes - O Futuro da virtualização

Docker

Preparo DeployManual

DeployAutomático

Tempodeboot

HardwareFísico dias horas minutos minutos

Virtualização minutos minutos segundos menosde1minuto

Containers segundos minutos segundos segundos

Page 55: Beers & Bytes - O Futuro da virtualização

Portanto… benefícios

• Portabilidade: Mesmo resultado em qualquer lugar

• Versionamento: Like Git - commit/push

• Compartilhamento: É possível compartilhar um container

• Reusabilidade: Você pode fazer um fork de um container para atividades distintas.

• Desenvolvimento: Aplicação amarrada à "máquina"!

Page 56: Beers & Bytes - O Futuro da virtualização

Revisão da Virtualização

Primeira onda: Década de 60 em mainframe, o nome foi abstraído por um outro nome: sistema multi-tarefa.

Segunda onda: Começo de 2000 - Virtual Machines até os dias de hoje

Terceira onda: Iniciada fortemente no começo de 2014 com o projeto LXC. Container de aplicação.

Page 57: Beers & Bytes - O Futuro da virtualização

Conclusão

Nesta terceira onda, chamada de virtualização em containers, resolvemos um problema que a segunda onda sozinha não consegue resolver.

Adicionalmente, gera flexibilidade que as VMs tradicionais não conseguem, ou seja, mobilidade.

VM + Container = <3

Page 58: Beers & Bytes - O Futuro da virtualização

OBRIGADO