Como automatizar implantações do CloudHub

Como automatizar implantações do CloudHub

Como automatizar implantações do CloudHub
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Uma pedra angular da engenharia de software profissional é a automação, que ajuda a eliminar erros humanos, reduzir a variabilidade não intencional e aumentar a reprodutibilidade. Neste artigo, demonstramos como automatizar a implantação de um aplicativo Mule no CloudHub, enquanto personalizamos a renderização padrão do aplicativo Mule no Anypoint Visualizer.

Os aplicativos Mule geralmente são criados e empacotados com o Maven usando o plug-in Mule Maven (MMP). Isso é totalmente suportado pelo Anypoint Studio, que mantém muitos aspectos das configurações de compilação do Maven. Além de criar e empacotar aplicativos Mule, o MMP também suporta sua implantação em muitos destinos de tempo de execução do Mule, incluindo CloudHub, Runtime Fabric e servidores independentes do Mule (diretamente ou via Anypoint Runtime Manager).

Este artigo usa o conteúdo da versão lançada recentemente
Curso de Treinamento MuleSoft “Anypoint Platform Development:
Práticas de desenvolvimento prontas para produção.

Neste artigo, estendemos a configuração MMP padrão gerada pelo Studio para automatizar a implantação no CloudHub. Isso exige que abordemos as especificidades mais importantes do modelo de implantação do CloudHub. Em uma segunda etapa, otimizamos essa configuração do MMP para aproveitar automaticamente o Anypoint Visualizer, uma ferramenta intuitiva e poderosa de visualização de rede de aplicativos e geração de insight disponível na plataforma Anypoint.

Construindo aplicativos Mule com o plug-in Mule Maven

Para esta demonstração, criaremos um novo e simples aplicativo Mule chamado “mysystemapi” com o Studio 7.4.2 para o Mule runtime 4.2.2 e o MMP 3.3.6. Este aplicativo Mule é uma implementação de uma API do sistema, que o aplicativo expõe. O Studio gera a seguinte configuração de MMP no pom.xml

Essa configuração suporta a construção e o empacotamento deste aplicativo Mule em um artefato chamado “mysystemapi-1.0.0-SNAPSHOT-mule-application.jar” no diretório de destino. (O nome do artefato é determinado por , e em pom.xml.) Esse artefato é um arquivo de aplicativos Mule implementável e pode ser carregado manualmente no Runtime Manager para implantação no CloudHub (ou em outros destinos de implantação). Aqui, no entanto, queremos automatizar a implantação no CloudHub.

Estendendo a configuração do plugin Mule Maven para implantação no CloudHub

Para implantar no CloudHub usando MMP, precisamos adicionar no mínimo os seguintes detalhes à configuração do MMP:

Essa configuração utiliza vários padrões pertencentes ao modelo de implantação do CloudHub, como:

  • Implantação por meio do avião de controle Anypoint Platform hospedado pela MuleSoft nos EUA
  • Diretamente para a organização principal, e não para um grupo de negócios da organização Anypoint Platform escolhida (veja abaixo).
  • Implantação no plano de tempo de execução CloudHub na região us-east-1.
  • Implantação para um trabalhador do CloudHub.
  • Filas de VM transitórias (não persistentes).
  • Tempo limite de implantação padrão.
  • Nome do aplicativo CloudHub (nome da implantação) de “mysystemapi”, ou seja, o valor de .
  • Nenhuma propriedade definida no aplicativo Mule implantado.

No geral, isso determina o nome de domínio totalmente qualificado (FQDN) com balanceamento de carga principal (embora apenas para um trabalhador) desse aplicativo Mule como “mysystemapi.us-e1.cloudhub.io”.

Em cenários de implantação no mundo real, geralmente é necessário definir explicitamente a maioria desses valores, por exemplo:

Essas propriedades e seus intervalos de valores estão documentados aqui.

Como prática recomendada, a maioria desses valores deve ser fornecida pelas propriedades do Maven. Aqui, fizemos isso apenas no app.runtime gerado pelo Studio e nas novas propriedades introduzidas env e nome.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

De particular interesse aqui é a configuração do nome do aplicativo CloudHub via nome. O CloudHub exige que esse nome seja único entre todas as implantações do CloudHub realizadas por meio do plano de controle escolhido da Anypoint Platform. No momento da redação deste artigo (janeiro de 2020), a MuleSoft hospeda duas instâncias de uso geral do plano de controle da plataforma Anypoint, uma nos EUA e outra na UE. O plano de controle dos EUA, que é implicitamente usado na configuração acima, suporta implantações em planos de tempo de execução do CloudHub na maioria das regiões do mundo. Isso significa que um nome de aplicativo CloudHub deve ser exclusivo em todas essas regiões, em todas as organizações e grupos de negócios da Anypoint Platform e em todos os seus ambientes da Anypoint Platform (dev, test, prod, etc.).

