Udostępnij za pośrednictwem


Szablon centrum FinOps

Ten dokument zawiera szczegółowe podsumowanie elementów zawartych w szablonie wdrażania centrów FinOps. Można go użyć jako przewodnika do dostrajania wdrożenia lub informowania o dostosowaniach, które można wprowadzić do szablonu zgodnie z potrzebami organizacji. W tym dokumencie wyjaśniono wymagane wymagania wstępne dotyczące wdrażania szablonu, parametry wejściowe, które można dostosować, zasoby, które zostaną wdrożone, oraz dane wyjściowe szablonu. Dane wyjściowe szablonu mogą służyć do łączenia się z instancjami centrum w usłudze Power BI, Eksploratorze Danych lub innych narzędziach.

Centra FinOps obejmują wiele zasobów, które oferują bezpieczną i skalowalną platformę FinOps. Główne zasoby, z którymi będziesz korzystać, obejmują:

  • Eksplorator danych (Kusto) jako skalowalny magazyn danych na potrzeby zaawansowanej analizy (opcjonalnie).
  • Konto przechowywania (Data Lake Storage Gen2) jako tymczasowy obszar na potrzeby pozyskiwania danych.
  • Instancja usługi Data Factory do zarządzania pozyskiwaniem i czyszczeniem danych.

Ważne

Aby użyć szablonu, należy utworzyć eksporty usługi Cost Management w celu opublikowania danych w kontenerze msexports na dołączonym koncie magazynu. Aby uzyskać więcej informacji, zobacz Tworzenie nowego centrum.


Wymagania wstępne

Przed wdrożeniem szablonu upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Aby utworzyć wdrożone zasoby, musisz mieć następujące uprawnienia.

    Zasób Minimalna kontrola dostępu oparta na rolach platformy Azure
    Wdrażanie i konfigurowanie fabryki danych Współautor usługi Data Factory
    Wdrażanie usługi Key Vault Współautor usługi Key Vault
    Konfigurowanie wpisów tajnych usługi Key Vault Key Vault Administrator
    Tworzenie tożsamości zarządzanej Współautor tożsamości zarządzanej
    Wdrażanie i konfigurowanie magazynu Współautor konta magazynu
    Przypisywanie tożsamości zarządzanej do zasobów Operator tożsamości zarządzanej
    Tworzenie skryptów wdrażania Rola niestandardowa zawierająca tylko Microsoft.Resources/deploymentScripts/write uprawnienia i Microsoft.ContainerInstance/containerGroups/write jako dozwolone akcje lub, alternatywnie, Współautor, która obejmuje te uprawnienia i wszystkie powyższe role
    Przypisywanie uprawnień do tożsamości zarządzanych Administrator kontroli dostępu opartej na rolach lub, alternatywnie, właściciel, który obejmuje tę rolę i wszystkie powyższe role
    Tworzenie subskrypcji lub grupy zasobów koszt eksportu² Współautor usługi Cost Management
    Tworzenie eksportu kosztów rozliczeń umowy EA² Czytelnik przedsiębiorstwa, czytelnik działu lub właściciel konta rejestracji (dowiedz się więcej)
    Tworzenie eksportu kosztów rozliczeń umowy MCA² Współautor
    Odczytywanie danych obiektów blob w magazynie³ Współautor danych w usłudze Blob Storage

    ¹ Wystarczy przypisać uprawnienia wdrażania zasobów centrów do zakresu grupy zasobów.
    ² Uprawnienia usługi Cost Management muszą być przypisane do zakresu, z którego chcesz wyeksportować koszty.
    Aby uzyskać dostęp do wyeksportowanych danych kosztów z usługi Power BI lub innych narzędzi klienckich, wymagane są uprawnienia do danych dotyczących danych dotyczących obiektów blob.

  • Dostawca zasobów Microsoft.EventGrid musi być zarejestrowany w subskrypcji. Aby uzyskać więcej informacji, zobacz Rejestrowanie dostawcy zasobów.

    Ważne

    Jeśli zapomnisz ten krok, wdrożenie zakończy się pomyślnie, ale wyzwalacz potoku nie zostanie uruchomiony, a dane nie będą gotowe. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z raportami usługi Power BI.


