Zalecenia dotyczące projektowania prac nad pracą
Dotyczy tego Power Platform zalecenia dotyczącego listy kontrolnej doskonałości operacyjnej Well-Architected:
OE:06 | Należy utworzyć dostarczanie prac, które napędza planowane zmiany za pośrednictwem przewidzenia, zautomatyzowanego planowanego obciążenia. Potoki testują i promują te zmiany w środowiskach. Zoptymalizuj łańcuch dostaw, aby Twoje obciążenie było niezawodne, bezpieczne, opłacalne i wydajne. |
---|
W tym przewodniku opisano zalecenia dotyczące projektowania prac programistycznych opartych na stałej integracji i ciągłych dostawach (CI/CD) potoków. W obciążeniach w chmurze usługa dostarczania to standardowy zestaw narzędzi i procesów, które mają wpływ na konfigurację i zmianę obciążenia w środowiskach. Opracowanie łańcuchu dostaw w celu zapewnienia, że jest to przewidywana, standardowa metoda konserwacji obciążenia. Potoki CI/CD, które są manifestacją łańcucha wartości, ale należy mieć jeden łańcuch wartości. Może istnieć kilka potoków, które wykonują te same procesy i używają tych samych narzędzi.
W celu zabezpieczenia obciążenia przed zmianą obciążenia może dojść do sytuacji, w których nie można prawidłowo zarządzać zmianami w obciążeniach. Zawsze bądź świadomy stanu obciążenia, aby nie być narażonym na ryzyko wystąpienia nieprzewidywalnego zachowania. Ryzyko to zwiększa się, jeśli musisz poświęcić krytyczny czas na śledzenie nieuwzględnionych zmian, gdy pojawią się problemy. Aby zminimalizować zakłócenia w pracy, należy standaryzować procesy i narzędzia definiujące dostarczanie danych, a także zapewnić, że zespół obsługi obciążenia w pełni wykorzystywał je.
Kluczowe strategie projektowania
Poniższe zalecenia mogą pomóc w zdefiniowaniu podstawowych rekordów dostawy.
Wprowadzenie proponowanych zmian obciążenia w ramach procesów i narzędzi dostarczania towarów. Wymuszanie zasad zabezpieczeń w przypadku zautomatyzowanych wdrożeń opartych na szablonach. Ta metoda pozwala zagwarantować, że konfiguracja obciążenia we wszystkich środowiskach jest standardowa, dobrze zdefiniowana i dokładnie kontrolowana. W środowiskach promocyjnych kodu nie należy przeprowadzać aktualizacji przy użyciu procesów ręcznych lub interakcji między ludźmi. Uwzględnianie wszystkich zmian w środowisku przy użyciu potoku przez następujące zdefiniować metody wdrażania. W celu umożliwienia wymuszania tych zasad należy rozważyć ograniczenie dostępu tylko do odczytu jako wartości domyślnej i użycie autoryzacji dostępu w celu umożliwienia zapisu.
Ważnym aspektem tego rozwiązania jest to, że wszystkie zmiany są proponowane do momentu ich wdrożenia w środowisku produkcyjnym. Zautomatyzowane testy, na przykład testy integracji i testów dymnych, umożliwiają automatyczne odrzucanie zmian przez dostarczanie.
Użyj jednego zestawu zasobów i artefaktów kodu we wszystkich środowiskach i w potokach. Najczęstszym punktem wyjścia dla organizacji jest to, że środowiska nieproduktowe różnią się od środowisk produkcyjnych. Ręczne tworzenie środowisk produkcyjnych i nieprodukcyjnych może powodować niezgodności konfiguracji między środowiskami. Ta niezgodność spowolni testowanie i bardziej prawdopodobne jest, że zmiany będą dotyczyły systemu produkcyjnego.
Należy odzwierciedlić strukturę organizacyjną w strukturze zasobów oraz w projektach potoków. Organizacja może być należąca do zespołów. Każdy zespół może zarządzać częścią zapasów. Na przykład wiele organizacji ma zespoły zarządzania ustawieniami zabezpieczeń i zgodności lub konfiguracjami środowiska. Te zespoły są oddzielone od zespołów projektowych zarządzający tworzeniem, testowaniem i wdrażaniem aplikacji. Istnieje wiele sposobów organizowania zespołów, które są związane z dostarczaniem danych. Wydajność usług zależy od bezproblemowego działania wszystkich zespołów. Należy zagwarantować, że wszystkie zespoły postępują zgodnie ze standardowymi procesami i korzystają z standardowych narzędzi, aby zapewnić jak najbardziej wydajne dostarczanie.
Twój łańcuch dostaw może polegać na dostawcach zewnętrznych, jeśli zlecisz część cyklu życia obciążenia na zewnątrz. Dostawcy ci są tak samo ważni dla sukcesu Twojego łańcuch dostaw, jak zasoby wewnętrzne. Upewnij się, że wszystkie zespoły zgadzają się co do procesów i narzędzi, z których korzystasz.
Standaryzowanie metody wdrożenia. Porozmawiaj z właścicielem produktu o dopuszczalnym czasie przestoju w środowisku produkcyjnym. W zależności od tego, ile przestojów jest dopuszczalnych, można wybrać metodę wdrożenia odpowiednią dla potrzeb. Najlepiej jest przeprowadzić wdrożenia podczas konserwacji w celu ograniczenia złożoności i ryzyka.
Zaplanować strategię testowania testów testowych. Podstawową zasadą niezawodności systemu jest zasada "przesunięcia w lewo". Tworzenie i wdrażanie aplikacji to proces, który jest opisany jako seria kroków od lewej do prawej. Nie należy ograniczać testowania do końca procesu. W miarę możliwości przekieruj test na początek lub w lewo. Błędy są tańsze do naprawy, gdy zostaną wcześnie wykryte. Mogą być kosztowne lub niemożliwe do naprawienia w późniejszym cyklu życia aplikacji.
W miarę możliwości w celu zapewnienia spójności należy użyć testowania zautomatyzowanego. W projekcie dostawy należy uwzględnić następujące typy testów:
Testowanie jednostkowe: Testy jednostkowe są zwykle uruchamiane w ramach procedury ciągłej integracji. Testy jednostek powinny być szerokie i szybkie. Powinny one najlepiej pokrywać 100 procent kodu. Zastosuj testy jednostek dla wszystkich zasobów kodu, w tym szablonów i skryptów.
Testowanie dymu: Testy dymu sprawdzają, czy obciążenie można uruchomić w środowisku testowym i działa zgodnie z oczekiwaniami. Testy dymne nie sprawdzają współdziałania składników. Testy dymne sprawdzają, czy metody wdrażania infrastruktury i aplikacji działa oraz czy system odpowiada w sposób zamierzony po zakończeniu procesu.
Testy integracyjne: Testy integracyjne zapewniają, że komponenty aplikacji działają indywidualnie, a następnie określają, czy komponenty mogą wchodzić ze sobą w interakcje tak, jak powinny. Uruchamianie dużego zestawu testów integracji może zająć dużo czasu. Dlatego najlepiej jest zastosować zasadę przesunięcia w lewo i przeprowadzać testy na wczesnym etapie cyklu życia oprogramowania. Rezerwuj testy integracji w scenariuszach, których nie można przetestować podczas testów testowych lub testów jednostek. W razie potrzeby można regularnie uruchamiać procesy testowe. Regularna przerwa zapewnia dobre bezpieczeństwo i wykrywa problemy, które nie zostaną naruszone przez składniki aplikacji nie później niż jeden dzień po ich wprowadzeniu. Niektóre scenariusze testowania skorzystać z obsługi ręcznej. W celu wprowadzenia do testów elementów interaktywnych dla ludzi należy użyć testowania ręcznego.
Testy akceptacyjne: W zależności od kontekstu można przeprowadzić testy akceptacyjne ręcznie. Może być częściowo lub w pełni zautomatyzowane. Testowanie akceptacji określa, czy system spełnia wymagania techniczne. Głównym celem tego testu jest ocena zgodności systemu z wymaganiami biznesowymi i określenie, czy system spełnia wymagane kryteria dostarczania do użytkowników.
Wdrażaj bramki jakości w całym procesie promowania kodu poprzez testowanie. Wdrożyć kod w niższych środowiskach, takich jak zapewnienie jakości i testowanie, a także w środowiskach większych, takich jak przemieszczania czy produkcja. Podczas wdrażania w procesie zarządzania jakością należy się upewnić, że spełnia on kryteria jakości przed rozpoczęciem zmian w środowisku produkcyjnym. Od wymagań biznesowych zależy skupienie się na jakości produktu. Należy również wziąć pod uwagę podstawowe Power Platform zasady Well-Architected: bezpieczeństwo, niezawodność i wydajność.
Zintegruj również przepływy pracy zatwierdzeń z jakością. W razie potrzeby można jasno zdefiniować i zautomatyzować przepływy pracy zatwierdzania. Zdefiniuj kryteria akceptacji jakości w swojej automatyzacji, aby móc sprawnie i bezpiecznie poruszać się po bramach.
Ułatwienia Power Platform
Potoki mają Power Platform na celu demokratyzację zarządzania cyklem życia aplikacji (ALM) dla Power Platform klientów i klientów Dynamics 365 poprzez wprowadzenie do usługi funkcji automatyzacji ALM oraz ciągłej integracji i ciągłego dostarczania (CI/CD).
Microsoft Power Platform Narzędzia do kompilacji mogą Azure DevOps służyć do automatyzowania typowych zadań kompilacji i wdrażania związanych z aplikacjami opartymi na Power Platform bazie.
Akcje GitHub umożliwiają Power Platform deweloperom tworzenie zautomatyzowanych przepływów pracy cyklu życia tworzenia oprogramowania. Za pomocą akcji GitHub dla platformy Microsoft Power Platform można tworzyć przepływy pracy w swoim repozytorium, aby tworzyć, testować, pakowania, wydawać i wdrażać aplikacje; wykonywać automatyzację; oraz zarządzać botami i innymi składnikami zbudowanymi na platformie Power Platform.
Akcelerator ALM to narzędzie typu open source, które składa się z zestawu aplikacji, skryptów i potoków zaprojektowanych w celu zautomatyzowania procesu ciągłej integracji/ciągłego dostarczania.
Automatyzowanie testów za pomocą usługi Azure Pipelines.
Power Apps checker Web API zapewnia mechanizm uruchamiania statycznych testów analizy pod kątem dostosowań i rozszerzeń platformy Microsoft Dataverse .
Microsoft Power Platform CLI (PAC CLI) to narzędzie wiersza polecenia, które obsługuje importowanie i eksportowanie Power Platform rozwiązań oraz pakowanie i rozpakowywanie z Power Platform plików źródłowych rozwiązań. Interfejs wiersza polecenia PAC jest dostępny jako samodzielne narzędzie wiersza polecenia lub jako rozszerzenie kodu Visual Studio .
Do wdrożenia kodu (IaC) można użyć Terraform, Bicep i Azure Resource Manager. W zależności od wymagań i znajomości tych narzędzi przez zespół można używać jednego lub więcej z tych narzędzi do wdrożeń i zarządzania zasobami.
Dopasowanie organizacyjne
Program Cloud Adoption Framework udostępnia wskazówki dla zespołów centralnych dotyczące podania stref docelowych obciążenia. Strefy docelowe obciążenia to miejsca, w których niestandardowe łańcuch dostaw obciążenia wdraża aplikacje.
Dowiedz się więcej w temacie Co to jest strefa docelowa platformy Azure? i zasady projektowania strefy docelowej platformy Azure.