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 Descrição valor por defeito
Nome do hub Cordão Opcional. Nome do hub. Utilizado para garantir nomes exclusivos de recursos. "Finops-Hub"
localização Cordão Opcional. Local do Azure onde todos os recursos devem ser criados. Consulte https://aka.ms/azureregions. O mesmo que a implementação
storageSku Cordão Opcional. SKU de armazenamento a utilizar. 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 Cordão 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 Cordão Opcional. Nome da SKU do Azure Data Explorer. Padrão: "Dev(Sem SLA)_Standard_E2a_v4".
dataExplorerSkuTier Cordão 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. Etiquetas para aplicar a todos os recursos. Também adicionaremos a tag cm-resource-parent para roll-ups de custos aprimorados na Gestão 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.
escoposParaMonitorizar Matriz Opcional. Lista de IDs de escopo para monitorizar e analisar 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
dataExplorerRetençãoFinalEmMeses int Opcional. Número de meses de dados a reter nas tabelas do Data Explorer *_final_v*. 13
remoteHubStorageUri Cordão Opcional. Conta de armazenamento para transmissão de dados para ingestão num hub remoto.
remoteHubStorageKey Cordão Opcional. Chave de conta de armazenamento a ser usada ao enviar dados por push para um hub remoto.
ativarAcessoPúblico corda Opcional. Desative o acesso público ao data lake (firewall de armazenamento). Verdade
prefixoDeEndereçoDaRedeVirtual Cordão 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 <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 de Gestão de Custos.
      • ingestion – Armazena dados ingeridos.
      • 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 do 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/reservationdetails_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 âmbitos.
      • config_StartBackfillProcess – Executa o processo 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 elimina os dados históricos duplicados presentes em cada exportação diária.
      • 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 deste mês.
      • config_MonthlySchedule – Aciona mensalmente o config_RunExportJobs pipeline para processar 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 finais privados geridos
      • <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 de Chaves (incluída apenas quando implementada como um hub remoto)
    • Segredos:
      • Identidade gerenciada do sistema Data Factory
  • <dataExplorerName> cluster de Data Explorer
    • Hub base de dados – Funções voltadas para o utilizador para abstrair os componentes 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 FOCUS suportada (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 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.
        • Função resource_type – Função simples para mapear IDs de tipo de recurso interno para exibir nomes com base no arquivo de mapeamento ResourceTypes.
          • Use esta função para mapear um único valor e unir com a tabela ResourceTypes para atualizar muitas linhas ou mapear outros valores.
      • 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 utiliza a função de transformação correspondente quando os dados são inseridos 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 – Interrompe 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 Descrição Valor
Nome Cordão Nome do grupo de recursos.
localização Cordão Os recursos de localização de recursos do Azure foram implantados em.
dataFactoryName Cordão Nome do Data Factory.
storageAccountId Cordão Identificador de recurso da conta de armazenamento implantado.
storageAccountName Cordão 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 Cordão URL a ser usada ao conectar relatórios personalizados do Power BI aos seus dados.
clusterId Cordão ID do recurso do cluster do Data Explorer.
clusterUri Cordão URI do cluster de Data Explorer.
ingestionDbName Cordão Nome do banco de dados do Data Explorer usado para ingerir dados.
hubDbName Cordão Nome do banco de dados do Data Explorer usado para consultar dados.
managedIdentityId Cordão ID do objeto da identidade gerenciada do Data Factory. Isso será necessário ao configurar exportações gerenciadas.
managedIdentityTenantId Cordão ID do inquilino do Azure AD. Isso será necessário ao configurar exportações gerenciadas.

Enviar comentários

Dê-nos a sua opinião com uma breve avaliação. Usamos essas análises para melhorar e expandir as ferramentas e os recursos do FinOps.

Se você está procurando algo específico, vote em uma ideia existente ou crie uma nova. Partilhe ideias com outras pessoas para obter mais votos. Focamo-nos nas ideias mais votadas.


Mais informações