Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019 - Comment
Apresentação sobre primeiros passos no uso de Docker, bem como dicas e truques na manipulação de containers. Palestra realizada para profissionais da UNICID na cidade de São Paulo-SP no dia 29/11/2019. Topics covered: 1. • 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, do .NET São Paulo e do 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 / 2. Renato Groffe - Contatos h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e / /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /canaldotnet /renatogroff 3. Desconto de 20%: http://bit.ly/anp-devops-fujitsu www.azurenapratica.com Black Week - Desconto de 25%: http://bit.ly/anp-serverless-unicid www.azurenapratica.com 4. Agenda • Docker: primeiros passos • Dicas e truques na utilização de containers Docker • Exemplos práticos 5. Um pouco mais sobre 6. Conceitos Fundamentais • Imagens → base para criação de containers, são geradas a partir do arquivo Dockerfile; contém todos os arquivos e dependências de uma aplicação – incluindo sistema operacional • Containers → pacote com tudo que é necessário para a execução de uma aplicação (serviço, site, API) 7. Onde encontrar imagens? 8. Imagens Alpine • Baseadas na distribuição Alpine Linux • Preocupação com segurança e simplicidade • Imagens Docker menores (contendo apenas o mínimo necessário para a execução da aplicação) 9. Principais usos • Deployment de APIs REST e sites • Arquitetura de microserviços • Soluções escaláveis através do uso de orquestradores e alternativas do tipo PaaS 10. Por que utilizar containers Docker? • Isolamento • Utilização mais racional de recursos • Rapidez no deployment • Menor dependência do ambiente 11. E com isto temos o fim da “desculpa”... 12. Mas é só isso? 13. O que mais podemos utilizar com Docker? • Serviços de processamento contínuo • Servidores de bancos de dados • Rotinas de processamento em geral 14. Algumas tecnologias com suporte a Docker 15. Montando ambientes de testes com containers • Rapidez na instalação • Desinstalação sem grandes dificuldades • Diferentes versões de um software numa mesma máquina 16. Criando containers Docker na prática 17. Docker + SQL Server + • Criação de containers do SQL Server 2017 e 2019 em portas diferentes 18. Criando uma imagem e publicando no Docker Hub + • Uso do NGINX para a geração de uma imagem com um site estático 19. Criando uma imagem com ASP.NET Core 3.0 • API REST criada com o ASP.NET Core 3.0 • Contagem de acessos/requisições recebidas (publicada no Docker Hub como a imagem renatogroffe/apicontagem-3-0- alpine) 20. Um questionamento importante... • Como evitar criar separamente múltiplos containers, que possuem algum tipo de relação entre si? 21. Docker Compose é a resposta! 22. Docker Compose: uma visão geral • Criação e execução conjunta dos múltiplos containers de uma aplicação • Facilita o deployment em ambientes de desenvolvimento e testes • Suporte a integração contínua 23. Docker Compose: uma visão geral • É comum a criação de networks (redes) do Docker para deployment • Arquivo com configurações no formato YAML (docker-compose.yml) • Suporte também do Visual Studio Code 24. Docker Compose: exemplo prático Criação de um ambiente com: • MongoDB + Mongo Express • Redis • Neo4j 25. E quanto ao suporte a Docker no Microsoft Azure? + 26. Suporte a Docker no Azure • Azure Container Instances • Azure Container Registry • Azure Web App for Containers • Azure Kubernetes Service (AKS) 27. Azure Container Instances • Criação de containers de forma descomplicada 28. Azure Container Registry • Armazenamento de imagens Docker privadas na nuvem • Alternativa ao Docker Hub / Docker Store 29. Azure Container Registry – Publicação docker tag apicontagem:latest groffecr.azurecr.io/apicontagem docker login groffecr.azurecr.io -u USUÁRIO -p SENHA docker push groffecr.azurecr.io/apicontagem 30. Dificuldades na adoção de containers... • 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? 31. E como superar tais dificuldades? 32. Azure Web App for Containers • Hospedagem de aplicações • Uso de Containers Docker (imagens Linux e Windows) • Suporte a Continuous Integration 33. Azure Web App for Containers • Escalabilidade (vertical e horizontal) • Suporte a HTTPS • Criação de recursos a partir de imagens ou Docker Compose 34. Deployment Automatizado • Fácil integração com Azure DevOps • Build Automatizado com publicação de imagens e deployment no Azure App Service/Azure Web App for Containers 35. Utilizando orquestradores… Azure Kubernetes Service (AKS) + 36. 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 37. Kubernetes: uma visão geral • Cluster com máquina Master e Nodes • Criação de objetos através de arquivos no formato YAML • Funcionalidades para gerenciamento, orquestração e auto recuperação de containers • kubectl → ferramenta de linha de comando • Minikube → ambiente de testes 38. Kubernetes: arquitetura kubectl 39. 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 40. Kubernetes: arquitetura • Deployment • Abstração de um Pod com recursos adicionais • Conta com gerenciamento de estados Deployment POD 41. Kubernetes: arquitetura • Service • Objeto mais estável (Pods são criados ou removidos continuamente) • Cuidará do acesso aos Pods, funcionando como um Load Balancer 42. Kubernetes: arquitetura 43. Exemplo Prático • API REST criada com o ASP.NET Core 3.0 • Será utilizada a mesma API de contagem de acessos dos exemplos anteriores (publicada no Docker Hub como a imagem renatogroffe/apicontagem-3-0-alpine) • Criação de um cluster através do Azure Kubernetes Service (AKS) 44. medium.com/@renato.groffe/ |
|||
Posted by : peter88 | Post date : 2020-01-06 16:02 | ||
Category : Technology | Views : 417 | ||
New Comment