Compartilhar via


Modelo de hub FinOps

Este documento fornece um resumo detalhado do que está incluído no modelo de implantação de hubs FinOps. Você pode usar isso como um guia para ajustar sua implantação ou para informar as personalizações que você pode fazer ao modelo para atender às suas necessidades organizacionais. Este documento explica os pré-requisitos necessários para implantar o modelo, os parâmetros de entrada que você pode personalizar, os recursos que serão implantados e as saídas do modelo. As saídas de modelo podem ser usadas para se conectar às instâncias do hub no Power BI, no Data Explorer ou em outras ferramentas.

Os hubs FinOps incluem muitos recursos para oferecer uma plataforma FinOps segura e escalonável. Os principais recursos com os quais você interagirá incluem:

  • Data Explorer (Kusto) como um armazenamento de dados escalonável para análise avançada (opcional).
  • Conta de armazenamento (Data Lake Storage Gen2) como uma área de preparo para ingestão de dados.
  • Instância do Data Factory para gerenciar a ingestão e a limpeza de dados.

Importante

Para usar o modelo, você precisa criar exportações de Gerenciamento de Custos para publicar dados no msexports contêiner na conta de armazenamento incluída. Para obter mais informações, consulte Criar um novo hub.


Pré-requisitos

Verifique se os seguintes pré-requisitos foram atendidos antes de implantar o modelo:

  • Você deve ter as seguintes permissões para criar os recursos implantados.

    Recurso RBAC mínimo do Azure
    Implantar e configurar o Data Factory¹ Colaborador da fábrica de dados
    Implantar o Key Vault (somente hub remoto)¹ Colaborador do Key Vault
    Configurar segredos do Key Vault (somente hub remoto)¹ Administrador do Key Vault
    Criar identidade gerenciada¹ Colaborador de Identidade Gerenciada
    Implantar e configurar o armazenamento¹ Colaborador da Conta de Armazenamento
    Atribuir identidade gerenciada aos recursos¹ Operador de Identidade Gerenciada
    Criar scripts de implantação¹ Função personalizada contendo apenas as Microsoft.Resources/deploymentScripts/write permissões e Microsoft.ContainerInstance/containerGroups/write como ações permitidas ou, alternativamente, Colaborador, que inclui essas permissões e todas as funções acima
    Atribuir permissões a identidades gerenciadas¹ Administrador de Controle de Acesso Baseado em Função ou, alternativamente, Proprietário, que inclui essa função e todas as funções acima
    Criar uma assinatura ou exportação de custo do grupo de recursos Colaborador do Gerenciamento de Custos
    Criar uma exportação de custo de cobrança do EA Leitor corporativo, leitor de departamento ou proprietário da conta de registro (saiba mais)
    Criar uma exportação de custo de cobrança de MCA² Colaborador
    Ler dados de blob em armazenamento³ Colaborador de Dados do Blob de Armazenamento

    ¹ É suficiente atribuir permissões de implantação de recursos de hubs no escopo do grupo de recursos.
    ² As permissões do Gerenciamento de Custos devem ser atribuídas no escopo de onde você deseja exportar seus custos.
    ³ As permissões de dados de blob são necessárias para acessar dados de custo exportados do Power BI ou de outras ferramentas de cliente.

  • Você deve ter permissões para atribuir as seguintes funções a identidades gerenciadas como parte da implantação:

    Função do Azure RBAC Anotações
    Colaborador da fábrica de dados Atribuído à identidade do gerenciador de gatilhos de implantação para iniciar automaticamente os gatilhos do Data Factory.
    Leitor Atribuído ao Data Factory para gerenciar dados no armazenamento.
    Colaborador da Conta de Armazenamento Atribuído ao Data Factory para gerenciar dados no armazenamento.
    Colaborador de Dados do Blob de Armazenamento Atribuído ao Data Factory e ao Data Explorer para gerenciar dados no armazenamento.
    Colaborador privilegiado de dados de arquivo de armazenamento Atribuído à identidade de upload do arquivo de implantação que carrega arquivos no contêiner de configuração.
    Administrador de Acesso do Usuário Atribuído ao Data Factory para gerenciar dados no armazenamento.
  • O provedor de recursos Microsoft.EventGrid deve ser registrado em sua assinatura. Para obter mais informações, consulte Registrar um provedor de recursos.

    Importante

    Se você esquecer essa etapa, a implantação será bem-sucedida, mas o gatilho do pipeline não será iniciado e os dados não estarão prontos. Para obter mais informações, consulte Solução de problemas de relatórios do Power BI.


Parâmetros

Aqui estão os parâmetros que você pode usar para personalizar a implantação:

Parâmetro Tipo Descrição Valor padrão
hubName Cadeia de caracteres Opcional. Nome do hub. Usado para assegurar que os nomes de recursos sejam únicos. finops-hub
localização Cadeia de caracteres Opcional. Local do Azure onde todos os recursos devem ser criados. Consulte https://aka.ms/azureregions. O mesmo que a implantação
storageSku Cadeia de caracteres Opcional. SKU de armazenamento a ser usado. LRS = Menor custo, ZRS = Alta disponibilidade. Observe que os SKUs Padrão não estão disponíveis para o armazenamento do Data Lake Gen2. Permitido: Premium_LRS, Premium_ZRS. "Premium_LRS"
dataExplorerName Cadeia de caracteres Opcional. Nome do cluster do Azure Data Explorer a ser usado para análise avançada. Se estiver vazio, o Azure Data Explorer não será implantado. Necessário para usar com o Power BI se você tiver mais de US$ 2 a 5 milhões/m em custos sendo monitorados. Padrão: "" (não use).
dataExplorerSkuName Cadeia de caracteres Opcional. Nome do SKU do Azure Data Explorer. Padrão: "Dev(No SLA)_Standard_E2a_v4".
dataExplorerSkuTier Cadeia de caracteres Opcional. Camada de SKU para o cluster do Azure Data Explorer. Use o Basic para o menor custo sem SLA (devido a um único nó). Use o Standard para alta disponibilidade e melhor desempenho. Valores permitidos: Básico, Standard. Padrão: "Básico".
dataExplorerSkuCapacity Int Opcional. Número de nós a serem usados no cluster. Valores permitidos: 1 para a camada de SKU Básica e 2-1000 para Standard. Padrão: 1.
marcas Objeto Opcional. Tags a serem aplicadas a todos os recursos. Também adicionaremos a marca cm-resource-parent para roll-ups de custos aprimorados no Gerenciamento de Custos.
tagsByResource Objeto Opcional. Tags a serem aplicadas aos recursos com base em seu tipo de recurso. Etiquetas específicas do tipo de recurso serão mescladas com etiquetas para todos os recursos.
scopesToMonitor Matriz Opcional. Lista de IDs de escopo para a qual monitorar e ingerir o custo.
exportRetentionInDays Int Opcional. Número de dias de dados a serem mantidos no contêiner msexports. 0
retençãoDeIngestãoEmMeses Int Opcional. Número de meses de dados a serem mantidos no contêiner de ingestão. 13
retençãoDeLogsDataExplorerEmDias Int Opcional. Número de dias de dados a serem mantidos nas tabelas de *_log do Data Explorer. 0
dataExplorerRetençãoFinalEmMeses Int Opcional. Número de meses de dados a serem mantidos nas tabelas *_final_v* do Data Explorer. 13
remoteHubStorageUri Cadeia de caracteres Opcional. Conta de armazenamento destinada a transmitir dados para ingestão em um hub remoto.
remoteHubStorageKey Cadeia de caracteres Opcional. Chave da conta de armazenamento a ser usada ao enviar dados por push para um hub remoto.
enablePublicAccess cadeia de caracteres Opcional. Desabilite o acesso público ao data lake (firewall de armazenamento). Verdade
virtualNetworkAddressPrefix Cadeia de caracteres Opcional. Faixa de endereços IP para a rede virtual privada utilizada pelos hubs FinOps. /26 é recomendável para evitar a perda de IPs. Internamente, as seguintes sub-redes serão criadas: /28 para pontos de extremidade privados, outra /28 sub-rede para scripts de implantação temporária (instâncias de contêiner) e /27 para o Azure Data Explorer, se habilitada. '10.20.30.0/26'

Recursos

Os recursos a seguir são criados no grupo de recursos de destino durante a implantação.

