Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
EDITION v7.0 - Atualizado para ASP.NET Core 7.0
Consulte o changelog para as atualizações do livro e as contribuições da comunidade.
Este guia é uma introdução ao desenvolvimento de aplicativos baseados em microsserviços e ao seu gerenciamento usando contêineres. Ele discute o projeto de arquitetura e as abordagens de implementação usando contêineres .NET e Docker.
Para facilitar os primeiros passos, o guia se concentra em um aplicativo baseado em microsserviços e em contêineres de referência que você pode explorar. O aplicativo de referência está disponível no repositório GitHub eShopOnContainers .
Ligações para ações
Este e-book também está disponível em formato PDF (apenas na versão em inglês) Download
Clonar/Fazer um Fork da aplicação de referência eShopOnContainers no GitHub
Ver o vídeo introdutório
Conheça a Arquitetura de Microsserviços imediatamente
Introdução
As empresas estão cada vez mais realizando economias de custos, resolvendo problemas de implantação e melhorando o DevOps e as operações de produção usando contêineres. A Microsoft tem lançado inovações de contêineres para Windows e Linux criando produtos como o Azure Kubernetes Service e o Azure Service Fabric, e fazendo parcerias com líderes do setor como Docker, Mesosphere e Kubernetes. Esses produtos oferecem soluções de contêiner que ajudam as empresas a criar e implantar aplicativos em velocidade e escala na nuvem, independentemente de sua escolha de plataforma ou ferramentas.
O Docker está se tornando o padrão de fato no setor de contêineres, suportado pelos fornecedores mais significativos nos ecossistemas Windows e Linux. (A Microsoft é um dos principais fornecedores de nuvem que suportam o Docker). No futuro, o Docker provavelmente será onipresente em qualquer datacenter na nuvem ou no local.
Além disso, a arquitetura de microsserviços está emergindo como uma abordagem importante para aplicativos distribuídos de missão crítica. Em uma arquitetura baseada em microsserviços, o aplicativo é construído em uma coleção de serviços que podem ser desenvolvidos, testados, implantados e versionados de forma independente.
Sobre este guia
Este guia é uma introdução ao desenvolvimento de aplicativos baseados em microsserviços e ao seu gerenciamento usando contêineres. Ele discute o projeto de arquitetura e as abordagens de implementação usando contêineres .NET e Docker. Para facilitar a introdução a contêineres e microsserviços, o guia se concentra em um aplicativo conteinerizado de referência e baseado em microsserviços que você pode explorar. O aplicativo de exemplo está disponível no repositório GitHub eShopOnContainers .
Este guia fornece desenvolvimento básico e orientação arquitetônica principalmente em um nível de ambiente de desenvolvimento com foco em duas tecnologias: Docker e .NET. Nossa intenção é que você leia este guia ao pensar no design do seu aplicativo sem se concentrar na infraestrutura (na nuvem ou no local) do seu ambiente de produção. Você tomará decisões sobre sua infraestrutura mais tarde, quando criar seus aplicativos prontos para produção. Portanto, este guia pretende ser agnóstico em relação à infraestrutura e mais centrado no ambiente de desenvolvimento.
Depois de estudar este guia, sua próxima etapa será aprender sobre microsserviços prontos para produção no Microsoft Azure.
Versão
Este guia foi revisado para cobrir a versão do .NET 7 , juntamente com muitas atualizações adicionais relacionadas à mesma "onda" de tecnologias (ou seja, Azure e tecnologias adicionais de terceiros) coincidindo no tempo com a versão do .NET 7.
Observação
Uma nova versão deste eBook está sendo criada para o .NET 8 e o novo exemplo de eShop .
O que este guia não abrange
Este guia não se concentra no ciclo de vida do aplicativo, DevOps, pipelines de CI/CD ou trabalho em equipe. O guia complementar Containerized Docker Application Lifecycle with Microsoft Platform and Tools se concentra nesse assunto. O guia atual também não fornece detalhes de implementação sobre a infraestrutura do Azure, como informações sobre orquestradores específicos.
Recursos adicionais
-
Ciclo de vida do aplicativo Docker em contêiner com plataforma e ferramentas da Microsoft (e-book para download)
https://aka.ms/dockerlifecycleebook
Quem deve usar este guia
Escrevemos este guia para desenvolvedores e arquitetos de soluções que são novos no desenvolvimento de aplicativos baseados no Docker e na arquitetura baseada em microsserviços. Este guia é para você se quiser aprender a arquitetar, projetar e implementar aplicativos de prova de conceito com tecnologias de desenvolvimento da Microsoft (com foco especial no .NET) e com contêineres Docker.
Você também achará este guia útil se você for um tomador de decisões técnicas, como um arquiteto corporativo, que deseja 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 7 e o .NET Framework como uma estrutura de desenvolvimento e fornece uma visão geral dos microsserviços. Este conteúdo é para arquitetos e tomadores de decisões técnicas que desejam uma visão geral, mas não precisam se concentrar em detalhes de implementação de código.
A segunda parte do guia começa com a seção Processo de desenvolvimento para aplicativos baseados no Docker . Ele se concentra no desenvolvimento e padrões de microsserviço para implementar aplicativos usando .NET e Docker. Esta seção será de maior interesse para desenvolvedores e arquitetos que desejam se concentrar em código e em padrões e detalhes de implementação.
Microsserviço relacionado e aplicativo de referência baseado em contêiner: eShopOnContainers
O aplicativo eShopOnContainers é um aplicativo de referência de código aberto para .NET e microsserviços projetado para ser implantado usando contêineres do Docker. O aplicativo consiste em vários subsistemas, incluindo vários front-ends de interface do usuário de loja eletrônica (um aplicativo Web MVC, um Web SPA e um aplicativo móvel nativo). Ele também inclui os microsserviços e contêineres de back-end para todas as operações necessárias do lado do servidor.
O objetivo do aplicativo é mostrar padrões arquitetônicos. NÃO É UM MODELO PRODUCTION-READY PARA iniciar aplicações práticas. Na verdade, o aplicativo está em um estado beta permanente, pois também é usado para testar novas tecnologias potencialmente interessantes à medida que aparecem.
Envie os seus comentários
Este livro e amostras relacionadas estão em constante evolução, por isso o seu feedback é bem-vindo. Se você tiver comentários sobre como este livro pode ser melhorado e estiver lendo este livro em <learn.microsoft.com>, use a seção Feedback na parte inferior da página:
Conforme destacado na captura de tela anterior, a seção de comentários permite que você envie comentários para:
- Este produto: usando o formulário de comentários do produto .NET.
- Esta página: usando um modelo de problema do GitHub com os detalhes da página.
Se estiver a ler este livro em PDF, pode enviar feedback criando um novo problema do .NET Docs: GitHub ou utilizando o modelo de problema do GitHub para livros eletrónicos de arquitetura .NET: .
Créditos
Coautores:
Cesar de la Torre, Sr. PM, equipe de produto .NET, Microsoft Corp.
Bill Wagner, Desenvolvedor de Conteúdo Sênior, C+E, Microsoft Corp.
Mike Rousos, Engenheiro de Software Principal, equipe DevDiv CAT, Microsoft
Editores:
Miguel Papa
Steve Hoag
Participantes e revisores:
Jeffrey Richter, Partner Software Eng, equipa do Azure, Microsoft
Jimmy Bogard, arquiteto-chefe da Headspring
Udi Dahan, Fundador & CEO, Particular Software
Jimmy Nilsson, Cofundador e CEO da Fator10
Glenn Condron, Gerente de Programa Sênior, ASP.NET equipe
Mark Fussell, líder principal de PM, equipe do Azure Service Fabric, Microsoft
Diego Vega, PM Lead, equipe do Entity Framework, Microsoft
Barry Dorrans, Gerente Sr. do Programa de Segurança
Rowan Miller, Gerente de Programa Sênior, Microsoft
Ankit Asthana, Gerente Principal PM, equipe .NET, Microsoft
Scott Hunter, Diretor de Parceiros PM, equipe .NET, Microsoft
Nish Anil, Gerente de Programa Sênior, equipe .NET, Microsoft
Dylan Reisenberger, arquiteto e líder de desenvolvimento na Polly
Steve "ardalis" Smith - Arquiteto de Software e Formador - Ardalis.com
Ian Cooper, arquiteto de codificação na Brighter
Unai Zorrilla, arquiteto e líder de desenvolvimento na Plain Concepts
Eduard Tomas, Dev Lead na empresa Plain Concepts
Ramon Tomas, Desenvolvedor na Plain Concepts
David Sanz, Desenvolvedor na Plain Concepts
Javier Valero, Diretor Superintendente do Grupo Solutio
Pierre Millet, Consultor Sênior, Microsoft
Michael Friis, Gerente de Produtos, Docker Inc
Charles Lowell, Engenheiro de Software, equipe VS CAT, Microsoft
Miguel Veloso, Engenheiro de Desenvolvimento de Software na Plain Concepts
Sumit Ghosh, Consultor Principal da Neudesic
Direitos de autor
PUBLICADO POR
Divisão de desenvolvedores da Microsoft, equipes de produto .NET e Visual Studio
Uma divisão da Microsoft Corporation
Uma maneira da Microsoft
Redmond, Washington 98052-6399
Copyright © 2023 por Microsoft Corporation
Todos os direitos reservados. Nenhuma parte do conteúdo deste livro pode ser reproduzida ou transmitida de qualquer forma ou por qualquer meio sem a permissão por escrito da editora.
Este livro é fornecido "as-is" e expressa as opiniões e os pontos de vista do autor. Os pontos de vista, opiniões e informações expressas neste livro, incluindo URL e outras referências a sites da Internet, podem mudar sem aviso prévio.
Alguns exemplos aqui descritos são fornecidos apenas para ilustração e são fictícios. Nenhuma associação ou conexão real é intencional ou deve ser inferida.
Microsoft e as marcas comerciais listadas em https://www.microsoft.com na página Web "Marcas comerciais" são marcas comerciais do grupo de empresas Microsoft.
Mac e macOS são marcas comerciais da Apple Inc.
O logotipo da baleia Docker é uma marca registrada da Docker, Inc. Usado com permissão.
Todas as outras marcas e logotipos são propriedade de seus respetivos proprietários.