Este artigo fornece diretrizes de implementação para a automação de venda de assinaturas. A venda de assinaturas padroniza o processo de solicitação, implantação e controle de assinaturas para que as equipes de aplicativos possam implantar as cargas de trabalho mais rapidamente.
Figura 1. Implementação de venda de assinaturas em um ambiente de exemplo do Azure.
Criamos módulos Bicep e Terraform de venda de assinaturas que você deve usar como ponto de partida. Você deve modificar os modelos para atender às suas necessidades de implementação. Para obter mais informações sobre o processo de venda de assinaturas, consulte Visão geral da venda de assinaturas.
Arquitetura
Você deve arquitetar sua automação de venda de assinaturas para realizar três tarefas principais. A automação de venda de assinaturas deve (1) coletar dados de solicitação de assinaturas, (2) iniciar a automação da plataforma e (3) criar a assinatura usando infraestrutura como código. Há várias abordagens para implementar a automação de venda de assinaturas para realizar essas três tarefas. A implementação de exemplo (figura 2) mostra uma abordagem que usa um Gitflow. O design do Gitflow se alinha à abordagem declarativa que muitas equipes de plataforma usam para gerenciar a plataforma.
Figura 2. Exemplo de implementação da automação de venda de assinaturas.
Na implementação de exemplo (figura 2), a ferramenta de coleta de dados reúne dados de solicitação de assinatura. Quando a solicitação de assinatura recebe aprovação, ela inicia a automação da plataforma. A automação da plataforma consiste no pipeline de solicitação, no controle do código-fonte e no pipeline de implantação. O pipeline de solicitação cria um arquivo de parâmetro de assinatura JSON ou YAML com os dados da ferramenta de coleta de dados. O pipeline de solicitação também cria uma nova ramificação, confirma o arquivo de parâmetro de assinatura e abre uma solicitação pull no controle do código-fonte. A nova ramificação se funde à ramificação principal no controle do código-fonte. A mesclagem aciona o pipeline de implantação para criar a assinatura com os módulos de infraestrutura como código.
A implantação deve colocar a assinatura no grupo de gerenciamento correto com base nos requisitos de governança (veja a figura 1). A implantação cria um orçamento de assinatura preliminar como base para o gerenciamento de custos. Com base nas necessidades da carga de trabalho, a implantação poderia criar uma rede virtual vazia e configurar o emparelhamento para um hub regional. A equipe da plataforma deve entregar a assinatura para a equipe do aplicativo após a criação e a configuração. A equipe do aplicativo deve atualizar o orçamento da assinatura e criar os recursos de carga de trabalho.
Coletar dados
O objetivo da coleta de dados é receber aprovação comercial e definir os valores do arquivo de parâmetros de assinatura JSON/YAML. Você deve usar uma ferramenta de coleta de dados para coletar os dados necessários quando a equipe do aplicativo enviar a solicitação de assinatura. A ferramenta de coleta de dados deve fazer interface com outros sistemas no fluxo de trabalho de venda de assinaturas para iniciar a automação da plataforma.
Use uma ferramenta de coleta de dados. Você pode usar uma ferramenta de gerenciamento de serviços de TI (ITSM) para coletar os dados ou criar um portal do cliente com uma ferramenta de baixo código ou sem código, como o Microsoft PowerApps. A ferramenta de coleta de dados deve fornecer lógica de negócios para aprovar ou negar a solicitação de assinatura.
Colete os dados necessários. Você precisa coletar dados suficientes para definir os valores do parâmetro de assinatura JSON/YAML para que possa automatizar a implantação. Os valores específicos que você coleta dependem das suas necessidades. Você deve capturar o autorizador de solicitação, o centro de custo e os requisitos de rede (conectividade local ou com a Internet). Pode ser útil solicitar à equipe do aplicativo componentes de carga de trabalho antecipados (plataforma de aplicativos, requisitos de dados), sensibilidade de dados e número de ambientes (desenvolvimento, teste, pré-produção, produção).
Validar dados. Você deve validar os dados durante o processo de coleta de dados. É mais difícil resolver problemas posteriormente nas fases de automação da plataforma.
Crie uma solicitação rastreável. Sua ferramenta de coleta de dados deve criar uma solicitação registrada e rastreável para uma nova assinatura (por exemplo, um tíquete em uma ferramenta ITSM). A solicitação deve conter todos os dados necessários para cumprir os requisitos dessa assinatura. Você deve vincular a lógica de negócios e o controle de autorização à solicitação.
Interface com outros sistemas internos. Nos casos necessários, a ferramenta de coleta de dados deve fazer interface com outras ferramentas ou sistemas em sua organização. O objetivo é enriquecer a solicitação com dados de outros sistemas. Talvez você precise de dados de identidade, finanças, segurança e rede para executar a automação. Por exemplo, a automação poderia fazer interface com uma ferramenta de gerenciamento de endereços IP (IPAM) para reservar o espaço de endereço IP correto.
Crie um gatilho. Quando a solicitação de assinatura recebe aprovação, a transferência de dados deve acionar a automação da plataforma. É melhor criar uma notificação por push com os dados necessários da ferramenta de coleta de dados. Convém ter uma camada de middleware, como o Azure Functions ou os Aplicativos Lógicos do Azure, para iniciar o processo.
Iniciar a automação da plataforma
A notificação e os dados da ferramenta de coleta de dados devem acionar a automação da plataforma. O objetivo da automação de plataforma é criar um arquivo de parâmetro de assinatura JSON/YAML, mesclar o arquivo à ramificação principal e implantá-lo com os módulos de infraestrutura como código para criar a assinatura. A equipe da plataforma deve ser responsável pela automação da plataforma e mantê-la. A automação da plataforma na implementação de exemplo consiste no pipeline de solicitação, no controle do código-fonte e no pipeline de implantação (veja a figura 2).
Use arquivos JSON ou YAML. Você deve usar arquivos de dados estruturados (JSON ou YAML) para armazenar os dados para criar uma assinatura. Você deve documentar a estrutura do arquivo e torná-lo extensível para dar suporte a necessidades futuras. Por exemplo, o trecho de código JSON a seguir define os valores de parâmetro de assinatura para um dos módulos Bicep no GitHub.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionDisplayName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionAliasName": {
"value": "sub-bicep-lz-vending-example-001"
},
"subscriptionBillingScope": {
"value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456"
},
// Insert more parameters here
}
}
Veja o arquivo na íntegra. Para obter mais exemplos, consulte Exemplos de Bicep e Exemplos de Terraform
Use um arquivo por solicitação de assinatura. A assinatura é a unidade de implantação no processo de venda de assinaturas, portanto, cada solicitação de assinatura deve ter um arquivo de parâmetro de assinatura dedicado.
Use um sistema de solicitação pull. O processo Gitflow que cria o arquivo de parâmetro de assinatura deve automatizar as seguintes etapas:
- Crie uma ramificação para cada solicitação de assinatura.
- Use os dados coletados para criar um único arquivo de parâmetro de assinatura YAML/JSON para a nova assinatura na ramificação.
- Crie uma solicitação pull da ramificação no
main
. - Atualize a ferramenta de coleta de dados com uma alteração de estado e referência a essa solicitação pull.
O pipeline da solicitação na implementação de exemplo executa essas etapas (veja a figura 2). Você também poderá usar uma solução baseada em código hospedada no Azure se o fluxo de trabalho for complexo.
Valide o arquivo de parâmetro de assinatura. A solicitação pull deve disparar um processo de lint para validar os dados da solicitação. O objetivo é garantir que a implantação seja bem-sucedida. Ele deve validar o arquivo de parâmetro de assinatura YAML/JSON. Ele também pode verificar se o intervalo de endereços IP ainda está disponível. Convém também adicionar um portão de revisão manual com intervenção humana. Eles poderiam executar a revisão final e fazer alterações no arquivo de parâmetros de assinatura. A saída deve ser um arquivo de parâmetro de assinatura JSON/YAML com todos os dados para criar uma assinatura.
Acione o pipeline de implantação. Quando a solicitação pull mescla na ramificação main
, a mesclagem deve disparar o pipeline de implantação.
Criar uma assinatura
A última tarefa da automação de venda de assinaturas é criar e configurar a nova assinatura. A implementação de exemplo usa o pipeline de implantação para implantar o módulo de infraestrutura como código com o arquivo de parâmetro de assinatura JSON/YAML (veja a figura 2).
Use a infraestrutura como código. Sua implantação deve usar a infraestrutura como código para criar a assinatura. A equipe da plataforma deve criar e manter esses modelos para garantir a governança adequada. Você deve usar os módulos de venda de assinaturas Bicep e Terraform e modificá-los para atender às suas necessidades de implementação.
Use um pipeline de implantação. O pipeline de implantação orquestra a criação e a configuração da nova assinatura. O pipeline deve executar as seguintes tarefas:
Categoria da tarefa | Tarefa do pipeline |
---|---|
Identidade | • Criar ou atualizar recursos do Microsoft Entra para representar a propriedade da assinatura. • Configurar identidades de carga de trabalho privilegiadas para implantações de equipe de carga de trabalho. |
Governança | • Colocar na hierarquia do grupo de gerenciamento. • Atribuir o proprietário da assinatura. • Configurar RBACs (controles de acesso baseados em função) no nível de assinatura para grupos de segurança configurados. • Atribuir o Azure Policy no nível de assinatura. • Configurar o registro do Microsoft Defender para nuvem. |
Rede | • Implantar redes virtuais. • Configurar o emparelhamento de rede virtual para recursos da plataforma (hub regional). |
Orçamentos | • Criar orçamentos para os proprietários da assinatura usando os dados coletados. |
Reporting | • Atualizar sistemas externos, como o IPAM, para se comprometer com reservas de IP. • Atualizar a solicitação da ferramenta de coleta de dados com o nome final da assinatura e o identificador global exclusivo (GUID). • Notificar a equipe do aplicativo de que a assinatura está pronta. |
Você precisa de um contrato comercial para criar uma assinatura programaticamente. Se você não tiver um contrato comercial, precisará introduzir um processo manual para criar a assinatura, mas ainda poderá automatizar todos os outros aspectos da configuração da assinatura.
Estabeleça uma identidade de carga de trabalho. O pipeline de implantação precisa de permissão para executar essas operações com todos os sistemas com os quais faz interface. Você deve usar a identidade gerenciada ou o OpenID Connect (OIDC) para autenticar no Azure.
Pós-implantação
A automação de venda de assinaturas termina com a criação e a configuração de assinaturas. A equipe da plataforma deve entregar a nova assinatura para a equipe do aplicativo após a criação. A equipe do aplicativo deve atualizar o orçamento da assinatura, criar os recursos de carga de trabalho e implantar a carga de trabalho. A equipe da plataforma controla a governança da assinatura e gerencia as alterações na governança da assinatura ao longo do tempo.
Aplique o gerenciamento de custos. Os orçamentos de assinatura fornecem notificações que são fundamentais para o gerenciamento de custos. A implantação deve criar um orçamento de assinatura preliminar com base nos dados da solicitação de assinatura. A equipe do aplicativo recebe a assinatura. Eles devem atualizar o orçamento para atender às necessidades da carga de trabalho. Para saber mais, veja:
- Crie e gerencie orçamentos
- Gerenciar os custos com os Orçamentos do Azure
- Alocação de custos
- Controlar os custos em unidades de negócios, ambientes ou projetos
Gerencie a governança de assinaturas. Você deve atualizar a assinatura à medida que os requisitos de governança da carga de trabalho mudam. Por exemplo, pode ser necessário mover uma assinatura para um grupo de gerenciamento diferente. Você deve criar a automação para algumas dessas operações de rotina. Para saber mais, veja:
- Como mover grupos de gerenciamento e assinatura
- Mantenha as políticas e iniciativas de políticas atualizadas
- Marcação de recursos
- Adaptar a arquitetura de zona de destino do Azure para atender a requisitos
Próximas etapas
A venda de assinaturas simplifica e padroniza o processo de criação de assinaturas e o coloca sob a governança da organização. Você deve implementar a automação de venda de assinaturas para ajudar suas equipes de aplicativos a acessar zonas de destino de aplicativos e integrar cargas de trabalho mais rapidamente. Para saber mais, veja: