Apresentação sobre o uso do App Service, Docker e Kubernetes com o Microsoft Azure para a implementação de soluções Web escaláveis na nuvem. Palestra realizada no dia 13/02/2019 em evento promovido na comunidade Azure Talks em São Paulo-SP.
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevereiro-2020
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, do .NET São
Paulo e do Azure Talks
• Fundador do Azure na Prática
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. 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
5. Um pouco mais sobre escalabilidade na Web...
Vertical
Horizontal
6. Por que escalar uma aplicação Web?
• Necessidade de atender a uma demanda
crescente de uso sem comprometer a
performance
• Garantir uma alta disponibilidade
7. Problemas comuns ao se escalar uma aplicação Web
• Como criar rapidamente diferentes instâncias de uma
mesma aplicação?
• Como evitar problemas envolvendo mudanças de
ambientes (Desenvolvimento / Testes para Produção)?
• Como configurar sem grandes complicações o
balanceamento de carga (load balancing)?
• Como evitar problemas com armazenamento temporário
de dados (cache em memória, por exemplo)?
• Como se recuperar de problemas envolvendo uma
instância específica da aplicação?
8. Algumas respostas...
• Utilizando soluções na nuvem do tipo PaaS
(Plataform as a Service) → O Microsoft Azure conta
com excelentes opções
• Empregando alternativas para cache distribuído
como o Redis
• Utilização de containers Docker
• Orquestação de containers com Kubernetes ou
Docker Swarm (auto-recuperação e reinicialização
automáticas)
9. Microsoft Azure e escalabilidade na Web
• Azure App Service
• Azure Web App for Containers
• Azure Web App for Containers
• Azure Kubernetes Service (AKS)
10. Azure App Service
• Hospedagem de aplicações
• Publicação em Windows ou Linux e também
utilizando imagens Docker (Azure Web App for
Containers)
• Suporta diversas stacks de desenvolvimento
• Escalabilidade (vertical e horizontal)
• Suporte a HTTPS
11. Azure Kubernetes Service (AKS)
• Serviço gerenciado na nuvem
• Orquestração de containers
• Alocação da infraestrutura necessária
para criação dos nós
12. 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
13. 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
• Dashboard → gerenciamento via browser
• Minikube → ambiente de testes
15. 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
17. Kubernetes: arquitetura
• Service
• Objeto mais estável (Pods são criados ou
removidos continuamente)
• Cuidará do acesso aos Pods, funcionando
como um Load Balancer