Parametry

Poniżej przedstawiono parametry, których można użyć do dostosowania wdrożenia:

Parametr Type Opis Domyślna wartość
hubName String Opcjonalny. Nazwa centrum. Służy do zapewnienia unikatowych nazw zasobów. "finops-hub"
location String Opcjonalny. Lokalizacja platformy Azure, w której należy utworzyć wszystkie zasoby. Zobacz: https://aka.ms/azureregions. Tak samo jak wdrożenie
storageSku String Opcjonalny. Jednostka SKU magazynu do użycia. LRS = najniższy koszt, ZRS = wysoka dostępność. Uwaga: Jednostki SKU w standardowej wersji nie są dostępne dla magazynu Data Lake gen2. Dozwolone: Premium_LRS, Premium_ZRS. "Premium_LRS"
dataExplorerName String Opcjonalny. Nazwa klastra usługi Azure Data Explorer do użycia na potrzeby zaawansowanej analizy. Jeśli jest pusty, usługa Azure Data Explorer nie zostanie wdrożona. Wymagane do użycia z usługą Power BI, jeśli monitorowane są koszty większe niż 2–5 mln USD/mo. Wartość domyślna: "" (nie używaj).
dataExplorerSkuName String Opcjonalny. Nazwa jednostki SKU usługi Azure Data Explorer. Ustawienie domyślne: "Dev(No SLA)_Standard_E2a_v4".
dataExplorerSkuTier String Opcjonalny. Poziom jednostki SKU dla klastra usługi Azure Data Explorer. Użyj planu Basic, aby uzyskać najniższy koszt bez umowy SLA (ze względu na pojedynczy węzeł). Użyj Standardu w celu zapewnienia wysokiej dostępności i lepszej wydajności. Dozwolone wartości: Podstawowa, Standardowa. Wartość domyślna: "Podstawowa".
dataExplorerSkuCapacity Int Opcjonalny. Liczba węzłów do użycia w klastrze. Dozwolone wartości: 1 dla SKU Podstawowa i 2–1000 dla SKU Standardowa. Wartość domyślna: 1.
tagów Obiekt Opcjonalny. Tagi, które mają być stosowane do wszystkich zasobów. Dodamy również tag cm-resource-parent dla ulepszonych agregacji kosztów w zarządzaniu kosztami.
tagsByResource Obiekt Opcjonalny. Tagi, które mają być stosowane do zasobów na podstawie ich typu zasobu. Tagi specyficzne dla typu zasobu zostaną scalone z tagami dla wszystkich zasobów.
scopesToMonitor Tablica Opcjonalny. Lista identyfikatorów zakresu do monitorowania i pozyskiwania kosztów.
exportRetentionInDays Int Opcjonalny. Liczba dni przechowywania danych w kontenerze msexports. 0
ingestionRetentionInMonths Int Opcjonalny. Liczba miesięcy przechowywania danych w kontenerze ładowania. 13
retencjaDziennikowEksploratoraDanychWDniach Int Opcjonalny. Liczba dni przechowywania danych w tabeli *_log w Eksploratorze Danych. 0
ostatecznePrzechowywanieDanychWExplorerzeWMiesiącach Int Opcjonalny. Liczba miesięcy, na które należy zachować dane w tabelach Data Explorer *_final_v*. 13
remoteHubStorageUri String Opcjonalny. Konto magazynu do wypychania danych do pozyskiwania danych do centrum zdalnego.
remoteHubStorageKey String Opcjonalny. Klucz konta magazynu do użycia podczas wypychania danych do centrum zdalnego.
włącz dostęp publiczny string Opcjonalny. Wyłącz publiczny dostęp do Data Lake (zapora dla magazynu danych). Nieprawda
virtualNetworkAddressPrefix String Opcjonalny. Zakres adresów IP dla prywatnej sieci wirtualnej używanej przez koncentratory FinOps. /26 zaleca się unikanie marnowania adresów IP. Wewnętrznie zostaną utworzone następujące podsieci: /28 dla prywatnych punktów końcowych, inną podsieć /28 dla tymczasowych skryptów wdrażania (wystąpień kontenerów) i /27 dla usługi Azure Data Explorer, jeśli jest włączona. '10.20.30.0/26'

