Microsserviços do .NET: Arquitetura de aplicativos .NET em contêineres
EDIÇÃO v6.0 – Atualizada para o ASP.NET Core 6.0
Confira o log de alterações com as atualizações do livro e as contribuições da comunidade.
Este guia é uma introdução ao desenvolvimento de aplicativos com base em microsserviços e ao gerenciamento deles usando contêineres. Discute as abordagens de design de arquitetura e de implementação usando o .NET e os contêineres do Docker.
Para facilitar a introdução, o guia concentra-se em um aplicativo de referência em contêineres e baseado em microsserviços que você pode explorar. O aplicativo de referência está disponível no repositório GitHub eShopOnContainers.
Links de ação
Este livro eletrônico também está disponível em formato PDF (somente versão em inglês) Baixar
Clone/Crie fork do aplicativo de referência eShopOnContainers no GitHub
Assista ao vídeo introdutório
Conheça a Arquitetura de Microsserviços agora mesmo
Introdução
As empresas estão cada vez mais percebendo a economia de custo, resolvendo problemas de implantação e melhorando as operações de produção e de DevOps usando os contêineres. A Microsoft tem lançando inovações de contêiner para Windows e Linux com a criação de produtos como o Serviço de Kubernetes do Azure e o Azure Service Fabric e por meio de parcerias com líderes do setor como a Docker, a Mesosphere e a Kubernetes. Esses produtos oferecem soluções de contêiner que ajudam as empresas a criar e implantar aplicativos com a velocidade e a escala da nuvem, seja qual for a escolha de plataformas ou de ferramentas.
O Docker está se tornando o verdadeiro padrão no setor de contêineres, com suporte dos fornecedores mais significativos nos ecossistemas do Windows e do Linux. (A Microsoft é um dos principais fornecedores de nuvem que dão suporte ao Docker). No futuro, o Docker provavelmente será onipresente em qualquer datacenter na nuvem ou local.
Além disso, a arquitetura de microsserviços está despontando como uma abordagem importante para aplicativos críticos distribuídos. Em uma arquitetura baseada em microsserviço, o aplicativo é criado em uma coleção de serviços que podem ser desenvolvidos, testados, implantados e ter as versões controladas de forma independente.
Sobre este guia
Este guia é uma introdução ao desenvolvimento de aplicativos com base em microsserviços e ao gerenciamento deles usando contêineres. Discute as abordagens de design de arquitetura e de implementação usando o .NET e os contêineres do Docker. Para facilitar a introdução aos contêineres e microsserviços, o guia concentra-se em um aplicativo de referência em contêineres e baseado em microsserviços que você pode explorar. O aplicativo de exemplo está disponível no repositório eShopOnContainers do GitHub.
Este guia fornece diretrizes básicas de desenvolvimento e de arquitetura principalmente no nível do ambiente de desenvolvimento com foco em duas tecnologias: Docker e .NET. Nossa intenção é que você leia este guia, ao pensar sobre o design do aplicativo sem focar a infraestrutura (nuvem ou local) do ambiente de produção. Você tomará decisões sobre a infraestrutura mais tarde, quando criar seus aplicativos prontos para produção. Portanto, este guia tem a intenção de ser independente da infraestrutura e mais centrado no ambiente de desenvolvimento.
Depois de estudar este guia, a próxima etapa será saber mais sobre os microsserviços pronto para produção no Microsoft Azure.
Versão
Este guia foi revisado para cobrir a versão .NET 6 juntamente com várias atualizações adicionais relacionadas à mesma "onda" de tecnologias (ou seja, o Azure e tecnologias adicionais de terceiros) coincidindo, em relação ao tempo, com o lançamento do .NET 6. É por isso que a versão do guia também foi atualizada para a versão 6.0.
O que este guia não cobre
Este guia não se concentra no ciclo de vida do aplicativo, em DevOps, nos pipelines de CI/CD nem no trabalho da equipe. O guia complementar Containerized Docker Application Lifecycle with Microsoft Platform and Tools (Ciclo de vida de aplicativo do Docker em contêineres com a plataforma e as ferramentas da Microsoft) trata desse assunto. O guia atual também não fornece detalhes de implementação na infraestrutura do Azure, como informações sobre orquestradores específicos.
Recursos adicionais
- Ciclo de vida do aplicativo do Docker em contêineres com a plataforma e as ferramentas da Microsoft (livro eletrônico para download)
https://aka.ms/dockerlifecycleebook
Quem deve usar este guia
Escrevemos este guia para desenvolvedores e arquitetos de solução que são novos no desenvolvimento de aplicativos com base no Docker e em arquitetura baseada em microsserviços. Este guia é indicado para você se deseja saber como arquitetar, projetar e implementar aplicativos de prova de conceito com tecnologias de desenvolvimento da Microsoft (com foco especial no .NET) e com contêineres do Docker.
Esse guia também será útil se você for um tomador de decisões técnicas, como um arquiteto corporativo que deseja ter uma visão geral da arquitetura e da tecnologia antes de decidir qual abordagem selecionar para aplicativos distribuídos novos e modernos.
Como usar este guia
A primeira parte deste guia apresenta os contêineres do Docker, discute como escolher entre o .NET 6 e o .NET Framework como estrutura de desenvolvimento e fornece uma visão geral sobre microsserviços. Este conteúdo é para arquitetos e tomadores de decisões técnicas que desejam ter uma visão geral, mas que não precisam se concentrar nos detalhes da implementação de código.
A segunda parte do guia de começa com a seção Processo de desenvolvimento de aplicativos baseados no Docker. Ela se concentra nos padrões de desenvolvimento e de microsserviços para implementar aplicativos que usam o .NET e o Docker. Esta seção será de interesse especial para desenvolvedores e arquitetos que desejam se concentrar no código, nos padrões e nos detalhes de implementação.
Aplicativo de referência baseado em contêiner e em microsserviço: eShopOnContainers
O aplicativo eShopOnContainers é um aplicativo de referência de software livre para .NET e microsserviços criado para ser implantado usando contêineres do Docker. O aplicativo é composto por vários subsistemas, incluindo vários front-ends de interface do usuário de loja virtual (um aplicativo Web MVC, um SPA Web e um aplicativo móvel nativo). Ele também inclui os microsserviços e os contêineres de back-end de todas as operações do servidor necessárias.
A finalidade do aplicativo é demonstrar padrões de arquitetura. A TI NÃO É UM MODELO PRONTO PARA PRODUÇÃO para iniciar aplicativos de mundo real. Na verdade, o aplicativo está em um estado beta permanente, porque também é usado para testar novas tecnologias interessantes, à medida que aparecem.
Envie-nos seus comentários!
Escrevemos este guia para ajudá-lo a entender a arquitetura de aplicativos em contêineres e de microsserviços no .NET. O guia e o aplicativo de referência relacionado continuarão sendo desenvolvidos, portanto seus comentários são bem-vindos! Se você tiver comentários sobre como este guia pode ser aprimorado, envie-os para https://aka.ms/ebookfeedback.
Credits
Coautores:
Cesar de la Torre, Gerente sênior de produtos , equipe de produto do .NET, Microsoft Corp.
Bill Wagner, Desenvolvedor sênior de conteúdo, C+E, Microsoft Corp.
Mike Rousos, Engenheiro de Software Principal, equipe DevDiv CAT, Microsoft
Editores:
Mike Pope
Steve Hoag
Participantes e revisores:
Jeffrey Richter, engenheiro de software parceiro, equipe do Azure, Microsoft
Jimmy Bogard, Arquiteto Chefe na Headspring
Udi Dahan, fundador e CEO, Particular Software
Jimmy Nilsson, Cofundador e CEO da Factor10
Glenn Condron, Gerente sênior de programas, equipe do ASP.NET
Mark Fussell, PM Líder Principal, equipe do Azure Service Fabric, Microsoft
Diego Vega, PM Líder, equipe do Entity Framework, Microsoft
Barry Dorrans, gerente de programas de segurança sênior
Rowan Miller, Gerente sênior de programas, Microsoft
Ankit Asthana, Gerente de PM Principal, equipe do .NET, Microsoft
Scott Hunter, PM Diretor de Parceiro, equipe do .NET, Microsoft
Nish Anil, Gerente de Programa Sênior, Equipe .NET, Microsoft
Dylan Reisenberger, Arquiteto e Desenvolvedor Líder na Polly
Steve "ardalis" Smith – Arquiteto de software e instrutor – Ardalis.com
Cooper Ian, Arquiteto de Codificação na Brighter
Unai Zorrilla, Arquiteto e Desenvolvedor Líder na Plain Concepts
Eduard Tomas, Desenvolvedor Líder na Plain Concepts
Ramon Tomas, Desenvolvedor na Plain Concepts
David Sanz, Desenvolvedor na Plain Concepts
Javier Valero, Diretor Executivo de Operações no Grupo Solutio
Pierre Millet, Consultor sênior, Microsoft
Michael Friis, Gerente de Produto, Docker Inc
Charles Lowell, Engenheiro de Software, equipe do VS CAT, Microsoft
Miguel Veloso, engenheiro de desenvolvimento de software da Plain Concepts
Sumit Ghosh, consultor diretor da Neudesic
Direitos autorais
PUBLICADO POR
Divisão de Desenvolvedores Microsoft, equipes dos produtos .NET e Visual Studio
Uma divisão da Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
Copyright © 2022, Microsoft Corporation
Todos os direitos reservados. Nenhuma parte do conteúdo deste guia pode ser reproduzida ou transmitida de nenhuma forma nem por nenhum meio sem a permissão por escrito do publicador.
Este livro é fornecido “no estado em que se encontra” e expressa os pontos de vista e as opiniões do autor. Os pontos de vista, as opiniões e as informações expressos neste guia, incluindo URLs e outras referências a sites da Internet, podem ser alteradas sem aviso prévio.
Alguns exemplos aqui representados são fornecidos somente para fins de ilustração e são fictícios. Nenhuma associação ou conexão real é intencional ou deve ser inferida.
A Microsoft e as marcas listadas em https://www.microsoft.com na página da Web "Marcas" são marcas comerciais do grupo de empresas Microsoft.
Mac e macOS são marcas comerciais da Apple Inc.
O logotipo de baleia do Docker é uma marca registrada da Docker, Inc. Usado mediante permissão.
Todas as outras marcas e logotipos são propriedade de seus respectivos proprietários.