Compartilhar via


Microsserviços do .NET: arquitetura para aplicativos .NET em contêineres

Capa do livro

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 gerenciamento deles usando contêineres. Ele discute abordagens de design e implementação de arquitetura usando contêineres do .NET e 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 do eShopOnContainers .

Introdução

As empresas estão percebendo cada vez mais a economia de custos, resolvendo problemas de implantação e melhorando o DevOps e as operações de produção usando contêineres. A Microsoft vem lançando inovações de contêiner para Windows e Linux criando produtos como o Serviço de Kubernetes do Azure e o Azure Service Fabric e fazendo parcerias com líderes do setor como Docker, Mesosphere e Kubernetes. Esses produtos fornecem soluções de contêiner que ajudam as empresas a criar e implantar aplicativos em escala e velocidade de nuvem, independentemente de sua escolha de plataforma ou ferramentas.

O Docker está se tornando o padrão de fato 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 no local.

Além disso, a arquitetura de microsserviços está emergindo como uma abordagem importante para aplicativos de missão crítica distribuída. Em uma arquitetura baseada em microsserviço, o aplicativo é criado com base em uma coleção de serviços que podem ser desenvolvidos, testados, implantados e com versão independente.

Sobre este guia

Este guia é uma introdução ao desenvolvimento de aplicativos baseados em microsserviços e ao gerenciamento deles usando contêineres. Ele discute abordagens de design e implementação de arquitetura usando contêineres do .NET e do Docker. Para facilitar a introdução a contêineres e microsserviços, o guia se concentra em um aplicativo baseado em microsserviços e contêineres de referência que você pode explorar. O aplicativo de exemplo está disponível no repositório GitHub do eShopOnContainers .

Este guia fornece diretrizes básicas de desenvolvimento e arquitetura 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 aplicativo sem se concentrar na infraestrutura (nuvem ou local) do seu ambiente de produção. Você tomará decisões sobre sua infraestrutura mais tarde, ao criar seus aplicativos prontos para produção. Portanto, este guia destina-se a ser independente de 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 abordar 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 a 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 aborda

Este guia não se concentra no ciclo de vida do aplicativo, no DevOps, nos pipelines de CI/CD ou no trabalho em equipe. O guia complementar ciclo de vida do aplicativo Docker em contêineres com a Plataforma e ferramentas da Microsoft 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

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 você 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 do Docker.

Você também achará este guia útil se você for um tomador de decisão técnico, como um arquiteto corporativo, que deseja uma visão geral de arquitetura e tecnologia antes de decidir qual abordagem selecionar para aplicativos distribuídos novos e modernos.

Como usar este guia

A primeira parte deste guia apresenta 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. Esse conteúdo é para arquitetos e tomadores de decisões técnicas que desejam uma visão geral, mas não precisam se concentrar nos detalhes da implementação do código.

A segunda parte do guia começa com a seção Desenvolvimento para aplicativos baseados no Docker . Ele se concentra nos padrões de desenvolvimento e microsserviço para implementar aplicativos usando o .NET e o Docker. Esta seção será mais interessante para desenvolvedores e arquitetos que desejam se concentrar no código e nos detalhes de padrões e implementação.

O aplicativo eShopOnContainers é um aplicativo de referência de software livre para .NET e microsserviços que foi 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 repositório eletrônico (um aplicativo Web MVC, um SPA Web 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.

A finalidade do aplicativo é mostrar padrões de arquitetura. A TI NÃO É UM MODELO PRONTO PARA PRODUÇÃO para iniciar aplicativos do mundo real. Na verdade, o aplicativo está em um estado beta permanente, pois também é usado para testar novas tecnologias potencialmente interessantes à medida que aparecem.

Enviar seus comentários

Este livro e os exemplos relacionados estão em constante evolução, portanto, seus comentários são bem-vindos. Se você tiver comentários sobre como este livro pode ser melhorado e estiver lendo este livro no <learn.microsoft.com>, use a seção Comentários na parte inferior da página:

Seção de comentários de todos os rodapés de artigo do .NET Docs.

Conforme realçado na captura de tela anterior, a seção de comentários permite enviar comentários para:

  • Este produto: usando o formulário de comentários sobre o produto .NET.
  • Esta página: usando um modelo de problema do GitHub com os detalhes da página.

Se você estiver lendo este livro em PDF, poderá enviar comentários criando uma nova questão no .NET Docs: GitHub ou usando o template de questão do GitHub dos eBooks de Arquitetura do .NET.

Créditos

Coautores:

Cesar de la Torre, Sr. PM, equipe de produtos do .NET, Microsoft Corp.

Bill Wagner, Sr. Desenvolvedor de Conteúdo, C+E, Microsoft Corp.

Mike Rousos, Engenheiro de Software Principal, equipe de DevDiv CAT, Microsoft

Editores:

Mike Pope

Steve Hoag

Participantes e revisores:

Jeffrey Richter, Partner Software Eng, equipe do Azure, Microsoft

Jimmy Bogard, arquiteto-chefe da Headspring

Udi Dahan, Fundador & CEO, Particular Software

Jimmy Nilsson, co-fundador e CEO da Factor10

Glenn Condron, Gerente Sênior de Programas da equipe ASP.NET

Mark Fussell, Principal PM Lead, equipe do Azure Service Fabric, Microsoft

Diego Vega, líder da PM, equipe do Entity Framework, Microsoft

Barry Dorrans, Gerente Sênior de Programa de Segurança

Rowan Miller, Gerente de Programas da Microsoft

Ankit Asthana, Gerente principal do PM, equipe do .NET, Microsoft

Scott Hunter, diretor de parceiros PM, equipe do .NET, Microsoft

Nish Anil, Sr. Program Manager, equipe do .NET, Microsoft

Dylan Reisenberger, Arquiteto e Líder de Desenvolvimento na Polly

Steve "ardalis" Smith - Arquiteto de Software e Treinador - Ardalis.com

Ian Cooper, Arquiteto de Codificação da Brighter

Unai Zorrilla, Arquiteto e Líder de Desenvolvimento em Conceitos Simples

Eduard Tomas, Líder de Desenvolvimento em Conceitos Simples

Ramon Tomas, desenvolvedor da Plain Concepts

David Sanz, desenvolvedor da Plain Concepts

Javier Valero, Diretor de Operações do Grupo Solutio

Pierre Millet, Consultor, 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 principal da Neudesic

PUBLICADO POR

Equipes de produtos da Divisão de Desenvolvedores da Microsoft, do .NET e do Visual Studio

Uma divisão da Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2023 pela 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 escrita do editor.

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, opiniões e informações expressas neste livro, incluindo URL e outras referências de sites da Internet, podem ser alterados sem aviso prévio.

Alguns exemplos descritos aqui são fornecidos apenas para ilustração e são fictícios. Nenhuma associação real ou conexão verdadeira é pretendida ou deve ser inferida.

A Microsoft e as marcas listadas na https://www.microsoft.com página da Web "Marcas comerciais" são marcas comerciais do grupo de empresas da Microsoft.

Mac e macOS são marcas comerciais da Apple Inc.

O logotipo do Docker Whale é uma marca registrada do Docker, Inc. Usado por permissão.

Todas as outras marcas e logotipos são propriedade de seus respectivos proprietários.