Os recursos usam a seguinte convenção de nomenclatura: <hubName>-<purpose>-<unique-suffix>. Os nomes são ajustados para levar em conta as restrições de comprimento e caracteres. O <unique-suffix> é usado para garantir que os nomes de recursos sejam globalmente exclusivos quando necessário.

  • <hubName>store<unique-suffix> conta de armazenamento (Data Lake Storage Gen2)
    • Contêineres de blob:
      • msexports – Armazena temporariamente as exportações do Gerenciamento de Custos.
      • ingestion – Armazena os dados ingeridos.
      • config – Armazena os metadados do hub e as configurações. Arquivos
        • settings.json – Configurações do hub.
        • schemas/focuscost_1.0.json – Definição de esquema FOCUS 1.0 para conversão de parquet.
        • schemas/focuscost_1.0-preview(v1).json – Definição de esquema FOCUS 1.0-preview para conversão parquet.
        • schemas/pricesheet_2023-05-01_ea.json – Definição de esquema EA da planilha de preços versão 2023-05-01 para conversão parquet.
        • schemas/pricesheet_2023-05-01_mca.json – Definição de esquema MCA da planilha de preços versão 2023-05-01 para conversão parquet.
        • schemas/reservationdetails_2023-03-01.json – Definição de esquema de detalhes de reserva versão 2023-03-01 para conversão parquet.
        • schemas/reservationrecommendations_2023-05-01_ea.json – Recomendações de reserva EA definição de esquema versão 2023-05-01 para conversão parquet.
        • schemas/reservationrecommendations_2023-05-01_mca.json – Recomendações de reserva MCA definição de esquema versão 2023-05-01 para conversão parquet.
        • schemas/reservationtransactions_2023-05-01_ea.json – Transações de reserva EA definição de esquema versão 2023-05-01 para conversão parquet.
        • schemas/reservationtransactions_2023-05-01_mca.json – Transações de reserva MCA definição de esquema versão 2023-05-01 para conversão parquet.
  • <hubName>script<unique-suffix> conta de armazenamento (Data Lake Storage Gen2) para scripts de implantação.
  • <hubName>-engine-<unique-suffix> Instância do Data Factory
    • Linhas de Processamento
      • config_InitializeHub – Inicializa (ou atualiza) a instância do hub FinOps após a implantação.
      • config_ConfigureExports – Cria exportações de Gerenciamento de Custos para todos os escopos.
      • config_StartBackfillProcess – Executa o trabalho de provisionamento para cada mês com base nas configurações de retenção.
      • config_RunBackfillJob – Cria e aciona exportações para todos os escopos definidos para o intervalo de datas especificado.
      • config_StartExportProcess – Obtém uma lista de todas as exportações do Gerenciamento de Custos configuradas para esse hub com base nos escopos definidos no settings.json e executa cada exportação usando o pipeline config_RunExportJobs.
      • config_RunExportJobs – Executa as exportações especificadas do Gerenciamento de custos.
      • msexports_ExecuteETL – Enfileira o pipeline msexports_ETL_ingestion para levar em conta os limites de gatilho de pipeline do Data Factory.
      • msexports_ETL_ingestion – converte as exportações de Gerenciamento de Custos em parquet e remove dados históricos duplicados na exportação de cada dia.
      • ingestion_ExecuteETL – Enfileira o pipeline ingestion_ETL_dataExplorer para levar em conta os limites de gatilho de pipeline do Data Factory.
      • ingestion_ETL_dataExplorer – Ingere dados parquet em um cluster do Azure Data Explorer.
    • Gatilhos:
      • config_SettingsUpdated – Aciona o config_ConfigureExports pipeline quando settings.json é atualizado.
      • config_DailySchedule – Dispara o pipeline config_RunExportJobs diariamente para os dados de custo do mês atual.
      • config_MonthlySchedule – Dispara o pipeline config_RunExportJobs mensalmente para os dados de custo do mês anterior.
      • msexports_ManifestAdded – Dispara o pipeline msexports_ExecuteETL quando as exportações de Gerenciamento de Custos são concluídas.
      • ingestion_ManifestAdded – Aciona o pipeline ingestion_ExecuteETL quando arquivos manifest.json são adicionados (tratados pelo pipeline msexports_ETL_ingestion).
    • Pontos de extremidade privados gerenciados
      • <hubName>store<unique-suffix> – Endpoint privado gerenciado para conta de armazenamento.
      • <hubName>-vault-<unique-suffix> – Ponto de extremidade privado gerenciado para o Azure Key Vault.
  • <hubName>-vault-<unique-suffix> Instância do Key Vault (incluída somente quando implantada como um hub remoto)
    • Segredos:
      • Identidade gerenciada pelo sistema Data Factory
  • <dataExplorerName> Cluster do Data Explorer
    • Hub banco de dados – funções voltadas para o público para abstrair os internos.
      • Inclui dois conjuntos de funções:
        • Funções específicas do conjunto de dados para a última versão do FOCUS com suporte (por exemplo, Costs, Prices).
        • Funções específicas do conjunto de dados para cada versão focus com suporte (por exemplo, Costs_v1_0 para FOCUS 1.0). Essas funções são fornecidas para compatibilidade com versões anteriores. Todas as funções retornam todos os dados alinhados à versão FOCUS de destino.
      • Os conjuntos de dados incluem: Costs, Prices.
      • As versões FOCUS com suporte incluem: v1_0.
    • Ingestion banco de dados – armazena dados ingeridos.
      • Configurações:
        • HubSettingsLog tabela – Armazena um histórico de alterações de configuração de alto nível (por exemplo, versões, escopos).
        • HubSettings função – Obtém a versão mais recente das configurações da instância do hub.
        • HubScopes função – Obtém os escopos atualmente configurados para essa instância do hub.
      • Abrir dados:
      • Conjuntos de dados:
        • <dataset>_raw tabela – dados brutos diretamente da fonte de ingestão. Usa um esquema de união para dados de várias fontes.
        • <dataset>_transform_vX_Y função – Normaliza e limpa dados brutos para se alinhar à versão FOCUS direcionada usando tabelas de dados abertas, conforme necessário.
        • <dataset>_final_vX_Y tabela – versão limpa da tabela bruta correspondente alinhada à versão FOCUS de destino. Populado por meio de uma política de atualização que usa a função de transformação correspondente quando os dados são ingeridos em tabelas brutas.

