Este artigo agrupa os diversos conteúdos que venho produzindo sobre o uso de containers Docker em conjunto com o .NET Core, o ASP.NET Core e serviços que integram o Microsoft Azure.
Não se trata de um material definitivo, já que pretendo manter este artigo – sempre que possível – atualizado com novos artigos, apresentações e vídeos.
Primeiros passos na utilização de containers Docker
O vídeo do canal Coding Night a seguir, traz uma introdução sobre o uso de Docker e containers, além de apresentar exemplos simples de adoção deste tipo de tecnologia com o .NET Core e o SQL Server 2017:
Descomplicando a montagem de ambientes de desenvolvimento e testes com Docker
Além do suporte ao .NET Core, o Docker também pode ser utilizado em conjunto com soluções como SQL Server 2017, MongoDB e Redis. Os slides a seguir são de uma apresentação que realizei durante o QAXperience 2018, descrevendo justamente o uso destas tecnologias de bancos de dados a partir de containers:
Os artigos a seguir também abordam esse tipo de prática:
- .NET + SQL Server 2017 — Parte 1: executando o SQL Server em um container Docker
- Docker + NoSQL: executando o MongoDB e o Redis a partir de containers
Utilizando containers Docker no Azure
Temos atualmente diversos serviços no Microsoft Azure que oferecem suporte a containers Docker:
- Azure Web App on Linux: alternativa PaaS (Plataform as a Service) que viabiliza o deployment de aplicações construídas a partir de tecnologias compatíveis com distribuições Linux (caso de containers Docker), além de oferecer inúmeras facilidades em termos de gerenciamento, escalabilidade, segurança e monitoramento;
- Azure Containter Registry: permite o armazenamento de imagens de containers de maneira privada, trazendo assim uma alternativa dentro da nuvem da Microsoft ao uso de planos pagos do Docker Hub. Este serviço pode ser empregado em conjunto com tecnologias como Azure Container Services (com seus diferentes orquestradores – Docker Swarm, DC/OS e Kubernetes) e Azure Web App on Linux;
- Azure Container Instances: alternativa que simplifica a utilização de containers Docker na nuvem. Embora dispense o uso de orquestradores (abordagem comum em cenários complexos, nos quais questões como um uso mais intensivo e escalabilidade são preocupações centrais), o Azure Container Instances pode mesmo assim ser integrado à soluções como o Kubernetes.
Os artigos a seguir abordam o uso destas diversas alternativas:
- ASP.NET Core 2.0: deployment na nuvem com Docker, Azure Container Registry e Azure Web App on Linux
- ASP.NET Core: APIs REST na nuvem com Docker e Azure Web App
- ASP.NET Core + Docker: aplicações na nuvem com Azure Container Instances
Docker Compose: implementando soluções multi-containers
O Docker Compose é um serviço do próprio Docker voltado à criação e execução conjunta dos múltiplos containers de uma aplicação. Tal capacidade contribui para facilitar o deployment de um projeto em diferentes ambientes.
Além disso, o Docker Compose é considerado uma alternativa extremamente útil em cenários que envolvam a implementação de uma arquitetura de micro serviços. Essa tecnologia foi abordada em detalhes num evento online recente do Canal .NET:
E também em um artigo publicado publicado no meu blog:
Kubernetes: orquestração de containers Docker
Solução open source mais popular ao se tratar de orquestração de containers, o Kubernetes também é oferecido como um serviço gerenciado chamado AKS (Azure Container Service/Managed Kubernetes) dentro do Microsoft Azure.
Os slides a seguir são de uma apresentação que realizei no início de abril, durante o Community Bootcamp, um evento promovido pela Microsoft, em São Paulo-SP:
As fontes do projeto utilizado durante a apresentação foram disponibilizados também no GitHub:
Também estou produzindo uma série de artigos focados no uso do ASP.NET Core com Kubernetes, e a partir do Microsoft Azure:
Outras referências
A seguir estão outros artigos que produzi envolvendo o uso de Docker em conjunto com o ASP.NET Core: