Udostępnij przez


Zasady projektowania aplikacji platformy Azure

Artykuły z zasadami projektowania w tej sekcji stanowią podstawę do tworzenia aplikacji w chmurze, które mogą wytrzymać awarie, skalować z zapotrzebowaniem i rozwijać się zgodnie z potrzebami biznesowymi. Niezależnie od tego, czy chcesz zaprojektować nowy system, zmodernizować starsze aplikacje, czy zaplanować obciążenia produkcyjne, te połączone zasady ułatwiają podejmowanie świadomych decyzji dotyczących niezawodności, wydajności i możliwości utrzymania. Razem tworzą kompleksowe podejście do projektowania aplikacji natywnych dla chmury, które równoważą doskonałość techniczną z wartością biznesową.

Aby zwiększyć skalowalność, odporność i zarządzanie aplikacją, postępuj zgodnie z tymi zasadami projektowania.

Podstawowe zasady

  • Projektowanie pod kątem samonaprawiania. Zaprojektuj aplikację, aby wykrywać błędy, bezpiecznie reagować i automatycznie odzyskiwać. W systemach rozproszonych awarie są nieuniknione. Aby odizolować awarie i zachować dostępność systemu, zaimplementuj logikę ponawiania prób, monitorowanie punktu końcowego kondycji systemu, bezpieczniki i wzorce odseparowania.

  • Uczyń wszystkie rzeczy redundantnymi. Utwórz nadmiarowość w aplikacji, aby uniknąć pojedynczych punktów awarii. Użyj modułów równoważenia obciążenia, wielu wystąpień, replik bazy danych i wdrożeń obejmujących wiele stref lub wielu regionów. Projektuj poziom nadmiarowości tak, aby była zgodna z wymaganiami biznesowymi i tolerancją ryzyka.

  • Zminimalizuj koordynację. Zminimalizuj koordynację między usługami aplikacji, aby osiągnąć skalowalność. Używaj składników rozdzielonych, które komunikują się asynchronicznie, stosuj spójność ostateczną, gdzie to właściwe, i wykorzystuj zdarzenia domenowe do synchronizacji stanu bez ścisłego sprzężenia.

  • Projektowanie w celu skalowania w poziomie. Zaprojektuj swoją aplikację pod kątem poziomego skalowania, poprzez dodawanie lub usuwanie instancji w odpowiedzi na zmieniające się zapotrzebowanie. Unikaj przyklejania sesji, identyfikowania wąskich gardeł, dekompilowania obciążeń przez skalowanie wymagań i efektywnego obsługi obciążeń przy użyciu skalowania automatycznego na podstawie metryk na żywo.

  • Partycjonowanie wokół limitów. Użyj partycjonowania, aby obejść limity bazy danych, sieci i obliczeń. Partycjonowanie danych w poziomie, w pionie lub funkcjonalnie oraz projektowanie kluczy partycji w celu uniknięcia hotspotów. Rozważ partycjonowanie na wielu poziomach, w tym bazy danych, kolejki i zasoby obliczeniowe.

Zasady operacyjne

  • Projektowanie pod kątem operacji. Zaprojektuj aplikację, aby zapewnić zespołom operacyjnym narzędzia potrzebne do wdrażania, monitorowania i reagowania na zdarzenia. Zaimplementuj kompleksowe rejestrowanie, śledzenie rozproszone, ustandaryzowane metryki i automatyzowanie zadań zarządzania w celu umożliwienia skutecznego nadzoru operacyjnego.

  • Korzystanie z usług zarządzanych. Użyj platformy jako usługi (PaaS), a nie infrastruktury jako usługi (IaaS). Usługi zarządzane zmniejszają nakłady pracy operacyjnej, zapewniają wbudowane możliwości skalowania i umożliwiają zespołom skupienie się na logice aplikacji, a nie konserwacji infrastruktury.

  • Użyj usługi tożsamości. Użyj platformy tożsamości zarządzanej, takiej jak Microsoft Entra ID, zamiast kompilować lub obsługiwać własny system tożsamości. Rozwiązania zarządzane zapewniają magazyn poświadczeń, funkcje uwierzytelniania, możliwości federacji i zgodność ze standardami branżowymi.

Zasady strategiczne

  • Projektowanie pod kątem ewolucji. Projektowanie pod kątem ciągłej innowacji, ponieważ wszystkie udane aplikacje zmieniają się w czasie. Wymuszanie luźnego sprzężenia, hermetyzowanie wiedzy o domenie, używanie asynchronicznych komunikatów i uwidacznianie dobrze zdefiniowanych interfejsów API, które obejmują odpowiednie przechowywanie wersji w celu umożliwienia niezależnej ewolucji usług.

  • Tworzenie pod kątem potrzeb firmy. Podejmowanie decyzji projektowych na podstawie wymagań biznesowych. Zdefiniuj jasne cele, takie jak cele czasu odzyskiwania (RTO), dokumentowanie umów dotyczących poziomu usług (SLA) i celów poziomu usług (SLO), modelowanie aplikacji wokół domen biznesowych oraz planowanie wzrostu przy równoważeniu wymagań funkcjonalnych i niefunkcjonalnych.

  • Przeprowadź analizę trybu awarii dla usług. Systematycznie identyfikuj potencjalne punkty awarii w swoim systemie i zaplanuj strategię odzyskiwania. Aby od początku tworzyć niezawodność, należy przeprowadzić analizę trybu awarii (FMA) podczas faz architektury i projektowania. Oceń każdy tryb awarii według ryzyka i wpływu, a następnie określ odpowiednie mechanizmy reagowania i odzyskiwania.

Stosowanie tych zasad

Te zasady współpracują ze sobą w celu tworzenia odpornych, skalowalnych aplikacji:

  • Zacznij od wymagań biznesowych , aby zrozumieć, co tworzysz i dlaczego.

  • Projektowanie z uwzględnieniem awarii poprzez implementację mechanizmów samonaprawy i nadmiarowości.

  • Planuj skalowanie poprzez skalowanie horyzontalne, partycjonowanie oraz minimalną koordynację.

  • Użyj usług platformy Azure , aby zmniejszyć złożoność operacyjną i skupić się na logice biznesowej.

  • Obsługa operacji poprzez odpowiednie monitorowanie, rejestrowanie i automatyzację.

  • Zaprojektuj z myślą o zmianach, aby zapewnić, że aplikacja może rozwijać się zgodnie z potrzebami biznesowymi.