Udostępnij za pośrednictwem


Cykl życia projektowania

Strategia cyklu życia programowania zawiera kluczowe zagadnienia i zalecenia dotyczące repozytorium, gałęzi, zautomatyzowanych kompilacji, wdrażania i wycofywania strategii podczas automatycznego tworzenia strefy docelowej.

Strategia repozytorium

Uwagi dotyczące projektowania

  • Rozważ wdrożenie systemu kontroli wersji, takiego jak Git, aby zapewnić zespołowi elastyczność udostępniania kodu i zarządzania nim.

    • Git to standardowy w branży system kontroli wersji. Jest to rozproszony system kontroli wersji, w którym lokalna kopia kodu jest kompletną wersją repozytorium.
  • Omówienie struktury repozytorium mono-repo i repozytorium multirepo.

    • W strukturach mono repozytorium cały kod źródłowy znajduje się w jednym repozytorium.
    • W strukturach multirepo wszystkie projekty są zorganizowane w oddzielne repozytoria.
  • Wybierz ustawienie widoczności, które odpowiada zawartości repozytorium.

    • Dostęp do repozytoriów publicznych można uzyskać anonimowo.
    • Repozytoria prywatne wymagają od użytkowników udzielenia dostępu do repozytorium i zalogowania się w celu uzyskania dostępu do usług.
    • Możesz ustawić publiczną i prywatną widoczność dla usługi Azure DevOps Projects i repozytoriów GitHub.
  • Rozważ ustawienie uprawnień repozytorium, które ułatwiają kontrolowanie, kto może współtworzyć kod źródłowy i zarządzać innymi funkcjami.

  • Rozważ użycie wdrożenia zasobów Infrastruktura jako kod (IaC) na platformie Azure. Infrastruktura IaC umożliwia zarządzanie infrastrukturą w modelu deklaratywnym, co pomaga zmniejszyć nakład pracy nad konfiguracją, zapewnić spójność między wdrożeniami i uniknąć ręcznej konfiguracji środowiska.

  • Platforma Azure zapewnia obsługę IaC dla stref docelowych za pomocą następujących funkcji:

Zalecenia dotyczące projektowania

  • Użyj usługi Git jako systemu kontroli wersji.

  • Używanie repozytoriów prywatnych podczas tworzenia stref docelowych platformy Azure

  • Repozytoria publiczne są używane podczas udostępniania informacji niekonfidentalnych, takich jak przykłady automatyzacji, dokumentacja publiczna i materiały do współpracy typu open source.

  • Wdrożenie podejścia IaC do wdrażania, zarządzania zasobami w chmurze i zarządzania nimi oraz zarządzania nimi.

Strategia rozgałęzinia

Uwagi dotyczące projektowania

  • Rozważ użycie strategii gałęzi, która umożliwia zespołom współpracę nad lepszą i wydajną kontrolą wersji.

  • Rozważ użycie określonych konwencji nazewnictwa dla gałęzi.

  • Rozważ użycie uprawnień gałęzi do kontrolowania możliwości użytkownika.

  • Rozważ użycie zasad gałęzi, aby pomóc zespołom chronić ważne gałęzie programowania. Zasady, które mogą pomóc w wymuszaniu standardów jakości kodu i zarządzania zmianami. Przykłady zasad gałęzi to:

  • Wdrożenie strategii żądania ściągnięcia może pomóc w utrzymaniu kontroli nad zmianami kodu scalanych z gałęziami.

    • Zdefiniuj strategię scalania.
    • Żądania ściągnięcia powinny być proste, a liczba plików jest przechowywana do minimum, aby ułatwić recenzentom wydajniejsze weryfikowanie zatwierdzeń i zmian.
    • Żądania ściągnięcia powinny mieć jasne tytuły i opisy, aby recenzenci wiedzieli, czego oczekiwać podczas przeglądania kodu.
    • Możesz użyć szablonów żądań ściągnięcia.
    • Gałęzie pochodzenia można usunąć po zakończeniu żądań ściągnięcia, co zapewnia większą kontrolę i lepsze zarządzanie gałęziami.

Zalecenia dotyczące projektowania

  • Wdrożenie modelu programowania opartego na magistrali, w którym deweloperzy zatwierdzają pojedynczą gałąź. Ten model ułatwia ciągłą integrację. Cała praca funkcji jest wykonywana w magistrali, a wszystkie konflikty scalania są rozwiązywane po zakończeniu zatwierdzania.

  • Czy zespoły definiują spójne konwencje nazewnictwa dla gałęzi i używają ich do identyfikowania wykonanej pracy.

  • Ustaw uprawnienia, aby kontrolować, kto może odczytywać i aktualizować kod w gałęzi repozytorium Git. Możesz ustawić uprawnienia dla poszczególnych użytkowników i grup.

  • Ustaw zasady gałęzi:

    • Wymagaj użycia żądań ściągnięcia dla scalania gałęzi z gałęzią główną.
    • Wymagaj minimalnej liczby recenzentów dla żądań ściągnięcia.
    • Zresetuj wszystkie głosy zatwierdzenia, aby usunąć wszystkie głosy zatwierdzenia, ale zachowaj głosy do odrzucenia lub oczekiwania za każdym razem, gdy gałąź źródłowa ulegnie zmianie.
    • Automatycznie dołączaj recenzentów kodu.
    • Sprawdź, czy nie ma rozwiązania komentarzy.
  • Ustaw opcję squasha jako strategię scalania, która umożliwia skondensowanie historii tematu git gałęzi podczas wykonywania żądań ściągnięcia. Zamiast dodawać każde zatwierdzenie w gałęzi tematu do historii gałęzi domyślnej, scalanie typu squash dodaje wszystkie zmiany plików do pojedynczego nowego zatwierdzenia w gałęzi domyślnej.

