Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Campus Party 2019 - Aplicações poderosas e eleg...

Avatar for Valdomiro Valdomiro
February 18, 2019

Campus Party 2019 - Aplicações poderosas e elegantes aprenda a usar Kubernetes

Aplicações poderosas e elegantes aprenda a usar Kubernetes

Avatar for Valdomiro

Valdomiro

February 18, 2019
Tweet

More Decks by Valdomiro

Other Decks in Technology

Transcript

  1. O que é Cloud - Computação em Nuvem? • O

    conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória e da capacidade de armazenamento e cálculo de computadores e servidores Hospedados em Datacenter e interligados por meio da Internet, seguindo o princípio da computação em grade • Tudo é realizado com acesso a internet, seus dados estão armazenados e são acessados por qualquer lugar do mundo, não será necessário a instalação de programas, apenas seu browser. O uso desse modelo (ambiente) é mais viável do que o uso de unidades físicas.
  2. O que são as Camadas? Camada 4: Microservices Camada 3:

    Plataforma de aplicacao Camada 2: Comunicacao Camada 1: Hardware
  3. O que são as Camadas? Camada 4: Microservices Camada 3:

    Plataforma de aplicacao Camada 2: Comunicacao Camada 1: Hardware
  4. O que seria Hardware? • Isolamento e abstracao de recursos

    • Gerenciamento de configuracao • Monitoramentos de servidores • Logging dos servidores Desenhos ilustrando
  5. O que seria Comunicacao? camada de rede, DNS, RPCs, endpoints

    de API,service discovery, service registry, balanceamento de carga, troca de mensagens. Desenhos ilustrando
  6. O que seria Plat. de Servicos? Ferramentas e servicos centralizados,

    processo de desenvolvimento agil, sistema ou stack para builds, tests unitarios, integrados, releases, deployment continuo, logs e monitoramento em nivel de microservices. Desenhos ilustrando
  7. O que seria Microservices? Desenhos ilustrando • Engenharia de software

    • Boas praticas • Configuracoes de ferramentas de pipelines
  8. O que é Kubernetes? Projeto criado a partir do Google

    como uma plataforma de orquestração de contêineres de código aberto. Criado a partir das lições aprendidas nas experiências de desenvolvimento e execução do Borg e do Omega do Google. Projetado desde o início como uma coleção de componentes fracamente acoplada centrada na implantação, manutenção e dimensionamento de contêineres.
  9. O que Kubernetes faz? Conhecido como o kernel do Linux

    de sistemas distribuídos. Abstrai o hardware e fornece uma interface uniforme para que os contêineres sejam implantados e consumam o pool compartilhado de recursos computacionais. Orquestra e gerencia containers/microservices dentro do cluster de servidores. Fornece alta disponibilidade para os microservices.
  10. Infraestrutura e Escala Todos os serviços dentro do Kubernetes possuem

    nativamente load balance. Pode aumentar e diminuir dinamicamente seus nodes/servidores Executa Blue Green e Canary
  11. Saúde dos Containers Eu quero 3 instâncias saudáveis de redis

    para estar sempre em execução. Tudo bem, garantirei que haja sempre três instâncias em funcionamento. Percebi que uma instância morreu, vou tratar de subir uma nova agora.
  12. O que o Kubernetes pode fazer? Autoscale Containers/ microservices Blue/Green

    Deployments Executar/agendar execuções de microservices Gerenciar Microservices com ou sem estados Fácil integração com aplicações de terceiros
  13. Informações gerais do projeto Mais de 47,000 estrelas no Github

    Mais de 1900 colaboradores do K8s Core Repositório mais discutido por uma grande margem Mais de 50.000 usuários na equipe do Slack
  14. Arquitetura... • Replicação de containers entre diferentes nodes para garantir

    alta disponibilidade. • Recuperação automática de container quando ele falha por qualquer motivo. • Autoescala de container com base em métricas de cluster Kubernetes, como o consumo de CPU. • Liberação de deployments e rollbacks de deployment. • Descoberta de serviço. Isso é bom para deploying de microsserviços. • Balanceamento de carga e gerenciamento de volume. • Verificações da saúde do container. • Isolamento de recursos lógicos usando Namespaces. • Controle de recursos e cotas por Namespaces. • Gerenciando tarefas cron.
  15. O que é um Kubernetes Master? • ETCD: é uma

    base de dados de chave valor. Ele armazena os dados de configuração do cluster e o estado do cluster; • API Server: fornece API kubernetes usando Jason. Estados de objetos da API são armazenados no ETCD, e o kubectl usa o API Serve para se comunicar com o cluster; • Controller Manager: monitora os controladores de replicação e cria os pods para manter o estado desejado; • Scheduler: é responsável por executar as tarefas de agendamento, como execução de contêineres nos minions com base na disponibilidade de recursos.
  16. Com o que devemos preocupar? • Separacao em Namespace •

    Seguranca por recursos • Secrets sem acesso dos devs • Images Docker • Health Check Microservices/Servicos • Limites de recursos CPU/Memoria • Se possivel monitoramento fora do Cluster • Persistent Volumes • HPAs bem definidas • Evitar expor Service com LoadBalancer Aqui um desenho pra cada texto pra representar
  17. Links Kubernetes - https://kubernetes.io MinuKube - https://kubernetes.io/docs/setup/minikube/ PlaywithKubernetes - https://labs.play-with-k8s.com/

    CNCF Certificacoes - https://www.cncf.io/certification/cka/ Cursos - https://training.linuxfoundation.org/training/kubernetes-fundamentals/