Além das informações anteriores, os recursos a seguir são criados para automatizar o processo de implantação. Os scripts de implantação devem ser excluídos automaticamente. No entanto, não exclua as identidades gerenciadas, pois isso pode causar erros ao atualizar para a próxima versão.

  • Identidades gerenciadas:
  • Scripts de implantação (excluídos automaticamente após uma implantação bem-sucedida):
    • <datafactory>_deleteOldResources – Exclui recursos não utilizados de implantações anteriores de hubs FinOps.
    • <datafactory>_stopTriggers – Interrompe todos os gatilhos no hub usando a identidade do gerenciador de gatilhos.
    • <datafactory>_startTriggers – Inicia todos os gatilhos no hub usando a identidade triggerManager.
    • <storage>_uploadSettings – Carrega o arquivo settings.json usando a identidade blobManager.

Saídas

Aqui estão as saídas geradas pela implantação:

Saída Tipo Descrição Valor
nome Cadeia de caracteres Nome do grupo de recursos.
localização Cadeia de caracteres Os recursos de localização do recurso do Azure foram implantados.
dataFactoryName Cadeia de caracteres Nome do Data Factory.
storageAccountId Cadeia de caracteres ID do recurso da conta de armazenamento implantada.
storageAccountName Cadeia de caracteres Nome da conta de armazenamento criada para a instância do hub. Isso deve ser usado ao conectar relatórios do Power BI do Kit de Ferramentas do FinOps aos seus dados.
URL de armazenamento para PowerBI Cadeia de caracteres URL a ser usada ao conectar relatórios personalizados do Power BI aos seus dados.
clusterId Cadeia de caracteres ID do recurso do cluster do Data Explorer.
clusterUri Cadeia de caracteres URI do cluster do Data Explorer.
ingestionDbName Cadeia de caracteres Nome do banco de dados do Data Explorer usado para ingerir dados.
hubDbName Cadeia de caracteres Nome do banco de dados do Data Explorer usado para consultar dados.
managedIdentityId Cadeia de caracteres ID do objeto da identidade gerenciada do Data Factory. Isso será necessário ao configurar exportações gerenciadas.
managedIdentityTenantId Cadeia de caracteres ID do locatário do Azure AD. Isso será necessário ao configurar exportações gerenciadas.

Fornecer comentários

Deixe-nos saber como estamos indo com uma avaliação rápida. Usamos essas revisões para melhorar e expandir ferramentas e recursos do FinOps.

Se você estiver procurando algo específico, vote em um existente ou crie uma ideia. Compartilhe ideias com outras pessoas para obter mais votos. Nos concentramos em ideias com a maioria dos votos.


Saiba mais