O documento apresenta dois perfis profissionais com experiência em tecnologia, especificamente na área de .NET e DevOps. Ambos possuem mais de uma década de experiência e atuam como autores técnicos e palestrantes.
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janeiro-2019
1.
2. • Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor
(MTAC)
• Mais de 15 anos de experiência na área de
Tecnologia
• Autor Técnico e Palestrante
• Um dos organizadores do Canal .NET, .NET SP,
Azure Talks e DevOps Professionals
Renato Groffe
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
3. • Microsoft Most Valuable Professional (MVP)
• 14 anos com Tecnologia, sendo 9 na área de
Turismo
• Autor Técnico e Palestrante
• Um dos organizadores do.NET SP e DevOps
Professionals
Milton Câmara Gomes
h t t p s : / / m e d i u m . c o m / @ m c a m a r a /
4. Agenda
• Um pouco mais sobre containers Docker
• Dificuldades da adoção de containers
• Orquestração com Kubernetes: uma visão geral
• Kubernetes + Azure DevOps
• Exemplos práticos
6. Motivações para uso
• Isolamento
• Utilização mais racional de recursos
• Rapidez no deployment
• Menor dependência do ambiente
• Microserviços ganhando força
8. O que podemos instalar?
• Servidores de bancos de dados
• Aplicações Web
• Serviços em geral
9. Existem também dificuldades...
• Como escalar containers?
• Como garantir o trabalho coordenado
entre os diferentes containers de uma
aplicação?
• Como detectar containers com falhas e
corrigir isso automaticamente?
15. Kubernetes: uma visão geral
• Também conhecido como K8s ou kube
• Desenvolvido originalmente pela Google
• Mantido pela Cloud Native Computing Foundation
• Escrito em Go
• Open source
16. Kubernetes: uma visão geral
• Cluster com máquina Master e Nodes
• Criação de objetos através de arquivos no formato
YAML
• Diversas funcionalidades para gerenciamento
• kubectl → ferramenta de linha de comando
• Minikube → ambiente de testes
17. Kubernetes: gerenciamento de containers
• Orquestração
• Auto recuperação
• Reinício
• Replicação
• Escalonamento
18. Kubernetes: arquitetura
• Master
• Máquina que controla os Nodes (Nós)
• Responsável pelas atribuições de tarefas
aos Nodes
• Nodes
• Máquina que realizam as tarefas
atribuídas pelo Master
20. Kubernetes: arquitetura
• Pod
• Grupo de um ou mais containers
implantados em um Node (Nó)
• Compartilham o mesmo endereço IP,
IPC, nome do host e outros recursos
POD
22. Kubernetes: arquitetura
• Service
• Objeto mais estável (Pods são criados ou
removidos continuamente)
• Cuidará do acesso aos Pods, funcionando
como um Load Balancer
23. Kubernetes: arquitetura
• Replication Controller
• Controla quantas cópias idênticas de um Pod
serão executadas e em quais locais do cluster
• Kubelet
• Serviço que garante a inicialização e execução
dos containers nos Nodes
26. Exemplo Prático
• API REST criada com o ASP.NET Core 2.1
• Será utilizada a mesma API de contagem
de acessos dos exemplos anteriores
(publicada no Docker Hub como a imagem
renatogroffe/apicontagem)
• Criação de um cluster através do Azure
Kubernetes Service (AKS)
28. O que é DevOps?
“DevOps é a união de pessoas, processos e produtos para permitir a
entrega contínua de valor aos nossos usuários finais.
É muito importante perceber que o DevOps não é um produto.
Você não pode comprar DevOps e instalá-lo. O DevOps não é
apenas automação ou infraestrutura como código. DevOps é
pessoas que seguem um processo ativado por produtos para
agregar valor aos nossos usuários finais.”
Donovan Brown
30. kubectl
• Utilitário de linha de comando
do Kubernetes
• Multiplataforma (Windows,
Linux e macOS)
31. Azure CLI (Command-Line Interface)
• Gerenciamento e administração de
recursos do Microsoft Azure via linha de
comando
• Compatível com Bash e PowerShell
• Multiplataforma (Windows, Linux e
macOS)
32. Azure Cloud Shell
• Gerenciamento e administração de
recursos na nuvem via linha de
comando no Portal do Azure
• Suporte a Bash e PowerShell
• Diversas ferramentas pré-instaladas
(Azure CLI, kubectl, por exemplo)
33. ASP.NET Core 2.1
• Gerenciamento e administração de
recursos do Microsoft Azure via linha de
comando
• Compatível com Bash e PowerShell
• Multiplataforma (Windows, Linux e
macOS)
34. Azure Container Registry
• Armazenamento de imagens
Docker privadas na nuvem
• Alternativa ao Docker Hub /
Docker Store
36. Azure DevOps
• Controle de Versão do Código Fonte (GIT ou TFVC)
• Gestão de Tarefas (Scrum / Kanban)
• Integração Contínua
• Deploy Contínuo
• Testes Automatizados
• Dashboards
37.
38. Exemplo Prático
• Novamente a API REST criada com o ASP.NET Core
2.1: esta aplicação retornará uma contagem de
acessos e o Pod a partir do qual é executada a
instância de uma aplicação
• Esta mesma API foi publicada no Docker Hub como
a imagem renatogroffe/apicontagem
• Comando para obter as definições de acesso ao
cluster:
kubectl config view --raw