Partilhar 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 personalizações que você pode fazer no 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 escalável. Os principais recursos com os quais irá interagir incluem:

  • Data Explorer (Kusto) como um armazenamento de dados escalá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 do Gerenciamento de Custos para publicar dados no contêiner de msexports na conta de armazenamento incluída. Para obter mais informações, consulte Criar um novo hub.


Pré-requisitos

Certifique-se de que os seguintes pré-requisitos sejam atendidos antes de implantar o modelo:


Parâmetros

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

Parâmetro Tipo Description Default value
Nome do hub String Opcional. Nome do hub. Usado para garantir nomes de recursos exclusivos. "Finops-Hub"
localização String Opcional. Local do Azure onde todos os recursos devem ser criados. Consulte https://aka.ms/azureregions. O mesmo que a implantação
storageSku String Opcional. SKU de armazenamento para usar. LRS = Menor custo, ZRS = Alta disponibilidade. Observação: SKUs Standard não estão disponíveis para armazenamento Data Lake gen2. Permitido: Premium_LRS, Premium_ZRS. "Premium_LRS"
dataExplorerName String Opcional. Nome do cluster do Azure Data Explorer a ser usado para análises avançadas. Se estiver vazio, o Azure Data Explorer não será implantado. Necessário usar com o Power BI se tiver mais de 2-5 milhões de dólares por mês em custos sob monitorização. Padrão: "" (não usar).
dataExplorerSkuName String Opcional. Nome da SKU do Azure Data Explorer. Padrão: "Dev(No SLA)_Standard_E2a_v4".
dataExplorerSkuTier String Opcional. Nível de SKU para o cluster do Azure Data Explorer. Utilize o Basic para o menor custo sem SLA, devido à presença de um único nó. Use Standard para alta disponibilidade e melhor desempenho. Valores permitidos: Básico, Padrão. Padrão: "Básico".
dataExplorerSkuCapacity Int Opcional. Número de nós a serem usados no cluster. Valores permitidos: 1 para a camada SKU Básica e 2-1000 para Standard. Padrão: 1.
etiquetas Objeto Opcional. Tags para aplicar a todos os recursos. Também adicionaremos a tag cm-resource-parent para roll-ups de custos aprimorados no Gerenciamento de Custos.
tagsByResource Objeto Opcional. Tags a serem aplicadas a recursos com base em seu tipo de recurso. As tags específicas do tipo de recurso serão mescladas com as tags para todos os recursos.
escoposToMonitor Matriz Opcional. Lista de IDs de escopo para monitorar e ingerir custo.
exportRetentionInDays Int Opcional. Número de dias de dados a serem retidos no contêiner msexports. 0
ingestãoRetençãoInMeses Int Opcional. Número de meses de dados a reter no recipiente de ingestão. 13
retençãoDeRegistoDoExploradorDeDadosEmDias Int Opcional. Número de dias de dados a reter nas tabelas do Data Explorer *_log. 0
dataExplorerFinalRetentionInMonths Int Opcional. Número de meses de dados a reter nas tabelas do Data Explorer *_final_v*. 13
remoteHubStorageUri String Opcional. Conta de armazenamento para enviar dados por push para ingestão em um hub remoto.
remoteHubStorageKey String Opcional. Chave de conta de armazenamento a ser usada ao enviar dados por push para um hub remoto.
ativarAcessoPúblico string Opcional. Desative o acesso público ao datalake (firewall de armazenamento). Falso
prefixoDeEndereçoDaRedeVirtual String Opcional. Intervalo de endereços de IP para a rede virtual privada utilizada pelos hubs FinOps. /26 é recomendado para evitar o desperdício de IPs. Internamente, as seguintes sub-redes serão criadas: /28 para pontos de extremidade privados, outra sub-rede /28 para scripts de implantação temporários (instâncias de contêiner) e /27 para o Azure Data Explorer, se habilitado. '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 é usado para garantir que os nomes de recursos sejam globalmente exclusivos, <unique-suffix> quando necessário.

  • <hubName>store<unique-suffix> conta de armazenamento (Data Lake Storage Gen2)
    • Recipientes de blob:
      • msexports – Armazena temporariamente as exportações de Gestão de Custos.
      • ingestion – Armazena dados ingeridos.

        Nota

        No futuro, usaremos esse contêiner para preparar dados externos fora do Gerenciamento de Custos. - config – Armazena metadados de hub e definições de configuração. Ficheiros:

        • settings.json – Configurações do Hub.
        • schemas/focuscost_1.0.json – Definição do 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 de parquet.
        • schemas/pricesheet_2023-05-01_ea.json – Tabela de preços Versão da definição do esquema EA 2023-05-01 para conversão para parquet.
        • schemas/pricesheet_2023-05-01_mca.json – Definição do esquema de folha de preços MCA versão 2023-05-01 para conversão em parquet.
        • schemas/reservationdeatils_2023-03-01.json – Definição do esquema de detalhes da reserva versão 2023-03-01 para conversão de parquet.
        • schemas/reservationrecommendations_2023-05-01_ea.json – Recomendações de reserva Definição do esquema EA versão 2023-05-01 para conversão em parquet.
        • schemas/reservationrecommendations_2023-05-01_mca.json – Recomendações de reserva para a definição do esquema MCA, versão 2023-05-01, para conversão em parquet.
        • schemas/reservationtransactions_2023-05-01_ea.json – Definição do esquema EA de transações de reserva versão 2023-05-01 para conversão para parquet.
        • schemas/reservationtransactions_2023-05-01_mca.json – Transações de reserva, definição de esquema MCA versão 2023-05-01 para conversão parquet.
  • <hubName>script<unique-suffix> conta de armazenamento (Data Lake Storage Gen2) para scripts de implementação.
  • <hubName>-engine-<unique-suffix> Instância do Data Factory
    • Gasodutos:
      • config_InitializeHub – Inicializa (ou atualiza) a instância do hub FinOps após a implantação.
      • config_ConfigureExports – Cria exportações de Gestão de Custos para todos os escopos.
      • config_StartBackfillProcess – Executa o trabalho de backfill 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 Cost Management configuradas para este hub com base nos escopos definidos em settings.json e, em seguida, executa cada exportação usando o pipeline de config_RunExportJobs.
      • config_RunExportJobs – Executa as exportações de Gestão de Custos especificadas.
      • msexports_ExecuteETL – Enfileira o pipeline para levar em conta os limites de gatilho msexports_ETL_ingestion do pipeline do Data Factory.
      • msexports_ETL_ingestion – Converte as exportações de Gestão de Custos em parquet e remove dados históricos duplicados na exportação de cada dia.
      • ingestion_ExecuteETL – Enfileira o pipeline para levar em conta os limites de gatilho ingestion_ETL_dataExplorer do pipeline do Data Factory.
      • ingestion_ETL_dataExplorer – Ingere dados de parquet em um cluster do Azure Data Explorer.
    • Gatilhos:
      • config_SettingsUpdated – Aciona o config_ConfigureExports pipeline quando settings.json é atualizado.
      • config_DailySchedule – Aciona o config_RunExportJobs pipeline diariamente para os dados de custo do mês atual.
      • config_MonthlySchedule – Aciona o config_RunExportJobs pipeline mensalmente para os dados de custo do mês anterior.
      • msexports_ManifestAdded – Aciona o pipeline quando as msexports_ExecuteETL exportações do Gerenciamento de Custos são concluídas.
      • ingestion_ManifestAdded – Aciona o pipeline ingestion_ExecuteETL quando ficheiros manifest.json são adicionados (manipulados pelo pipeline msexports_ETL_ingestion).
    • Pontos de extremidade privados gerenciados
      • <hubName>store<unique-suffix> - Ponto de extremidade privado gerido para conta de armazenamento.
      • <hubName>-vault-<unique-suffix> - Ponto de extremidade privado gestido para o Azure Key Vault.
  • <hubName>-vault-<unique-suffix> Instância do Cofre da Chave
    • Segredos:
      • Identidade gerenciada do sistema Data Factory
  • <dataExplorerName> cluster de Data Explorer
    • Hub banco de dados – Funções voltadas para o público para abstrair internos.
      • Inclui 2 conjuntos de funções:
        • Funções específicas do conjunto de dados para a versão FOCUS suportada mais recente (por exemplo, Costs, Prices).
        • Funções específicas do conjunto de dados para cada versão suportada do FOCUS (por exemplo, Costs_v1_0 para o 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 suportadas 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).
        • Função HubSettings – Obtém a versão mais recente das configurações da instância do hub.
        • Função HubScopes – Obtém os escopos atualmente configurados para esta instância de hub.
      • Dados abertos:
        • PricingUnits tabela – ficheiro de mapeamento PricingUnits do kit de ferramentas FinOps. Usado para normalização e limpeza de dados.
        • Regions tabela – arquivo de mapeamento de regiões do kit de ferramentas FinOps. Usado para normalização e limpeza de dados.
        • ResourceTypes tabela – arquivo de mapeamento ResourceTypes do kit de ferramentas FinOps. Usado para normalização e limpeza de dados.
        • Services tabela – arquivo de mapeamento de Serviços do conjunto de ferramentas FinOps. Usado para normalização e limpeza de dados.
      • Conjuntos de dados:
        • Tabela <dataset>_raw – Dados brutos diretamente da fonte de aquisição. Usa um esquema de união para dados de várias fontes.
        • Função <dataset>_transform_vX_Y – Normaliza e limpa dados brutos para alinhar à versão FOCUS de destino usando tabelas de dados abertos, conforme necessário.
        • <dataset>_final_vX_Y table – Versão limpa da tabela bruta correspondente alinhada à versão FOCUS de destino. Preenchido 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:
    • <storage>_blobManager (Storage Blob Data Contributor) – Carrega o arquivo settings.json.
    • <datafactory>_triggerManager (Colaborador do Data Factory) – Interrompe os gatilhos antes da implantação e os inicia após a implantação.
  • 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 – Para todos os gatilhos no hub usando a identidade triggerManager.
    • <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 Description Valor
Designação String Nome do grupo de recursos.
localização String Os recursos de localização de recursos do Azure foram implantados em.
dataFactorytName String Nome do Data Factory.
storageAccountId String ID do recurso da conta de armazenamento implantada.
storageAccountName String 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 FinOps aos seus dados.
storageUrlForPowerBI String URL a ser usada ao conectar relatórios personalizados do Power BI aos seus dados.
clusterId String ID do recurso do cluster do Data Explorer.
clusterUri String URI do cluster do Data Explorer.
ingestionDbName String Nome do banco de dados do Data Explorer usado para ingerir dados.
hubDbName String Nome do banco de dados do Data Explorer usado para consultar dados.
managedIdentityId String ID do objeto da identidade gerenciada do Data Factory. Isso será necessário ao configurar exportações gerenciadas.
managedIdentityTenantId String ID do inquilino do Azure AD. Isso será necessário ao configurar exportações gerenciadas.