Wskazówki dotyczące implementacji sprzedaży subskrypcji

Azure

Ten artykuł zawiera wskazówki dotyczące implementacji automatyzacji sprzedaż abonamentów. Subskrypcja automatyzuje proces żądania, wdrażania i zarządzania subskrypcjami, dzięki czemu zespoły aplikacji mogą szybciej wdrażać obciążenia.

Diagram przedstawiający sposób dopasowania subskrypcji do sprzedaży w organizacji.Rysunek 1. Implementacja sprzedaż abonamentów w przykładowym środowisku platformy Azure.

Ikona usługi GitHubUtworzyliśmy moduły sprzedaż abonamentów Bicep i Terraform, których należy użyć jako punktu początkowego. Należy zmodyfikować szablony zgodnie z potrzebami implementacji. Aby uzyskać więcej informacji na temat procesu sprzedaż abonamentów, zobacz Omówienie sprzedaży subskrypcji.

Architektura

Należy zaprojektować automatyzację sprzedaż abonamentów w celu wykonania trzech podstawowych zadań. Automatyzacja sprzedaży subskrypcji powinna (1) zbierać dane żądania subskrypcji, (2) zainicjować automatyzację platformy, a (3) utworzyć subskrypcję przy użyciu infrastruktury jako kodu. Istnieje kilka metod implementowania automatyzacji sprzedaż abonamentów w celu wykonania tych trzech zadań. Przykładowa implementacja (rysunek 2) przedstawia jedno podejście korzystające z usługi Gitflow. Projekt usługi Gitflow jest zgodny z podejściem deklaratywnym używanym przez wiele zespołów platform do zarządzania platformą.

Diagram przedstawiający przykład implementację automatyzacji sprzedaż abonamentów.Rysunek 2. Przykładowa implementacja automatyzacji sprzedaż abonamentów.

W przykładowej implementacji (rysunek 2) narzędzie zbierania danych zbiera dane żądania subskrypcji. Gdy żądanie subskrypcji otrzyma zatwierdzenie, inicjuje automatyzację platformy. Automatyzacja platformy składa się z potoku żądania, kontroli źródła i potoku wdrażania. Potok żądania tworzy plik parametrów subskrypcji JSON lub YAML z danymi z narzędzia do zbierania danych. Potok żądania tworzy również nową gałąź, zatwierdza plik parametrów subskrypcji i otwiera żądanie ściągnięcia w kontroli źródła. Nowa gałąź scala się z gałęzią główną w kontroli źródła. Scalanie wyzwala potok wdrażania w celu utworzenia subskrypcji z modułami infrastruktury jako kodu.

Wdrożenie powinno umieścić subskrypcję w odpowiedniej grupie zarządzania na podstawie wymagań dotyczących ładu (zobacz rysunek 1). Wdrożenie tworzy wstępny budżet subskrypcji jako podstawę do zarządzania kosztami. W zależności od potrzeb obciążenia wdrożenie może utworzyć pustą sieć wirtualną i skonfigurować komunikację równorzędną z regionalnym koncentratorem. Zespół ds. platformy powinien przekazać subskrypcję zespołowi aplikacji po utworzeniu i konfiguracji. Zespół aplikacji powinien zaktualizować budżet subskrypcji i utworzyć zasoby obciążenia.

Zbieranie danych

Celem zbierania danych jest odbieranie zatwierdzenia biznesowego i definiowanie wartości pliku parametrów subskrypcji JSON/YAML. Użyj narzędzia do zbierania danych, aby zebrać wymagane dane, gdy zespół aplikacji prześle żądanie subskrypcji. Narzędzie do zbierania danych powinno być interfejsem z innymi systemami w przepływie pracy sprzedaż abonamentów w celu zainicjowania automatyzacji platformy.

Użyj narzędzia do zbierania danych. Możesz użyć narzędzia do zarządzania usługami IT (ITSM), aby zebrać dane lub utworzyć portal klienta przy użyciu narzędzia do zarządzania niskim kodem lub bez kodu, takiego jak Microsoft PowerApps. Narzędzie do zbierania danych powinno zapewnić logikę biznesową w celu zatwierdzenia lub odmowy żądania subskrypcji.

Zbierz wymagane dane. Musisz zebrać wystarczającą ilość danych, aby zdefiniować wartości parametru subskrypcji JSON/YAML, aby można było zautomatyzować wdrożenie. Zbierane wartości zależą od Twoich potrzeb. Należy przechwycić wymagania dotyczące autoryzacji żądań, centrum kosztów i sieci (łączność z Internetem lub lokalną). Warto zwrócić się do zespołu aplikacji o przewidywane składniki obciążenia (platforma aplikacji, wymagania dotyczące danych), czułość danych i liczbę środowisk (programowanie, testowanie, przedprodukcyjne, produkcja).

