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.
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.