Por esse motivo, os nomes de aplicativos CloudHub geralmente são construídos para incluir elementos que identificam a organização e o ambiente. Por exemplo:

A propriedade env Maven é padronizada como dev, mas pode ser substituída no momento da implantação. Por exemplo, para implantar no ambiente de teste:

Com esse comando de configuração e implantação, o FQDN desse aplicativo Mule se torna “myorg-mysystemapi-test.us-e2.cloudhub.io”.

Ao executar esta implantação com esta configuração, o MMP consulta uma correspondência entrada no arquivo Maven settings.xml (normalmente localizado em $ HOME / .m2 /) para recuperar as credenciais da plataforma Anypoint:

O MMP usa essas credenciais para se autenticar no plano de controle da Anypoint Platform. Como o nome de usuário está associado exclusivamente a uma organização da plataforma Anypoint, o MMP implanta o aplicativo Mule nessa organização. (O Maven suporta a proteção de senhas em settings.xml, mas este não é o assunto deste artigo.)

Depois que o aplicativo Mule implantado iniciar o processamento de solicitações, o Visualizer poderá mostrar o aplicativo como um nó na rede de aplicativos da organização da plataforma Anypoint. Isso exigiria interação manual com a interface do usuário do Visualizer na plataforma Anypoint – que queremos evitar com a automação na próxima etapa.

Adicionando personalizações para o Visualizer à configuração do plug-in Mule Maven

Para o Visualizer mostrar um aplicativo Mule, ele exige que as métricas sobre o tráfego de tempo de execução sejam enviadas por esse aplicativo Mule para o plano de controle da Anypoint Platform. Como isso gera uma pequena sobrecarga de desempenho, é desativado por padrão. Ele pode ser ativado manualmente na interface do usuário do Visualizer, mas é mais reproduzível definindo uma propriedade de aplicativo Mule durante a implantação.

Por padrão, o Visualizer mostra os aplicativos Mule implantados no CloudHub usando o nome do aplicativo CloudHub “myorg-mysystemapi-test”, conforme mostrado na figura a seguir. Porém, o Visualizer mostra apenas implantações do CloudHub da organização atual da Anypoint Platform, tornando redundante a inclusão do prefixo da organização (myorg-). Além disso, o Visualizer suporta explicitamente os ambientes da Anypoint Platform e pode filtrar sua exibição por ambiente, para que o sufixo do ambiente (-test) seja redundante. Tornando o nome de exibição do Visualizer mais conciso para o nosso aplicativo Mule “mysystemapi”. A nomeação concisa é importante para aumentar a densidade de informações nas renderizações de rede de aplicativos normalmente ocupadas criadas sem esforço pelo Visualizer. O nome de exibição de um aplicativo Mule pode ser substituído manualmente na interface do usuário do Visualizer, mas é preferível fazê-lo automaticamente, definindo uma propriedade do aplicativo Mule.

O Visualizer pode atribuir aplicativos Mule a camadas, se receberem as informações sobre a camada que um determinado aplicativo Mule pertence. Por padrão, o Visualizer conhece as camadas Experiência, Processo e Sistema, mas outras camadas podem ser definidas. Como nosso aplicativo Mule é uma API do sistema, a atribuição à camada Sistema é imutável durante a vida útil desse aplicativo. Essa atribuição pode ser feita manualmente na interface do usuário do Visualizer, mas é menos suscetível a erros ao definir uma propriedade do aplicativo Mule.

Isso nos leva à seguinte configuração refinada do MMP:

Usando essa configuração, o Visualizer sempre exibe nosso aplicativo Mule, como mostra a figura a seguir, sem a necessidade de qualquer ajuste manual:

Sumário

Estendemos a configuração de compilação do Maven de um aplicativo Mule gerado pelo Studio para oferecer suporte à implantação automatizada no CloudHub. Ao fazer isso, adicionamos uma configuração que aborda os detalhes do modelo de implantação do CloudHub. Em seguida, personalizamos essa configuração para mostrar automaticamente esse aplicativo Mule no Visualizer, com um nome conciso e na camada correta.

Este e outros tópicos semelhantes, relacionados ao desenvolvimento de aplicativos Mule, visando automação, reprodutibilidade e monitoramento, são abordados no curso de treinamento MuleSoft, lançado recentemente, “Anypoint Platform Development: Práticas de desenvolvimento prontas para produção”.


cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Respostas humanas ao COVID-19. Os membros do Smart Insights discutem.
Luiz Presso
Luiz Presso