Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po zakończeniu planowania kolejna faza polega na utworzeniu i skonfigurowaniu rozwiązania w środowisku projektowym, przestrzeganiu najlepszych rozwiązań i zapewnieniu jakości poprzez testowanie. Rozwiązanie natywne dla chmury używa skalowalnych, odpornych i obserwowalnych wzorców architektury w celu zmaksymalizowania korzyści z usług platformy Azure. Tworzenie w środowisku nieprodukcyjnym z silnymi rozwiązaniami testowania i automatyzacji zapewnia jakość i gotowość do wdrożenia produkcyjnego.
Opracowywanie nowych rozwiązań natywnych dla chmury
Programowanie natywne dla chmury wymaga ustrukturyzowanego podejścia, które integruje praktyki dotyczące jakości od samego początku. Te wskazówki ułatwiają tworzenie niezawodnych, bezpiecznych i skalowalnych rozwiązań za pomocą sprawdzonych rozwiązań programistycznych.
Stosowanie zasad Well-Architected Framework podczas programowania
Rozwiązanie natywne dla chmury zapewnia spójne stosowanie zasad Well-Architected Framework (WAF)Well-Architected Framework (WAF) zawiera podstawowe zasady, które prowadzą do efektywnego tworzenia aplikacji natywnych dla chmury. Zintegruj te pięć filarów z procesem programowania, aby tworzyć niezawodne aplikacje, które działają dobrze w środowisku produkcyjnym.
Opracowywanie rozwiązań w środowisku nieprodukcyjnym
Twórz środowiska deweloperskie, które odzwierciedlają konfiguracje produkcyjne. Skonfiguruj środowiska nieprodukcyjne (programowanie, testowanie, kontrola jakości), które dokładnie odzwierciedla konfigurację produkcyjną. Im bardziej środowiska testowe przypominają produkcyjne, tym większa pewność, że system działa po wdrożeniu. Takie podejście jest szczególnie ważne podczas dodawania nowych funkcji do istniejącego obciążenia.
Użyj realistycznych zestawów danych reprezentujących woluminy danych produkcyjnych. Przetestuj przy użyciu danych, które odpowiadają rozmiarowi i złożoności obciążeń produkcyjnych. Duże zestawy danych uwidaczniają wąskie gardła wydajności i problemy ze skalowaniem, których brakuje małym zestawom danych testowych. Anonimizuj dane produkcyjne lub generuj syntetyczne dane, które zachowują właściwości statystyczne rzeczywistych danych.
Zaimplementuj mechanizmy kontroli kosztów dla środowisk nieprodukcyjnych. Użyj usługi Azure DevTest Labs lub planowania zasobów, aby automatycznie uruchamiać i zatrzymywać zasoby, gdy nie są używane. Zastosuj odpowiednie warstwy usług dla obciążeń programistycznych i zaimplementuj limity wydatków, aby zapobiec nieoczekiwanym kosztom przy zachowaniu skuteczności testowania.
Aby uzyskać więcej informacji, zobacz Konfigurowanie środowiska testowego w WAF.
Wdrażanie zmian przy użyciu systemu kontroli wersji oraz CI/CD.
Przechowuj cały kod i konfigurację w repozytorium Git. Śledzenie kodu aplikacji, szablonów infrastruktury, skryptów wdrażania i plików konfiguracji w kontroli wersji. Ta praktyka zapewnia pełną historię zmian i umożliwia współpracę między członkami zespołu.
Podziel prace programistyczne na małe, częste commity. Ukończ tworzenie funkcji w małych krokach, które można scalić i przetestować niezależnie. Takie podejście zmniejsza konflikty integracji i ułatwia identyfikowanie źródła problemów podczas ich występowania.
Automatyzowanie kompilacji i testów przy każdej zmianie kodu. Skonfiguruj potoki CI/CD, które automatycznie kompilują kod, uruchamiają testy i wdrażają go w środowiskach nieprodukcyjnych po zatwierdzeniu zmian. Szybkie cykle informacji zwrotnej pomagają deweloperom szybko wychwytywać i rozwiązywać problemy.
Użyj flag cech, aby kontrolować wdrożenie nowych funkcji. Zaimplementuj przełączanie funkcji, które umożliwiają wdrażanie kodu w środowisku produkcyjnym przy zachowaniu nowych funkcji wyłączonych, dopóki nie będą gotowe dla użytkowników. Ta strategia oddziela wdrożenie od wydania i umożliwia bezpieczniejsze, bardziej kontrolowane wdrożenia.
Implementowanie monitorowania podczas programowania
Integrowanie usług Azure Monitor i Application Insights z kodem aplikacji. Dodaj zbieranie danych monitorowania, aby śledzić kluczowe metryki wydajności, interakcje użytkowników i wskaźniki kondycji systemu. Skonfiguruj te narzędzia podczas programowania, aby upewnić się, że działają prawidłowo przed wdrożeniem produkcyjnym.
Zaimplementuj rejestrowanie strukturalne w całej aplikacji. Używaj spójnych formatów dzienników i dołączaj informacje kontekstowe, takie jak identyfikatory użytkowników, identyfikatory żądań i identyfikatory procesów biznesowych. Utwórz strukturę dzienników jako obiektów JSON, aby umożliwić zaawansowane możliwości wykonywania zapytań i analizy.
Konfigurowanie alertów dla kluczowych metryk i warunków awarii. Skonfiguruj proaktywne monitorowanie, które powiadamia o wzroście współczynników błędów, spadku wydajności czasów odpowiedzi lub gdy metryki biznesowe wykraczają poza oczekiwane zakresy. Zdefiniuj progi alertów na podstawie celów poziomu usług i wymagań biznesowych.
Utwórz pulpity nawigacyjne, które zapewniają wgląd w wydajność systemu. Twórz pulpity monitorujące, które pokazują kondycję aplikacji, infrastruktury i procesów biznesowych. Uwzględnij metryki, które mają znaczenie zarówno dla zespołów technicznych, jak i osób biorących udział w projekcie biznesowym, aby umożliwić podejmowanie decyzji opartych na danych.
Aby uzyskać więcej informacji, zobacz Projektowanie systemu monitorowania i Instrumentowanie aplikacji w zaporze aplikacji internetowej (WAF).
Weryfikowanie rozwiązań natywnych dla chmury przy użyciu testów
Kompleksowe testowanie sprawdza, czy rozwiązanie spełnia wymagania biznesowe i działa niezawodnie w rzeczywistych warunkach. Każdy typ testowania służy określonemu celowi w zapewnieniu jakości rozwiązania.
Wykonaj kompleksowe testowanie funkcjonalne, aby zweryfikować biznesowe przepływy pracy. Przetestuj kompletne scenariusze użytkownika od uwierzytelniania do ukończenia transakcji, korzystając z realistycznych danych i interakcji. Sprawdź, czy nowe funkcje działają poprawnie i czy istniejące funkcje pozostają nienaruszone po zmianach. Uruchamianie testów regresji w celu przechwycenia niezamierzonych skutków ubocznych nowego programowania.
Przeprowadzanie testowania akceptacji użytkowników z udziałem osób biorących udział w projekcie biznesowym. Skontaktuj się z rzeczywistymi użytkownikami lub przedstawicielami biznesowymi, aby sprawdzić, czy rozwiązanie spełnia ich potrzeby i oczekiwania. Powinni przetestować kluczowe scenariusze w środowisku UAT i przekazywać informacje zwrotne na temat użyteczności i funkcjonalności. Uzyskaj formalne zatwierdzenie od uczestników projektu przed przejściem do wdrożenia produkcyjnego.
Wykonaj testy obciążeniowe w realistycznych warunkach, aby zweryfikować wydajność. Użyj usługi Azure Load Testing , aby symulować oczekiwane woluminy użytkowników i przepływność danych. Przetestuj działanie przy szczytowych poziomach obciążenia oraz poza nimi, aby zidentyfikować wąskie gardła wydajności i limity skalowania. Mierzenie czasów odpowiedzi, przepływności i wykorzystania zasobów w celu zapewnienia, że rozwiązanie spełnia wymagania dotyczące wydajności.
Wykonaj testy zabezpieczeń i zgodności, aby zidentyfikować luki w zabezpieczeniach. Uruchamiaj automatyczne skanowanie zabezpieczeń w kodzie aplikacji, obrazach kontenerów i konfiguracjach infrastruktury. Użyj usługi Microsoft Defender for Cloud, aby sprawdzić błędy konfiguracji zabezpieczeń i naruszenia zgodności. Rozwiąż luki w zabezpieczeniach wysokiego ryzyka przed wdrożeniem i zaimplementuj mechanizmy kontroli wyrównywujące dla akceptowanych zagrożeń.
Rozwiąż krytyczne problemy przed wdrożeniem produkcyjnym. Traktuj fazy testowania jako bramy kontrolne jakości, które należy przejść przed kontynuowaniem. Rozwiąż problemy z wydajnością, które uniemożliwiają spełnienie umów dotyczących poziomu usług, rozwiąż luki w zabezpieczeniach, które stanowią poważne ryzyko. Rozwiązywanie problemów z wadami funkcjonalnymi wpływającymi na podstawowe procesy biznesowe. Dokumentowanie znanych problemów o niskim priorytcie z planami przyszłego rozwiązania.
Obsługa zautomatyzowanych zestawów testów jednostkowych i integracyjnych. Twórz kompleksowe testy automatyczne, które weryfikują poszczególne składniki i ich interakcje z zależnościami zewnętrznymi. Uruchom te testy w ramach potoku CI/CD i po każdej poprawce błędu, aby zapobiec regresji. Niezawodny zautomatyzowany zestaw testów umożliwia niezawodne ciągłe dostarczanie w środowiskach natywnych dla chmury.
Tworzenie infrastruktury wielokrotnego użytku
Gdy tylko zmodernizowane rozwiązanie przejdzie wszystkie testy w środowisku nieprodukcyjnym, należy przechwycić konfigurację oraz ustawienia infrastruktury jako kod, aby móc je łatwo odtworzyć w środowiskach produkcyjnych i przyszłych. Infrastruktura wielokrotnego użytku oznacza użycie szablonów infrastruktury jako kodu (IaC) i automatyzacji w celu zapewnienia spójności i szybkości.
Tworzenie szablonów IaC dla sprawdzonych konfiguracji. Przyjmij ostateczną architekturę swojego środowiska testowego (które odzwierciedla to, co chcesz mieć w środowisku produkcyjnym) i zakoduj je. Użyj szablonów Bicep, Terraform lub Azure Resource Manager , aby zdefiniować infrastrukturę. Sparametryzuj te szablony, aby można je było ponownie używać na różnych etapach, takich jak tworzenie, testowanie, prod z małymi poprawkami, takimi jak nazwy lub rozmiary. Ta konfiguracja gwarantuje, że tworzone środowisko produkcyjne jest zgodne z testowanym elementem. Pozwala uniknąć błędu ludzkiego podczas ręcznego klikania w witrynie Azure Portal w celu utworzenia zasobów. Oznacza to również, że jeśli kiedykolwiek trzeba ponownie utworzyć środowisko, na przykład w przypadku odzyskiwania po awarii lub wdrażania w nowych regionach, masz gotowe wdrożenie infrastruktury. Aby uzyskać więcej informacji, zobacz Zarządzanie caF — zarządzanie wdrożeniami opartymi na kodzie.
Przechowywanie szablonów w kontroli wersji. Sprawdź kod infrastruktury w repozytorium Git (wraz z kodem aplikacji lub w osobnym repozytorium). Użyj usługi GitHub lub Azure DevOps , aby zarządzać zasobami IaC przy użyciu odpowiedniej kontroli wersji. Kontrola wersji umożliwia przeglądy kodu, obsługuje współpracę zespołową i zachęca do ponownego użycia szablonów w projektach. Takie podejście zapewnia pełną możliwość śledzenia zmian infrastruktury i obsługuje możliwości wycofywania w przypadku wystąpienia problemów.
Automatyzowanie instalacji i konfiguracji zależności. Utwórz skrypty lub zadania potoku, aby wdrożyć te szablony, a także obsługiwać wszystkie wymagane zadania konfiguracji lub rozmieszczania. Użyj usługi Azure Pipelines, GitHub Actions, aby uruchamiać zadania wdrażania, które przyjmują szablon IaC i wdrażają je w docelowej subskrypcji/grupie zasobów. Automatyzacja instalowania zależności aplikacji, konfigurowania ustawień i zarządzania tajnymi danymi. Celem jest konfiguracja środowiska jednym kliknięciem (lub jednym poleceniem): od niczego do w pełni uruchomionego środowiska zgodnego z testowanym środowiskiem.
Testuj IaC i automatyzację od końca do końca. Użyj oddzielnej subskrypcji platformy Azure lub grupy zasobów jako piaskownicy i przećwicz wdrażanie całego środowiska od podstaw przy użyciu szablonów i skryptów. Przetestuj, czy szablony IaC, potoki i skrypty mogą tworzyć kompletny stos infrastruktury z niczego. Przetestuj różne scenariusze wdrażania, w tym wstępne wdrożenie, aktualizacje konfiguracji i procedury wycofywania, aby potwierdzić, że automatyzacja działa prawidłowo.
Aby uzyskać więcej informacji, zobacz Planowanie zmian w dostarczaniu obciążenia i Infrastruktura jako kod w WAF.
Tworzenie dokumentacji wdrożenia
Nawet w przypadku automatyzacji posiadanie dobrej dokumentacji dotyczącej wdrożeń ma kluczowe znaczenie dla inspekcji, dołączania nowych członków zespołu i przyszłej konserwacji. Dokumentacja wdrażania powinna obejmować konfiguracje, procedury i kroki wycofywania w postaci czytelnej dla człowieka.
Dokumentowanie ustawień konfiguracji i kroków. Rejestruj wszystkie ustawienia specyficzne dla środowiska, parametry połączenia, punkty końcowe usługi i konfiguracje zabezpieczeń w dokumentacji dostępnej. Dołącz instrukcje krok po kroku dotyczące wdrażania, wymagania wstępne i kroki weryfikacji po wdrożeniu. Ta dokumentacja umożliwia spójne wdrożenia i obsługuje rozwiązywanie problemów w przypadku wystąpienia problemów. Jeśli nowy inżynier musiałby przeprowadzić wdrożenie, mógłby przeczytać ten dokument i podążać za nim lub zrozumieć dane wyjściowe potoku.
Aktualizacja procedur wycofywania i odzyskiwania. Po zakończeniu testów sformalizuj kroki, aby przywrócić zmiany w przypadku wystąpienia problemów z wdrożeniem. Uwzględnij wyzwalacze wycofywania, procedury tworzenia kopii zapasowej i przywracania danych oraz kroki weryfikacji odzyskiwania. Regularnie testuj procedury wycofywania i odzyskiwania, aby upewnić się, że działają prawidłowo w razie potrzeby. To przygotowanie zmniejsza przestój.
Zbierz całą tę dokumentację w centralnej lokalizacji. Użyj programu SharePoint, usługi GitHub lub witryny typu wiki, aby przechowywać te informacje. Upewnij się, że zespół i personel pomocy technicznej wiedzą, gdzie go znaleźć. Podczas stresującego incydentu, posiadanie przejrzystej dokumentacji pod ręką może uratować sytuację.