Zasoby

Podczas wdrażania tworzone są następujące zasoby w docelowej grupie zasobów.

Zasoby używają następującej konwencji nazewnictwa: <hubName>-<purpose>-<unique-suffix>. Nazwy są dostosowywane tak, aby uwzględniały ograniczenia długości i znaków. Służy <unique-suffix> do zapewnienia, że nazwy zasobów są globalnie unikatowe, jeśli jest to wymagane.

  • <hubName>store<unique-suffix> konto magazynu (Data Lake Storage Gen2)
    • Kontenery obiektów blob:
      • msexports — Tymczasowo przechowuje eksporty usługi Cost Management.
      • ingestion — przechowuje pozyskane dane.

        Uwaga

        W przyszłości użyjemy tego kontenera do przygotowania danych zewnętrznych poza usługą Cost Management. - config — Przechowuje metadane centrum i ustawienia konfiguracji. Pliki:

        • settings.json — Ustawienia centrum.
        • schemas/focuscost_1.0.json – DEFINICJA schematu FOCUS 1.0 dla konwersji parquet.
        • schemas/focuscost_1.0-preview(v1).json — DEFINICJA schematu FOCUS 1.0 w wersji zapoznawczej dla konwersji parquet.
        • schemas/pricesheet_2023-05-01_ea.json — definicja schematu EA arkusza cen w wersji 2023-05-01 na potrzeby konwersji parquet.
        • schemas/pricesheet_2023-05-01_mca.json — definicja schematu MCA arkusza cen w wersji 2023-05-01 na potrzeby konwersji parquet.
        • schemas/reservationdetails_2023-03-01.json — definicja schematu szczegółów rezerwacji w wersji 2023-03-01 na potrzeby konwersji parquet.
        • schemas/reservationrecommendations_2023-05-01_ea.json — rekomendacje dotyczące rezerwacji — definicja schematu UMOWY EA w wersji 2023-05-01 na potrzeby konwersji parquet.
        • schemas/reservationrecommendations_2023-05-01_mca.json — rekomendacje dotyczące definicji schematu MCA w wersji 2023-05-01 do konwersji na format Parquet.
        • schemas/reservationtransactions_2023-05-01_ea.json — definicja schematu transakcji rezerwacji EA w wersji 2023-05-01 do konwersji do formatu parquet.
        • schemas/reservationtransactions_2023-05-01_mca.json — definicja schematu umowy MCA transakcji rezerwacji w wersji 2023-05-01 na potrzeby konwersji parquet.
  • <hubName>script<unique-suffix> konta przechowywania (Data Lake Storage Gen2) na potrzeby skryptów wdrażania.
  • <hubName>-engine-<unique-suffix> Wystąpienie usługi Data Factory
    • Rurociągów:
      • config_InitializeHub — inicjuje (lub aktualizuje) wystąpienie centrum FinOps po wdrożeniu.
      • config_ConfigureExports — Tworzy eksporty usługi Cost Management dla wszystkich zakresów.
      • config_StartBackfillProcess — uruchamia zadanie wypełniania dla każdego miesiąca na podstawie ustawień przechowywania.
      • config_RunBackfillJob — Tworzy i wyzwala eksporty dla wszystkich zdefiniowanych zakresów dla określonego zakresu dat.
      • config_StartExportProcess — Pobiera listę wszystkich eksportów usługi Cost Management skonfigurowanych dla tego centrum na podstawie zakresów zdefiniowanych w settings.json, a następnie uruchamia każdy eksport przy użyciu potoku config_RunExportJobs.
      • config_RunExportJobs — Uruchamia określone eksporty usługi Cost Management.
      • msexports_ExecuteETL — Kolejkuje msexports_ETL_ingestion potok do konta limitów wyzwalacza potoku usługi Data Factory.
      • msexports_ETL_ingestion — Konwertuje eksporty usługi Cost Management na parquet i usuwa dane historyczne zduplikowane w każdym dniu eksportu.
      • ingestion_ExecuteETL — Kolejkuje ingestion_ETL_dataExplorer potok do konta limitów wyzwalacza potoku usługi Data Factory.
      • ingestion_ETL_dataExplorer — importuje dane Parquet do klastra w usłudze Azure Data Explorer.
    • Wyzwalaczy:
      • config_SettingsUpdated — wyzwala config_ConfigureExports potok po zaktualizowaniu settings.json.
      • config_DailySchedule — Wyzwala config_RunExportJobs potok codziennie dla danych kosztów bieżącego miesiąca.
      • config_MonthlySchedule — Wyzwala config_RunExportJobs potok co miesiąc dla danych kosztów z poprzedniego miesiąca.
      • msexports_ManifestAdded — Wyzwala potok po zakończeniu msexports_ExecuteETL eksportowania usługi Cost Management.
      • ingestion_ManifestAdded — wyzwala potok ingestion_ExecuteETL, gdy dodawane są pliki manifest.json (obsługiwane przez potok msexports_ETL_ingestion).
    • Zarządzane prywatne punkty końcowe
      • <hubName>store<unique-suffix> — zarządzany prywatny punkt końcowy dla konta przechowywania.
      • <hubName>-vault-<unique-suffix> — zarządzany prywatny punkt końcowy dla usługi Azure Key Vault.
  • <hubName>-vault-<unique-suffix> Wystąpienie usługi Key Vault
    • Tajemnice:
      • Tożsamość zarządzana systemu usługi Data Factory
  • klaster <dataExplorerName> Data Explorer
    • Hub bazy danych — funkcje publiczne do ukrywania wewnętrznych struktur.
      • Obejmuje 2 zestawy funkcji:
        • Funkcje specyficzne dla zestawu danych dla najnowszej obsługiwanej wersji FOCUS (na przykład Costs, Prices).
        • Funkcje specyficzne dla zestawu danych dla każdej obsługiwanej wersji FOKUS (na przykład Costs_v1_0 dla FOKUS 1.0). Te funkcje są udostępniane w celu zapewnienia zgodności z poprzednimi wersjami. Wszystkie funkcje zwracają wszystkie dane dopasowane do docelowej wersji FOKUS.
      • Zestawy danych obejmują: Costs, Prices.
      • Wspierane wersje FOCUS obejmują: v1_0.
    • Ingestion baza danych — Przechowuje pozyskane dane.
      • Ustawienia:
        • HubSettingsLog tabela – przechowuje historię zmian konfiguracji na wysokim poziomie (na przykład wersje, zakresy).
        • HubSettings funkcja — pobiera najnowszą wersję ustawień instancji centrum.
        • Funkcja HubScopes - pobiera obecnie skonfigurowane zakresy dla tego wystąpienia centrum.
      • Otwórz dane:
        • PricingUnits tabela — plik mapowania PricingUnits z zestawu narzędzi FinOps. Służy do normalizacji i oczyszczania danych.
        • Regions tabela – plik mapowania regionów z narzędzi FinOps. Służy do normalizacji i oczyszczania danych.
        • ResourceTypes tabela – plik mapowania ResourceTypes z narzędzi FinOps. Służy do normalizacji i oczyszczania danych.
        • Services tabela – plik mapowania Services z zestawu narzędzi FinOps. Służy do normalizacji i oczyszczania danych.
        • funkcja resource_type — prosta funkcja do mapowania wewnętrznych identyfikatorów typów zasobów na nazwy wyświetlane na podstawie pliku mapowania ResourceTypes.
          • Ta funkcja służy do mapowania pojedynczych wartości i łączenia z tabelą ResourceTypes w celu zaktualizowania wielu wierszy lub mapowania innych wartości.
      • Zestawy danych
        • <dataset>_raw tabela: nieprzetworzone dane bezpośrednio ze źródła pozyskiwania. Używa schematu łączenia dla danych z wielu źródeł.
        • <dataset>_transform_vX_Y funkcja — normalizuje i czyści nieprzetworzone dane w celu dostosowania do docelowej wersji FOKUS przy użyciu otwartych tabel danych zgodnie z potrzebami.
        • <dataset>_final_vX_Y tabela — czysta wersja odpowiedniej surowej tabeli dopasowanej do docelowej wersji FOCUS. Wypełniane za pomocą zasad aktualizacji, które używają odpowiedniej funkcji przekształcania, gdy dane są pozyskiwane do nieprzetworzonych tabel.

