3. https://itHarley.com
Quem é você?
• MBA em Gerenciamento de Projetos deTI – Faculdade Farias Brito;
• Bacharel em Engenharia Elétrica – UFC;
• Tecnológo emTelemática – FIC/Estácio;
• Técnico em Informática Industrial – ETFCE/CEFET-CE/IFCE;
• 2x CCIE (Routing & Switching, Service Provider), CISSP;
• VCIX-NV (Vmware NSX), MCSECloud Platform,VCP6-DCV, JNCIA-Cloud, ITIL v3;
• Ex-membro do Cisco Data CenterTigerTeam;
• Áreas de especialidade: Cyber Security, DataCenter, Cloud Computing, Routing & Switching, Service Provider;
• Colaborador regular da PenTest Magazine e da Hakin9;
• Arquiteto de CloudComputing e Cyber Security na HX Brasil;
• Palestrante de temas diversos emTecnologia da Informação;
• Mais de 20 anos de experiência emTI.
3
5. https://itHarley.com
Virtualização
• Quando e como começou?
• Década de 1960;
• Mainframes;
• Sistema de compartilhamento de tempo para processamento de tarefas;
• Alterações foram realizadas no sistema operacional;
• Cada usuário passou a receber uma “máquina virtual”, que dava a ele a impressão
de estar acessando o computador central;
• A tecnologia evoluiu ao longo do tempo, permitindo a possibilidade de criar
clusters de computadores para determinadas atividades;
• AVMware portou essa capacidade para servidores x86.
5
7. https://itHarley.com
O que pode ser virtualizado em TI?
• Hardware
• VMware vSphere ou Microsoft Hyper-V
• Storage
• Dell Compellent ou FreeNAS
• Rede
• VLANs eVRFs
• Aplicação
• Citrix XenApp ouVMwareThinApp
• Desktop
• Microsoft Remote Desktop Services (RDS) ou Citrix XenDesktop
7
9. https://itHarley.com
Exemplos de Virtualizadores
• Tipo 1, também chamados de hypervisors
• Microsoft Hyper-V;
• VMware ESXi
• O que é o vSphere???
• vSphere é apenas a suíte composta por ESXi + vCenter.
• XenServer (Citrix ou open source);
• KVM + QEMU + libvirt;
• bhyve e xhyve.
9
10. https://itHarley.com
Exemplos de Virtualizadores (cont.)
• Tipo 2 (dependem do sistema operacional host)
• MicrosoftVirtual PC (descontinuado);
• VMwareWorkstation;
• VMware Player;
• VMware Fusion;
• OracleVirtualbox;
• Parallels Desktop.
10
14. https://itHarley.com
Breve Histórico
• Containers não começaram com Docker!
• Década de 1970: UnixV7;
• 2000: Jails no FreeBSD;
• 2001: VServer no Linux (ao mesmo estilo dos Jails);
• 2002: Virtuozzo;
• 2004: Oracle Solaris Containers;
• 2005: OpenVZ;
14
15. https://itHarley.com
Breve Histórico (cont.)
• 2006: Process Containers;
• 2008: LXC (Linux Containers) ;
• 2011: Warden;
• 2013: LMCTFY (Let Me ContainThat ForYou);
• 2013: Docker;
• Quem criou o Docker?
• A Docker Inc., certo?
• Sim e não! O software foi criado em 2010 pela dotCloud, uma empresa de PaaS;
• Ela foi comprada pela Docker Inc. em 2013, ano em que o produto foi liberado como
open source.
15
16. https://itHarley.com
Breve Histórico (cont.)
• 2014: CoreOS lança o rkt, sua versão de containers;
• 2017: produto se torna plenamente maduro;
• 2017: Kubernetes dá um boom ao mundo de containers
• Kubernetes suporta Docker e rkt;
• AWS e Microsoft anunciam suporte pleno à plataforma;
• Google já a suporta desde o lançamento, e a usa internamente em todos os
serviços da GCP (GoogleCloud Platform).
16
18. https://itHarley.com
Conceitos Gerais
• Containers, emTI, são:
• Estruturas isoladas para execução de aplicativos e serviços em um espaço de
memória próprio;
• Ambiente mínimo de execução de aplicações, aproveitando-se do
compartilhamento de um mesmo sistema operacional, o que permite usar as
bibliotecas e chamadas de kernel (syscalls) desse sistema;
• Mecanismos de se aproveitar de um repositório central, conhecido como
“registry”, responsável por armazenar imagens que são usadas como base para
instanciamento dos mesmos.
18
21. https://itHarley.com
Conceitos Gerais (cont.)
• 1: Hypervisor tipo 2 comVMs;
• 2: Hypervisor tipo 2 comVMs. Uma tem o Docker;
• 3: Docker instalado diretamente no sistema operacional do servidor;
• 4: Hypervisor tpio 1 comVMs. Uma tem o Docker.
21
26. https://itHarley.com
Conceitos Gerais (cont.)
• Docker Machine foi a primeira forma de fazer containers Linux rodar em
sistemas não-Linux;
• Quando necessitando de containers Docker em sistemas assim (Windows
ou macOS), a recomendação é usar a respectiva versão do software para a
plataforma:
• Docker forWindows;
• Docker for macOS.
• Docker forWindows usa Hyper-V;
• Docker for macOS usa HyperKit (xhyve);
• São opções com hypervisor do tipo 1!
26
30. https://itHarley.com
Conceitos Gerais (cont.)
• E quando se tem muitos containers, o que fazer para gerenciá-los?
• Criar um cluster de Docker Swarm!
• Cada host que executa o Docker daemon (server) é eleito como membro do cluster;
• Um deles é definido como mestre, e se torna responsável pela alocação de containers
nele mesmo e nos outros hosts;
• Numa situação de falha do mestre, um outro membro do cluster é eleito novo mestre.
• Ok, mas e se forem dezenas, centenas, milhares de containers???
• Kubernetes (k8s)!
• Orquestrador de ambientes de micro serviços;
• Gerencia não só os containers em si, mas os hosts, a rede e o storage envolvidos;
• Criado inicialmente pelo Google para uso próprio, mas liberado como open source em
2014.
30
31. https://itHarley.com
Conceitos Gerais (cont.)
• Docker Hub
• Repositório público ou privado para você armazenar suas imagens.
• Docker Store
• Marketplace (a exemplo de AWS, Google e Microsoft) para ter acesso às imagens
de outras empresas. Parceiros do ecossistema Docker oferecem aqui seus
produtos.
• Orquestração de Containers na Nuvem
• Google Cloud Platform Kubernetes;
• AWS ECS (ElasticContainer Service);
• MicrosoftAKS (Azure Kubernetes Service).
31
37. https://itHarley.com
Serverless Computing
• Está relacionada com computação em nuvem;
• Abstração completa de infraestrutura, sistema operacional,
framework, ou qualquer outro componente interno;
• Dispensa provisionamento de qualquer servidor;
• Funções!
• Perfeitamente integrável com microserviços (containers);
• Interação é feita através de APIs.
37
38. https://itHarley.com
Serverless Computing (cont.)
• Pode ser usada com runtimes ou com bases de dados;
• Nos runtimes, é preciso que a linguagem de programação seja suportada
• Python, Node.JS, C#, Go, Java, ...
• AWS Lambda, Azure Functions, Google Functions;
• IBM lançou o OpenWhisk como open source
• É atualmente sub-projeto da Apache Foundation;
• Suporta Node.JS, Python, Java e Swift.
• OpenFaaS (Function as a Service) é outra solução open source
• Focada em Docker e Kubernetes.
38
39. https://itHarley.com
Serverless Computing (cont.)
• Também eliminam a necessidade de provisionamento dos
respectivos bancos de dados;
• É usado o conceito de lago de dados (data lake), uma definição
proveniente de Big Data
• Bases de tamanhos absurdamente grandes e com alto desempenho.
• Exemplos de produtos são oAWS Aurora, o Azure Data Lake, Google
Cloud Datastore;
• Opção independente: FaunaDB (baseada em tecnologia doTwitter).
39
Unix V7: chroot;
Jails: criação de ambientes independentes, com memória, sistema de arquivos e rede separados;
VServer: exatamente a mesma coisa do Jails, mas para Linux;
Virtuozzo: criava VPSs isolados em servidores bare metal, mas só podiam executar um determinado SO guest (ou apenas Windows ou apenas Linux);
Solaris: controles de separação se baseavam em zonas, o que permitia criação de snapshots e clones para o ZFS;
OpenVZ: idêntico ao Virtuozzo, mas sob a licença GPL.
Process Containers: projeto do Google – limitar e isolar conjunto de recursos (CPU, memória, disco, rede) de um conjunto de processo. Virou cgroups em 2007;
LXC: primeiro esboço do conceito de containers. Usava cgroups e kernel namespaces;
Warden: foi baseado no LXC, mas usava uma implementação própria para rodar como daemon e apresentar uma API;
LMCTFY: iniciou como uma alternativa open-source ao projeto de containers do Google, possibilitando que aplicações em Linux criassem seus próprios containers.