Weryfikowanie danych. Podczas procesu zbierania danych należy zweryfikować dane. Trudniej jest rozwiązać problemy w kolejnych fazach automatyzacji platformy.

Utwórz żądanie z możliwością śledzenia. Narzędzie do zbierania danych powinno utworzyć zarejestrowane i możliwe do śledzenia żądanie nowej subskrypcji (na przykład bilet w narzędziu ITSM). Żądanie powinno zawierać wszystkie niezbędne dane, aby spełnić wymagania tej subskrypcji. Należy powiązać logikę biznesową i śledzenie autoryzacji z żądaniem.

Interfejs z innymi systemami wewnętrznymi. W razie potrzeby narzędzie do zbierania danych powinno być interfejsem z innymi narzędziami lub systemami w organizacji. Celem jest wzbogacanie żądania o dane z innych systemów. Do wykonania automatyzacji może być potrzebna tożsamość, finanse, zabezpieczenia i dane sieciowe. Na przykład automatyzacja może połączyć się z narzędziem do zarządzania adresami IP (IPAM), aby zarezerwować właściwą przestrzeń adresów IP.

Utwórz wyzwalacz. Gdy żądanie subskrypcji otrzyma zatwierdzenie, transfer danych powinien wyzwolić automatyzację platformy. Najlepiej utworzyć powiadomienie wypychane przy użyciu niezbędnych danych z narzędzia do zbierania danych. Do zainicjowania procesu może być potrzebna warstwa oprogramowania pośredniczącego, taka jak Azure Functions lub Azure Logic Apps.

Inicjowanie automatyzacji platformy

Powiadomienie i dane z narzędzia do zbierania danych powinny wyzwolić automatyzację platformy. Celem automatyzacji platformy jest utworzenie pliku parametrów subskrypcji JSON/YAML, scalenie pliku z gałęzią główną i wdrożenie go za pomocą modułów infrastruktury jako kodu w celu utworzenia subskrypcji. Zespół ds. platformy powinien być właścicielem i konserwować automatyzację platformy. Automatyzacja platformy w przykładowej implementacji składa się z potoku żądania, kontroli źródła i potoku wdrażania (patrz rysunek 2).

Użyj plików JSON lub YAML. Do przechowywania danych w celu utworzenia subskrypcji należy użyć plików danych strukturalnych (JSON lub YAML). Należy udokumentować strukturę pliku i uczynić go rozszerzalnym w celu obsługi przyszłych potrzeb. Na przykład poniższy fragment kodu JSON definiuje wartości parametrów subskrypcji dla jednego z modułów Bicep w usłudze 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
  }
}

Zobacz cały plik. Aby uzyskać więcej przykładów, zobacz przykłady Bicep i przykłady narzędzia Terraform

Użyj jednego pliku na żądanie subskrypcji. Subskrypcja jest jednostką wdrożenia w procesie sprzedaż abonamentów, więc każde żądanie subskrypcji powinno mieć jeden dedykowany plik parametrów subskrypcji.

Użyj systemu żądań ściągnięcia. Proces gitflow, który tworzy plik parametrów subskrypcji, powinien zautomatyzować następujące kroki:

  1. Utwórz nową gałąź dla każdego żądania subskrypcji.
  2. Użyj zebranych danych, aby utworzyć pojedynczy plik parametrów subskrypcji YAML/JSON dla nowej subskrypcji w gałęzi.
  3. Utwórz żądanie ściągnięcia z gałęzi do folderu main.
  4. Zaktualizuj narzędzie do zbierania danych, zmieniając stan i odwołując się do tego żądania ściągnięcia.

Potok żądania w przykładowej implementacji wykonuje te kroki (patrz rysunek 2). Możesz również użyć rozwiązania opartego na kodzie hostowanego na platformie Azure, jeśli przepływ pracy jest złożony.

Zweryfikuj plik parametrów subskrypcji. Żądanie ściągnięcia powinno wyzwolić proces lintingu w celu zweryfikowania danych żądania. Celem jest zapewnienie pomyślnego wdrożenia. Powinien on zweryfikować plik parametrów subskrypcji YAML/JSON. Może również sprawdzić, czy zakres adresów IP jest nadal dostępny. Możesz również dodać bramę ręcznego przeglądu z interwencją człowieka. Mogą wykonać ostateczną recenzję i wprowadzić zmiany w pliku parametrów subskrypcji. Dane wyjściowe powinny być plikiem parametrów subskrypcji JSON/YAML ze wszystkimi danymi, aby utworzyć subskrypcję.

Wyzwól potok wdrażania. Gdy żądanie ściągnięcia scala się z gałęzią main , scalanie powinno wyzwolić potok wdrażania.

Tworzenie subskrypcji

Ostatnim zadaniem automatyzacji sprzedaż abonamentów jest utworzenie i skonfigurowanie nowej subskrypcji. Przykładowa implementacja używa potoku wdrażania do wdrożenia modułu infrastruktury jako kodu z plikiem parametrów subskrypcji JSON/YAML (zobacz rysunek 2).

Użyj infrastruktury jako kodu. Wdrożenie powinno używać infrastruktury jako kodu do utworzenia subskrypcji. Zespół ds. platformy powinien tworzyć i obsługiwać te szablony, aby zapewnić odpowiedni nadzór. Należy użyć modułów sprzedaż abonamentów Bicep i Terraform oraz zmodyfikować je zgodnie z potrzebami implementacji.

Użyj potoku wdrażania. Potok wdrażania organizuje tworzenie i konfigurację nowej subskrypcji. Potok powinien wykonywać następujące zadania:

Kategoria zadań Zadanie potoku
Tożsamość • Utwórz lub zaktualizuj zasoby firmy Microsoft Entra, aby reprezentować własność subskrypcji.
• Konfigurowanie tożsamości uprzywilejowanych obciążeń dla wdrożeń zespołów obciążeń.
Ład korporacyjny • Umieść w hierarchii grup zarządzania.
• Przypisz właściciela subskrypcji.
• Skonfiguruj mechanizmy kontroli dostępu opartej na rolach (RBAC) na poziomie subskrypcji w celu skonfigurowania grup zabezpieczeń.
• Przypisz usługę Azure Policy na poziomie subskrypcji.
• Skonfiguruj rejestrację Microsoft Defender dla Chmury.
Sieć • Wdrażanie sieci wirtualnych.
• Konfigurowanie komunikacji równorzędnej sieci wirtualnych z zasobami platformy (centrum regionalne).
Budżety • Tworzenie budżetów dla właścicieli subskrypcji przy użyciu zebranych danych.
Raportowanie • Aktualizowanie systemów zewnętrznych, takich jak IPAM, w celu zatwierdzenia rezerwacji adresów IP.
• Zaktualizuj żądanie narzędzia do zbierania danych przy użyciu ostatecznej nazwy subskrypcji i globalnie unikatowego identyfikatora (GUID).
• Powiadom zespół aplikacji, że subskrypcja jest gotowa.

Aby programowo utworzyć subskrypcję, potrzebna jest umowa komercyjna. Jeśli nie masz umowy handlowej, musisz wprowadzić ręczny proces tworzenia subskrypcji, ale nadal może zautomatyzować wszystkie inne aspekty konfiguracji subskrypcji.

Ustanów tożsamość obciążenia. Potok wdrażania musi mieć uprawnienia do wykonywania tych operacji ze wszystkimi systemami, z których interfejsy. Do uwierzytelniania na platformie Azure należy użyć tożsamości zarządzanej lub openID Connect (OIDC).

Po wdrożeniu

Automatyzacja sprzedaż abonamentów kończy się tworzeniem i konfiguracją subskrypcji. Zespół platformy powinien przekazać nową subskrypcję zespołowi aplikacji po utworzeniu. Zespół aplikacji powinien zaktualizować budżet subskrypcji, utworzyć zasoby obciążenia i wdrożyć obciążenie. Zespół platformy kontroluje nadzór nad subskrypcją i zarządza zmianami ładu subskrypcji w czasie.

Wymuszanie zarządzania kosztami. Budżety subskrypcji zapewniają powiadomienia, które mają kluczowe znaczenie dla zarządzania kosztami. Wdrożenie powinno utworzyć wstępny budżet subskrypcji na podstawie danych żądania subskrypcji. Zespół aplikacji otrzymuje subskrypcję. Powinny one zaktualizować budżet, aby zaspokoić potrzeby obciążenia. Aby uzyskać więcej informacji, zobacz:

Zarządzanie ładem subskrypcji. Subskrypcja powinna zostać zaktualizowana w miarę zmiany wymagań dotyczących ładu obciążenia. Na przykład może być konieczne przeniesienie subskrypcji do innej grupy zarządzania. Należy utworzyć automatyzację dla niektórych z tych rutynowych operacji. Aby uzyskać więcej informacji, zobacz:

Następne kroki

Subskrypcja automatyzuje i standaryzację procesu tworzenia subskrypcji i umieszcza ją w ramach ładu organizacji. Należy zaimplementować sprzedaż abonamentów automatyzacji, aby ułatwić zespołom aplikacji szybsze uzyskiwanie dostępu do stref docelowych aplikacji i szybsze dołączanie obciążeń. Aby uzyskać więcej informacji, zobacz: