ORQUESTRAÇÃO DE CONTAINERS COM RANCHER
JORGE LUIS
PALESTRANTES
DEVOPS
SEFIN-RO / AMERON
Graduado em:
Sistemas de Informação (Uniron)
Pós-graduado em
Segurança da informação e redes
de computadores (FGV)
DEV OPS
ALEX ISHIDA
ENGENHEIRO DE SOFTWARE
SEFIN-RO
Graduado em:
Sistemas de Informação (Ulbra)
Pós-graduado em:
Engenharia de Software
(Faculdade Unyleya)
E-mail: alexishida@gmail.com
Twitter: @alexishida
E-mail: jorge.campelo@hotmail.com
Docker é um projeto de código aberto que automatiza a
implantação de aplicativos dentro de contêineres e é mantido
pela empresa Docker, Inc.
O que é Docker?
Docker fornece uma camada adicional de abstração e automação da
virtualização em nível operacional, utilizando recursos de isolamento
do kernel do Linux, como cgroups e namespaces, e um sistema de
arquivos union mounting como padrão o OverlayFS dando
possibilidade ao uso de outros sistema de arquivos.
O que é Docker?
A idéia do Docker é que cada contêiner rode apenas uma aplicação ou
serviço e que seus dados importantes fiquem persistidos fora do
container, facultando assim a possibilidade do contêiner ser
descartável (destruir o container e recriar sem comprometer a
integridade da instalação da aplicação ou serviço).
O que é Docker?
Os contêineres e as máquinas virtuais possuem recursos de isolamento
e alocação similares, mas funcionam de forma diferente, pois os
contêineres virtualizam o sistema operacional e as máquinas virtuais
virtualizam um hardware.
Virtual Machines vs. Containers
Virtual Machine Container
O Docker traz uma API para gerenciamento de contêineres e formato
de imagem que possibilita compartilhar contêineres utilizando um
repositório remoto (https://store.docker.com), beneficiando
tanto desenvolvedores quanto administradores de sistemas e tendo
como vantagens:
POR QUE USAR?
● Implementação rápida de aplicativos - os contêineres incluem os requisitos mínimos
de execução do aplicativo, reduzindo seu tamanho e permitindo que sejam implantados
rapidamente.
● Portabilidade entre máquinas - um aplicativo e todas as suas dependências podem
ser empacotadas em um único contêiner independente da versão host do kernel Linux,
distribuição ou modelo de implantação. Este container pode ser transferido para outra
máquina que executa o Docker e executado lá sem problemas de compatibilidade.
POR QUE USAR?
● Controle de versão e reutilização de componentes - você pode controlar versões
sucessivas de um container, inspecionar diferenças ou reverter para versões anteriores.
Os contêineres re-aproveitam componentes das camadas anteriores, o que os tornam
mais eficientes na hora dos downloads.
● Imagens otimizadas - as imagens do Docker são tipicamente muito pequenas, o que
facilita a entrega rápida e reduz o tempo de implantação de novos contêineres de
aplicativos.
● Compartilhamento - você pode usar um repositório remoto ou local para compartilhar
seu contêineres.
● Manutenção simplificada - Docker reduz o esforço e o risco de problemas com
dependências de aplicativos
POR QUE USAR?
O Rancher é um software de código aberto, que contém um conjunto
de softwares necessários para o gerenciamento e orquestração de
containers via web.
O QUE É O RANCHER?
Infra-estrutura
O Rancher aceita tanto hosts Linux de nuvem pública, nuvem
privada, servidores físicos ou máquinas virtuais, o Rancher não
faz distinção em seu uso, implementando uma camada de serviços de
infra-estrutura projetados especificamente para facilitar o
gerenciamento de aplicativos em contêineres. Os serviços de
infraestrutura do Rancher incluem redes, armazenamento,
balanceador de carga, DNS.
RANCHER
COMPONENTES PRINCIPAIS
Orquestração
Rancher aceita os principais orquestradores:
● Docker Swarm
● Kubernetes
● Mesos
O Rancher possui seu próprio orquestrador:
● Cattle
RANCHER
COMPONENTES PRINCIPAIS
Catálogo de Aplicações
Os usuários do Rancher podem instalar aplicativo
inteiro que utiliza vários contêineres a partir do
catálogo com clique de um botão.
O Rancher mantém um catálogo público composto por
aplicações populares contribuídas pela comunidade
Rancher. Os usuários do Rancher também podem criar
seus próprios catálogos privados.
RANCHER
COMPONENTES PRINCIPAIS
Gerenciamento de usuários e controle de acesso
O Rancher oferece suporte de integração e autenticação de usuários
com Active Directory, LDAP, Azure AD e GitHub. Bem como suporte
a controle de acesso baseado em funções (Role-Based Access Control
- RBAC), permitindo que usuários e grupos compartilhem ou recusem a
entrada em ambientes de desenvolvimento e produção.
RANCHER
COMPONENTES PRINCIPAIS
● Open Source e gratuito;
● Facilidade de utilização dos comandos do docker via interface web;
● Criação de infraestruturas híbridas (Cloud com Infra física);
● Criação de Stacks (Conjunto de containers para o mesmo fim,
exemplo: Wordpress e Mysql), com controle de TAGS e descrição
do serviço;
● Load Balancers - Com o Rancher é fácil adicionar um balanceador
a sua aplicação, por padrão ele utiliza o Haproxy, com a
possibilidade de adicionar configurações customizadas;
RANCHER
VANTAGENS E FUNCIONALIDADES
● Health Check por Socket ou http 200 (verifica a integridade e a
saúde de container);
● Separação total de ambientes (ambientes físicos podem ser
totalmente isolados do ambiente virtual) utilizando CNI - the
Container Network Interface;
● Rede privada entre os containers mesmo que em máquinas
separadas utilizando tunelamento IPsec;
● Configuração total da rede virtual;
● Metadata Service (Serviço de API);
RANCHER
VANTAGENS E FUNCIONALIDADES
● Controle de recursos (memória,cpu,swap) da máquina física por
contêineres;
● Acesso ao terminal shell e aos logs dos contêineres pela interface
web;
● Possibilidade de envio de log para outras aplicações
(Graylog,Kibana);
● Possibilidade de um serviço de storage (Glusterfs,Convoy);
● Repositório de senhas e certificados SSL;
RANCHER
VANTAGENS E FUNCIONALIDADES
● Auditoria de alterações feitas no Rancher;
● Criação de máquinas virtuais pelo próprio gerenciador web;
● Facilidade na hora de escalar um container e resolução de
troubleshooting;
● Criação de Stacks predefinidos (Catálogos);
RANCHER
VANTAGENS E FUNCIONALIDADES
RANCHER
COMPONENTES PRINCIPAIS
RANCHER
CASO DE USO
No nosso ambiente Rancher utilizamos:
● 3 Servidores Físicos
● 1 Storage
● 20 Máquinas Virtuais
● 84 Stacks (Aplicações)
● +137 Containers
RANCHER
VÍDEO CRIANDO UM LOAD BALANCER
Veja o vídeo em:
https://youtu.be/Due2rn-qagM
MUITO OBRIGADO!!

Orquestração de containers com Rancher

  • 1.
  • 2.
    JORGE LUIS PALESTRANTES DEVOPS SEFIN-RO /AMERON Graduado em: Sistemas de Informação (Uniron) Pós-graduado em Segurança da informação e redes de computadores (FGV) DEV OPS ALEX ISHIDA ENGENHEIRO DE SOFTWARE SEFIN-RO Graduado em: Sistemas de Informação (Ulbra) Pós-graduado em: Engenharia de Software (Faculdade Unyleya) E-mail: alexishida@gmail.com Twitter: @alexishida E-mail: jorge.campelo@hotmail.com
  • 3.
    Docker é umprojeto de código aberto que automatiza a implantação de aplicativos dentro de contêineres e é mantido pela empresa Docker, Inc. O que é Docker?
  • 4.
    Docker fornece umacamada adicional de abstração e automação da virtualização em nível operacional, utilizando recursos de isolamento do kernel do Linux, como cgroups e namespaces, e um sistema de arquivos union mounting como padrão o OverlayFS dando possibilidade ao uso de outros sistema de arquivos. O que é Docker?
  • 5.
    A idéia doDocker é que cada contêiner rode apenas uma aplicação ou serviço e que seus dados importantes fiquem persistidos fora do container, facultando assim a possibilidade do contêiner ser descartável (destruir o container e recriar sem comprometer a integridade da instalação da aplicação ou serviço). O que é Docker?
  • 6.
    Os contêineres eas máquinas virtuais possuem recursos de isolamento e alocação similares, mas funcionam de forma diferente, pois os contêineres virtualizam o sistema operacional e as máquinas virtuais virtualizam um hardware. Virtual Machines vs. Containers Virtual Machine Container
  • 7.
    O Docker trazuma API para gerenciamento de contêineres e formato de imagem que possibilita compartilhar contêineres utilizando um repositório remoto (https://store.docker.com), beneficiando tanto desenvolvedores quanto administradores de sistemas e tendo como vantagens: POR QUE USAR?
  • 8.
    ● Implementação rápidade aplicativos - os contêineres incluem os requisitos mínimos de execução do aplicativo, reduzindo seu tamanho e permitindo que sejam implantados rapidamente. ● Portabilidade entre máquinas - um aplicativo e todas as suas dependências podem ser empacotadas em um único contêiner independente da versão host do kernel Linux, distribuição ou modelo de implantação. Este container pode ser transferido para outra máquina que executa o Docker e executado lá sem problemas de compatibilidade. POR QUE USAR?
  • 9.
    ● Controle deversão e reutilização de componentes - você pode controlar versões sucessivas de um container, inspecionar diferenças ou reverter para versões anteriores. Os contêineres re-aproveitam componentes das camadas anteriores, o que os tornam mais eficientes na hora dos downloads. ● Imagens otimizadas - as imagens do Docker são tipicamente muito pequenas, o que facilita a entrega rápida e reduz o tempo de implantação de novos contêineres de aplicativos. ● Compartilhamento - você pode usar um repositório remoto ou local para compartilhar seu contêineres. ● Manutenção simplificada - Docker reduz o esforço e o risco de problemas com dependências de aplicativos POR QUE USAR?
  • 12.
    O Rancher éum software de código aberto, que contém um conjunto de softwares necessários para o gerenciamento e orquestração de containers via web. O QUE É O RANCHER?
  • 13.
    Infra-estrutura O Rancher aceitatanto hosts Linux de nuvem pública, nuvem privada, servidores físicos ou máquinas virtuais, o Rancher não faz distinção em seu uso, implementando uma camada de serviços de infra-estrutura projetados especificamente para facilitar o gerenciamento de aplicativos em contêineres. Os serviços de infraestrutura do Rancher incluem redes, armazenamento, balanceador de carga, DNS. RANCHER COMPONENTES PRINCIPAIS
  • 14.
    Orquestração Rancher aceita osprincipais orquestradores: ● Docker Swarm ● Kubernetes ● Mesos O Rancher possui seu próprio orquestrador: ● Cattle RANCHER COMPONENTES PRINCIPAIS
  • 15.
    Catálogo de Aplicações Osusuários do Rancher podem instalar aplicativo inteiro que utiliza vários contêineres a partir do catálogo com clique de um botão. O Rancher mantém um catálogo público composto por aplicações populares contribuídas pela comunidade Rancher. Os usuários do Rancher também podem criar seus próprios catálogos privados. RANCHER COMPONENTES PRINCIPAIS
  • 16.
    Gerenciamento de usuáriose controle de acesso O Rancher oferece suporte de integração e autenticação de usuários com Active Directory, LDAP, Azure AD e GitHub. Bem como suporte a controle de acesso baseado em funções (Role-Based Access Control - RBAC), permitindo que usuários e grupos compartilhem ou recusem a entrada em ambientes de desenvolvimento e produção. RANCHER COMPONENTES PRINCIPAIS
  • 17.
    ● Open Sourcee gratuito; ● Facilidade de utilização dos comandos do docker via interface web; ● Criação de infraestruturas híbridas (Cloud com Infra física); ● Criação de Stacks (Conjunto de containers para o mesmo fim, exemplo: Wordpress e Mysql), com controle de TAGS e descrição do serviço; ● Load Balancers - Com o Rancher é fácil adicionar um balanceador a sua aplicação, por padrão ele utiliza o Haproxy, com a possibilidade de adicionar configurações customizadas; RANCHER VANTAGENS E FUNCIONALIDADES
  • 18.
    ● Health Checkpor Socket ou http 200 (verifica a integridade e a saúde de container); ● Separação total de ambientes (ambientes físicos podem ser totalmente isolados do ambiente virtual) utilizando CNI - the Container Network Interface; ● Rede privada entre os containers mesmo que em máquinas separadas utilizando tunelamento IPsec; ● Configuração total da rede virtual; ● Metadata Service (Serviço de API); RANCHER VANTAGENS E FUNCIONALIDADES
  • 19.
    ● Controle derecursos (memória,cpu,swap) da máquina física por contêineres; ● Acesso ao terminal shell e aos logs dos contêineres pela interface web; ● Possibilidade de envio de log para outras aplicações (Graylog,Kibana); ● Possibilidade de um serviço de storage (Glusterfs,Convoy); ● Repositório de senhas e certificados SSL; RANCHER VANTAGENS E FUNCIONALIDADES
  • 20.
    ● Auditoria dealterações feitas no Rancher; ● Criação de máquinas virtuais pelo próprio gerenciador web; ● Facilidade na hora de escalar um container e resolução de troubleshooting; ● Criação de Stacks predefinidos (Catálogos); RANCHER VANTAGENS E FUNCIONALIDADES
  • 21.
  • 22.
    RANCHER CASO DE USO Nonosso ambiente Rancher utilizamos: ● 3 Servidores Físicos ● 1 Storage ● 20 Máquinas Virtuais ● 84 Stacks (Aplicações) ● +137 Containers
  • 23.
    RANCHER VÍDEO CRIANDO UMLOAD BALANCER Veja o vídeo em: https://youtu.be/Due2rn-qagM
  • 24.