Potok ciągłej integracji/ciągłego wdrażania usługi Gridwich

Identyfikator Microsoft Entra
Azure Event Grid
Azure Functions
Azure Key Vault
Azure Pipelines

Usługa Gridwich wymaga, aby wiele zasobów w obrębie i poza platformą Azure bezpiecznie komunikowało się ze sobą. To wymaganie stanowi wyzwania związane z ciągłą integracją i ciągłym dostarczaniem (CI/CD) z uprawnieniami firmy Microsoft, bramami, tworzeniem zasobów, kolejnością działania i długotrwałym wdrażaniem funkcji. Następujące wytyczne dotyczą następujących wyzwań:

  • Pojedynczy artefakt kompilacji wpływa na wszystkie środowiska w tym samym potoku.
  • Środowiska bez bramek są jednorazowe.
  • Narzędzie Terraform deklaratywnie tworzy środowiska idempotentne.
  • Program Terraform nie udostępnia oprogramowania.
  • Tworzenie infrastruktury i wydawanie oprogramowania to odrębne etapy w potoku.
  • Potok ciągłej integracji/ciągłego wdrażania nie przypisuje uprawnień firmy Microsoft Entra.
  • Potok traktuje wszystko jako kod.
  • Potok używa składników wielokrotnego użytku skoncentrowanych na komponowalności.

Poniższe zagadnienia odnoszą się do powyższych zasad.

Pojedynczy artefakt, wiele środowisk

Potok Gridwich jest skalowany do wielu środowisk, ale istnieje tylko jeden artefakt, który potok jest podwyższany od jednego środowiska do drugiego.

Wydanie oprogramowania a tworzenie infrastruktury

W usłudze Gridwich wdrażanie wersji oprogramowania i infrastruktury to dwa oddzielne obowiązki. Pojedynczy potok obsługuje obie obowiązki na różnych etapach przy użyciu następującego ogólnego wzorca:

Oprogramowanie kompiluje > wdrożenie > infrastruktury Wydanie > oprogramowania Konfiguracja > oprogramowania Wdrożenie niestandardowego skryptu

Główna zasada, że infrastruktura i wydanie oprogramowania są dwiema odrębnymi obowiązkami, sprawia, że wdrażanie subskrypcji usługi Event Grid jest trudniejsze. Gdy platforma Azure tworzy subskrypcję elementu webhook usługi Event Grid, wysyła zdarzenie weryfikacji, aby sprawdzić, czy punkt końcowy rejestru akceptuje zdarzenia usługi Event Grid. Aby przejść tę kontrolę poprawności, należy zwolnić i uruchomić funkcję platformy Azure, zanim program Terraform będzie mógł skompilować zasoby subskrypcji usługi Event Grid.

Aby rozwiązać ten problem, w potoku ciągłej integracji/ciągłego wdrażania istnieją dwa zadania narzędzia Terraform:

Diagram showing the Terraform sandwich jobs.

  • Program Terraform 1 tworzy wszystkie zasoby z wyjątkiem subskrypcji usługi Azure Event Grid.
  • Narzędzie Terraform 2 tworzy subskrypcje usługi Event Grid po uruchomieniu oprogramowania.

Ponieważ program Terraform obecnie nie ma możliwości wykluczenia określonego modułu, zadanie programu Terraform 1 musi jawnie kierować wszystkie moduły z wyjątkiem subskrypcji usługi Event Grid. To wymaganie jest potencjalnie podatne na błędy, a bieżący problem z usługą GitHub w narzędziu Terraform śledzi ten problem.

Skrypty po wdrożeniu

Potok ciągłej integracji/ciągłego wdrażania nie wykonuje operacji, które wymagają podwyższonych uprawnień, ale używa szablonów skryptów administratora do generowania zestawu skryptów administratora jako artefaktów potoku. Administrator z podwyższonymi uprawnieniami musi uruchamiać te skrypty administracyjne za każdym razem, gdy zostanie utworzone nowe środowisko Gridwich. Aby uzyskać więcej informacji, zobacz Uruchamianie skryptów administratora platformy Azure.

Wersje programu Terraform i oprogramowania nie mogą ukończyć niektórych operacji usługi Gridwich, w tym:

  • Kopiowanie certyfikatów do usługi Azure Key Vault
  • Włączanie analizy magazynu w usłudze Azure Storage

Skrypt interfejsu wiersza polecenia platformy Azure azcli-last-steps-template.yml zawiera te ostatnie kroki.

Wszystko jako kod i ponowne użycie kodu

Jedną z zalet praktyki "wszystko jako kod" jest ponowne użycie składników.

  • W przypadku programu Terraform usługa Gridwich opiera się w dużym stopniu na modułach terraform w celu zwiększenia możliwości komponowania i ponownego obsługi.
  • W przypadku usługi Azure Pipelines YAML usługa Gridwich używa szablonów potoków.

Następne kroki