Automatyczne kompilacje

Uwagi dotyczące projektowania

  • Rozważ zaimplementowanie ciągłej integracji (CI). Ciągła integracja obejmuje scalenie całego kodu dewelopera z centralną bazą kodu zgodnie z regularnym harmonogramem i automatyczne wykonywanie standardowych kompilacji i procesów testowania.

  • Rozważ użycie wyzwalaczy ciągłej integracji:

    • Azure Repos Git. Możesz skonfigurować gałęzie, ścieżki i tagi jako wyzwalacze w celu uruchomienia kompilacji ciągłej integracji.
    • GitHub. Możesz skonfigurować gałęzie, ścieżki i wyzwalacze tagów w celu uruchomienia kompilacji ciągłej integracji.
  • Rozważ uwzględnienie testów jednostkowych IaC w procesie kompilacji w celu zweryfikowania składni.

    • Zestaw narzędzi do testowania szablonów usługi ARM sprawdza, czy szablon jest zgodny z zalecanymi rozwiązaniami.
    • Bicep linter sprawdza pliki Bicep pod kątem błędów składni i naruszeń najlepszych rozwiązań.
  • Rozważ uwzględnienie testów jednostkowych w procesie kompilacji aplikacji. Przejrzyj zadania dostępne dla usługi Azure DevOps Pipeline.

  • Użyj połączeń usługi Azure DevOps lub wpisów tajnych usługi GitHub, aby zarządzać połączeniami z platformą Azure. Każde połączenie powinno mieć prawidłowy dostęp uprzywilejowany do zasobów platformy Azure.

  • Rozważ użycie wpisów tajnych usługi Azure Key Vault do przechowywania poufnych informacji, takich jak hasła, klucze interfejsu API, certyfikaty.

  • Agenci usługi Azure DevOps mogą być hostowani samodzielnie lub hostowani przez firmę Microsoft.

    • Konserwacja i uaktualnienia są obsługiwane w przypadku korzystania z agentów hostowanych przez firmę Microsoft. Za każdym razem, gdy zadanie kompilacji jest uruchamiane, tworzona jest nowa maszyna wirtualna.
    • Możesz samodzielnie skonfigurować własnych agentów hostowanych i zarządzać nimi w celu uruchamiania zadań kompilacji.

Zalecenia dotyczące projektowania

  • Użyj ciągłej integracji, aby zautomatyzować kompilacje i testowanie kodu za każdym razem, gdy członek zespołu zatwierdza zmiany w kontroli wersji.

  • Uwzględnij testy jednostkowe dla kodu IaC i aplikacji w ramach procesu kompilacji.

  • Jeśli to możliwe, użyj puli hostowanej przez firmę Microsoft, a nie pul hostowanych samodzielnie, ponieważ oferują one izolację i czystą maszynę wirtualną dla każdego uruchomienia potoku.

  • Podczas łączenia usługi Azure DevOps lub GitHub z platformą Azure za pośrednictwem połączeń usług lub wpisów tajnych usługi GitHub upewnij się, że zawsze definiujesz zakres, aby mógł uzyskiwać dostęp tylko do wymaganych zasobów.

  • Użyj wpisów tajnych usługi Key Vault, aby uniknąć kodowania poufnych informacji, takich jak poświadczenia (hasła użytkownika maszyny wirtualnej), certyfikaty lub klucze. Następnie użyj wpisów tajnych jako zmiennych w zadaniach kompilacji i wydania.

Strategia wdrażania

Uwagi dotyczące projektowania

Zalecenia dotyczące projektowania

  • Użyj ciągłego wdrażania, aby upewnić się, że kod jest zawsze gotowy do wdrożenia, automatycznie kompilując, testując i wdrażając kod w środowiskach przypominających środowisko produkcyjne. Dodaj ciągłe dostarczanie, aby utworzyć pełną integrację ciągłej integracji/ciągłego wdrażania, która pomaga wykrywać wady kodu tak szybko, jak to możliwe, i zapewnia szybkie wydawanie prawidłowo przetestowanych aktualizacji.

  • Użyj środowisk w ramach strategii wdrażania. Środowiska zapewniają korzyści, takie jak:

    • Historia wdrożenia
    • Możliwość śledzenia zatwierdzeń i elementów roboczych
    • Kondycja zasobu diagnostycznego
    • Zabezpieczenia
  • Uwzględnij kontrole wdrażania wstępnego IaC, aby wyświetlić podgląd zmian i wyświetlić szczegółowe informacje na temat tego, czy zasób został utworzony, zmodyfikowany lub usunięty.

Strategia wycofywania

Uwagi dotyczące projektowania

  • Rozważ utworzenie planu wycofania. Wycofywanie wdrożenia polega na przywróceniu wdrożenia do znanego dobrego stanu i zapewnia kluczową możliwość odzyskania po nieudanym wdrożeniu.

  • Rozważ użycie zmian cofania w usłudze Git, jeśli musisz przywrócić zmiany w zatwierdzeniu, odrzucić zmiany lub zresetować gałąź do poprzedniego stanu.

Zalecenia dotyczące projektowania

  • Zastosować zmiany cofania w usłudze Git, gdy trzeba przywrócić zmiany w zatwierdzonych plikach, odrzucić niezatwierdzone zmiany lub zresetować gałąź do poprzedniego stanu.