Oprócz powyższych informacji tworzone są następujące zasoby w celu zautomatyzowania procesu wdrażania. Skrypty wdrażania powinny zostać usunięte automatycznie. Nie usuwaj jednak tożsamości zarządzanych, ponieważ może to spowodować błędy podczas uaktualniania do następnej wersji.

  • Tożsamości zarządzane:
    • <storage>_blobManager (Współautor danych obiektu blob usługi Storage) — przekazuje plik settings.json.
    • <datafactory>_triggerManager (Współautor usługi Data Factory) — zatrzymuje wyzwalacze przed wdrożeniem i uruchamia je po wdrożeniu.
  • Skrypty wdrażania (automatycznie usunięte po pomyślnym wdrożeniu):
    • <datafactory>_deleteOldResources — Usuwa nieużywane zasoby z poprzednich wdrożeń centrów FinOps.
    • <datafactory>_stopTriggers — zatrzymuje wszystkie wyzwalacze w centrum przy użyciu tożsamości triggerManager.
    • <datafactory>_startTriggers — uruchamia wszystkie wyzwalacze w centrum przy użyciu tożsamości triggerManager.
    • <storage>_uploadSettings — przekazuje plik settings.json przy użyciu tożsamości obiektu blobManager.

Dane wyjściowe

Poniżej przedstawiono dane wyjściowe generowane przez wdrożenie:

