Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dica
Esse conteúdo é um trecho do eBook, Architecting Cloud Native .NET Applications for Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
O aplicativo eShopOnContainers pode ser implantado em várias plataformas do Azure. A abordagem recomendada é implantar o aplicativo no AKS (Serviços de Kubernetes do Azure). O Helm, uma ferramenta de implantação do Kubernetes, está disponível para reduzir a complexidade da implantação. Opcionalmente, os desenvolvedores podem implementar o Azure Dev Spaces para Kubernetes para simplificar seu processo de desenvolvimento.
Serviço de Kubernetes do Azure
Para hospedar o eShop no AKS, a primeira etapa é criar um cluster do AKS. Para fazer isso, você pode usar o portal do Azure, que o orientará pelas etapas necessárias. Você também pode criar um cluster com base na CLI do Azure, tomando cuidado para habilitar o RBAC (Controle de Acesso Role-Based) e o roteamento de aplicativos. A documentação do eShopOnContainers detalha as etapas para criar seu próprio cluster do AKS. Depois de criado, você pode acessar e gerenciar o cluster no painel do Kubernetes.
Agora você pode implantar o aplicativo eShop no cluster usando o Helm.
Implantação no Azure Kubernetes Service usando Helm
O Helm é uma ferramenta do gerenciador de pacotes de aplicativos que funciona diretamente com o Kubernetes. Ele ajuda você a definir, instalar e atualizar aplicativos Kubernetes. Embora aplicativos simples possam ser implantados no AKS com scripts personalizados da CLI ou arquivos de implantação simples, aplicativos complexos podem conter muitos objetos kubernetes e se beneficiar do Helm.
Usando o Helm, os aplicativos incluem arquivos de configuração baseados em texto, chamados gráficos do Helm, que descrevem declarativamente o aplicativo e a configuração em pacotes do Helm. Os gráficos usam arquivos formatados em YAML padrão para descrever um conjunto relacionado de recursos do Kubernetes. Eles são versionados juntamente com o código do aplicativo que eles descrevem. Os Gráficos do Helm variam de simples a complexos, dependendo dos requisitos da instalação que descrevem.
O Helm é composto por uma ferramenta de cliente de linha de comando, que consome gráficos helm e inicia comandos em um componente de servidor chamado Tiller. O Tiller se comunica com a API do Kubernetes para garantir o provisionamento correto de suas cargas de trabalho em contêineres. O Helm é mantido pela Cloud-native Computing Foundation.
O seguinte arquivo yaml apresenta um modelo do Helm:
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.app.svc.marketing }}
labels:
app: {{ template "marketing-api.name" . }}
chart: {{ template "marketing-api.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
app: {{ template "marketing-api.name" . }}
release: {{ .Release.Name }}
Observe como o modelo descreve um conjunto dinâmico de pares chave/valor. Quando o modelo é invocado, os valores que estão entre chaves são extraídos de outros arquivos de configuração baseados em YAML.
Você encontrará os gráficos do helm eShopOnContainers na pasta /k8s/helm. A Figura 2-6 mostra como os diferentes componentes do aplicativo são organizados em uma estrutura de pastas usada pelo helm para definir e gerenciar implantações.
Figura 2-6. A pasta de helm do eShopOnContainers.
Cada componente individual é instalado usando um helm install comando. O eShop inclui um script "implantar tudo" que faz loops e instala os componentes usando seus respectivos gráficos helm. O resultado é um processo repetível, com versão com o aplicativo no controle do código-fonte, que qualquer pessoa na equipe pode implantar em um cluster do AKS com um comando de script de uma linha.
Observação
A versão 3 do Helm remove oficialmente a necessidade do componente do servidor Tiller. Para obter mais informações sobre esse aprimoramento, consulte Por que Tiller está ausente no Helm 3?.
Azure Functions e Aplicativos Lógicos (sem servidor)
O exemplo eShopOnContainers inclui suporte para acompanhamento de campanhas de marketing online. Uma função do Azure é usada para acompanhar os detalhes da campanha de marketing para uma determinada ID de campanha. Em vez de criar um microsserviço completo, uma única Função do Azure é mais simples e suficiente. O Azure Functions tem um modelo de build e implantação simples, especialmente quando configurado para execução no Kubernetes. A implantação da função é roteada usando modelos do ARM (Azure Resource Manager) e a CLI do Azure. Esse serviço de campanha não é voltado para o cliente e invoca uma única operação, tornando-o um ótimo candidato para o Azure Functions. A função requer configuração mínima, incluindo dados de cadeia de conexão de banco de dados e configurações de URI de base de imagem. Você configura o Azure Functions no portal do Azure.