Wyjście Type Opis Wartość
name String Nazwa grupy zasobów.
location String Zasoby lokalizacji zasobów platformy Azure zostały wdrożone.
dataFactoryName String Nazwa fabryki danych.
storageAccountId String Identyfikator zasobu wdrożonego konta przechowywania.
storageAccountName String Nazwa konta magazynu utworzonego dla wystąpienia centrum. Należy to wykorzystać podczas łączenia raportów Power BI zestawu narzędzi FinOps z danymi.
storageUrlForPowerBI String Adres URL używany podczas łączenia niestandardowych raportów usługi Power BI z danymi.
clusterId String Identyfikator zasobu klastra usługi Data Explorer.
clusterUri String Identyfikator URI klastra "Data Explorer".
ingestionDbName String Nazwa bazy danych eksploratora danych używanej do pozyskiwania danych.
hubDbName String Nazwa bazy danych Eksploratora danych używanej do wykonywania zapytań dotyczących danych.
managedIdentityId String Identyfikator obiektu tożsamości zarządzanej usługi Data Factory. Będzie to konieczne podczas konfigurowania eksportów zarządzanych.
managedIdentityTenantId String Identyfikator dzierżawcy usługi Azure AD. Będzie to konieczne podczas konfigurowania eksportów zarządzanych.

Dowiedz się więcej