Podstawy architektury aplikacji platformy Azure
Aplikacja przeznaczona dla obciążeń hostowanych w chmurze spełnia wymagania biznesowe rozwiązania i zawiera natywne składniki i funkcje chmury. Dobrze zaprojektowana aplikacja w chmurze uwzględnia zagadnienia dotyczące niezawodności, zabezpieczeń, kosztów, operacji i wydajności. Te zagadnienia są dostosowane do wymagań biznesowych i do określonych cech i zapewnianych funkcji platformy hostingu w chmurze.
Projektowanie aplikacji dla obciążeń w chmurze nie wymaga żadnego określonego stylu aplikacji, takiego jak mikrousługi. Hosting w chmurze sprawia jednak, że wiele wzorców projektowych aplikacji jest bardziej przystępnych niż hostowanie rozwiązań, które nie oferują natywnie różnorodnych opcji platformy danych & aplikacji, możliwości skalowania, mechanizmów kontroli zabezpieczeń i opcji obsługi komunikatów. Aby to osiągnąć, przetwarzanie w chmurze korzysta z aplikacji, które są z założenia rozłożone na mniejsze, zdecentralizowane usługi. Te usługi komunikują się za pośrednictwem interfejsów API lub, wykorzystując asynchroniczne przesyłanie komunikatów albo obsługę zdarzeń. Aplikacje skalują się poziomo, dodając nowe instancje zgodnie z zapotrzebowaniem.
Aplikacje korzystające z platform hostingu aplikacji w chmurze, możliwości obsługi komunikatów i usług rozłożonych podlegają problemom typowym dla systemu rozproszonego. Stan aplikacji jest rozproszony. Operacje są wykonywane równolegle i asynchronicznie. Aplikacje muszą być odporne, gdy wystąpią błędy. Złośliwi aktorzy stale atakują aplikacje. Wdrożenia muszą być zautomatyzowane i przewidywalne. Monitorowanie i telemetria mają kluczowe znaczenie dla uzyskania wglądu w system.
Typowy projekt na miejscu
- Funkcje i dane monolityczne i kolokowane
- Zaprojektowana z myślą o przewidywalnej skali lub nadmiernym zapasie.
- Relacyjna baza danych
- Synchronizowane przetwarzanie
- Projektowanie w celu uniknięcia błędów (MTBF)
- Zasoby dostarczane przez funkcje IT
- Serwery płatków śniegu i zwierząt domowych
typowy projekt chmury
- Dekomposowane i rozproszone funkcje i dane
- Zaprojektowany z myślą o elastycznej skali
- Trwałość poliglotyczna (kombinacja technologii magazynowania)
- Przetwarzanie asynchroniczne
- Projektowanie w celu wytrzymania awarii (MTBF) i projektowania pod kątem awarii (MTTR)
- Zasoby są przydzielane za pośrednictwem infrastruktury jako kodu zgodnie z potrzebami
- Niezmienna i zastępowalna infrastruktura
Projektowanie aplikacji dla platformy Azure
Aplikacje muszą być projektowane przez architektów chmury, aby w szczególności korzystać z hostingu w chmurze i podejmować strategiczne decyzje dotyczące kompromisów. Platforma Azure oferuje zasoby, które pomagają architektom osiągnąć dobry projekt i prowadzą zespoły programistyczne w ich implementacji. Aby osiągnąć projekt obciążeń i aplikacji, architekci muszą:
- Dostosuj do organizacyjnych standardów wdrażania chmury
- Design zgodnie z Azure Well-Architected Framework
- Omówienie typowych stylów architektury , obciążeń i najlepszych rozwiązań
- Użyj wzorców projektowych, aby rozwiązać typowe problemy i wprowadzić strategiczne kompromisy
- Dokonać dobrze poinformowanych wyborów technologicznych
- Ocena architektur referencyjnych
- Przeglądanie przewodników specyficznych dla usługi
Platforma Azure może służyć do hostowania i ponownego hostowania aplikacji, które nie zostały specjalnie zaprojektowane dla chmury. Aplikacje o dużym obciążeniu mogą być dostosowywane w celu wykorzystania funkcji chmury, ale przeniesienie bez zmian aplikacji przeznaczonej dla stałych zasobów i skalowania nie jest uznawane za wdrożenie natywne dla chmury.
Dopasowanie do standardów wdrażania chmury organizacyjnej
Twoja aplikacja jest częścią zakresu pracy, który prawdopodobnie podlega standardom organizacyjnym i zarządzaniu. Organizacje o dowolnym rozmiarze i dojrzałości do chmury mogą używać struktury wdrażania chmury dla platformy Azure, aby sformalizować strategię wdrażania w całej platformie Azure, gotowość, innowacje, zarządzanie & ład i bezpieczeństwo. Częścią tego podejścia jest standaryzacja spójnego podejścia między obciążeniami, takimi jak używanie stref docelowych platformy Azure . Strefy docelowe platformy Azure oferują połączenie ładu w całej organizacji, jednocześnie umożliwiając zespołom obciążeniowym i architektom demokratyczny dostęp do zasobów w celu realizacji lokalnych celów biznesowych. Jako architekt projektujący aplikacje, istotne jest, aby zrozumieć otoczenie makro oraz oczekiwania, w jakich będzie działało obciążenie, takie jak strefy lądowania aplikacji.
Strategia wdrażania platformy Azure w organizacji nie powinna mieć wpływu na wybór stylu architektury, ale może to spowodować ograniczenie wyboru technologii lub granic zabezpieczeń.
Projektowanie zgodnie z platformą Azure Well-Architected Framework
Wszystkie obciążenia można ocenić w projekcie i implementacji za pomocą różnych obiektywów. Platforma Azure udostępnia platformę Azure Well-Architected Framework, aby pomóc architektowi obciążeń ocenić i dopasować swoje decyzje do zasad projektowania w pięciu kluczowych filarach architektury.
Ogólnie rzecz biorąc, przestrzeganie tych zasad i ocena kompromisów między tymi filarami architektury tworzy projekt spełniający wymagania biznesowe i jest wystarczająco trwały, konserwowany, bezpieczny, zoptymalizowany pod kątem działania na platformie Azure. Te decyzje powinny mieć wpływ na wybór stylu architektury i wprowadzić ograniczenia dotyczące wyborów technologicznych lub granic zabezpieczeń, ponieważ odnoszą się one do potrzeb konkretnego obciążenia.
Twój zespół lub organizacja może mieć inne zasady projektowania, w tym zasady, z których można ocenić obciążenie, na przykład zrównoważonego rozwoju i etyki.
Omówienie typowych stylów architektury
Kiedy zrozumiesz środowisko organizacyjne, w którym będzie działać twoja aplikacja, i posiadasz ogólne podstawy dobrej architektury z platformy Azure Well-Architected Framework, zazwyczaj pierwszym punktem decyzyjnym jest to, jaki rodzaj architektury tworzysz? Może to być architektura mikrousług, bardziej tradycyjna aplikacja N-warstwowa lub rozwiązanie do obsługi danych big data. Są to odrębne style architektury odpowiednie do różnych celów. Podczas oceniania stylów architektury wybierasz również modele przechowywania danych, aby zarządzać stanem. Istnieją korzyści i wyzwania związane z tymi decyzjami.
Oceń różne style architektury i modele magazynu danych .
Obciążenia w Azure Framework Well-Architected
Struktura Well-Architected zawiera sekcję poświęconą odrębnym klasyfikacjom lub typom obciążeń o nazwie obciążenia platformy Azure Well-Architected Framework. W tej sekcji można znaleźć artykuły dotyczące obciążeńo znaczeniu krytycznym, sztucznej inteligencji i uczenia maszynowego, lub oprogramowania jako usługi (SaaS). Te artykuły specyficzne dla obciążenia przyjmują pięć podstawowych filarów platformy Well-Architected Framework i stosują je do określonej domeny. Jeśli aplikacja jest częścią obciążenia, które jest zgodne z jednym z tych udokumentowanych wzorców, zapoznaj się z odpowiednimi wskazówkami, aby ułatwić podejście do projektu, postępując zgodnie z zestawem zasad i rekomendacji specyficznych dla obciążenia w typowych obszarach projektowania, takich jak platforma aplikacji, platforma danych, sieć i nie tylko. Niektóre typy obciążeń mogą korzystać z wyboru określonego stylu architektury lub modelu magazynu danych.
Najlepsze rozwiązania
Zapoznaj się z artykułami Best practices in cloud applications (Najlepsze rozwiązania w aplikacjach w chmurze), aby dowiedzieć się więcej o różnych zagadnieniach dotyczących projektowania, takich jak projektowanie interfejsu API, skalowanie automatyczne, partycjonowanie danych, buforowanie itd. Zapoznaj się z tymi rozwiązaniami i zastosuj najlepsze rozwiązania, które są odpowiednie dla aplikacji.
Używanie wzorców projektowych do rozwiązywania typowych problemów i wprowadzanie strategicznych kompromisów
Aplikacja ma unikatowe wymagania biznesowe, cele i miary sukcesu. Architekt zdekomponuje te funkcjonalne i niefunkcjonalne wymagania w dyskretnych działaniach, które współpracują ze sobą, aby osiągnąć rozwiązanie, z którym ty i twoi użytkownicy będą zadowoleni. Działania te są często na tyle powszechne, że ustanawiały wzorce używane w całej branży oprogramowania. Te wzorce projektowe w oprogramowaniu to nazwane i powtarzalne sposoby stosowane do przetwarzania lub przechowywania danych, które sprawdzają się w rozwiązywaniu konkretnych problemów z uwzględnieniem znanych kompromisów.
Katalog wzorców projektowych dla chmury Azure rozwiązuje konkretne wyzwania w systemach rozproszonych.
Podejmowanie dobrze świadomych wyborów technologicznych
Po określeniu typu architektury, którą tworzysz, i wzorcach projektowych, które mają być używane, możesz zacząć wybierać główne elementy technologiczne dla architektury. Następujące opcje technologiczne mają kluczowe znaczenie:
Compute odnosi się do modelu hostingu dla zasobów obliczeniowych (platformy aplikacji), na których działają aplikacje. Aby uzyskać więcej informacji, zobacz Wybieranie usługi obliczeniowej.
- Platforma Azure oferuje również specjalne wskazówki dotyczące niektórych określonych platform aplikacji, takich jak Wybieranie usługi kontenera platformy Azure i opcji hybrydowych platformy Azure.
Magazyny danych obejmują bazy danych, ale także magazyn plików, pamięci podręcznych, dzienników i innych elementów, które aplikacja może utrwalać w magazynie. Aby uzyskać więcej informacji, zobacz Wybierz magazyn danych w usłudze Azure i Przeglądnij swoje opcje magazynu.
technologie przesyłania wiadomości umożliwiają asynchroniczną wymianę wiadomości między składnikami systemu. Aby uzyskać więcej informacji, zobacz Wybierz usługę wiadomości.
Technologie sztucznej inteligencji (AI) rozwiązują problemy, które byłyby złożone obliczeniowo do zaimplementowania w tradycyjnym kodzie aplikacyjnym. Aby uzyskać pomoc dotyczącą tych decyzji, zobacz , jak wybrać technologię usług Azure AI.
Prawdopodobnie dokonasz innych wyborów technologicznych po drodze, ale te cztery elementy (obliczenia, dane, komunikaty i sztuczna inteligencja) są kluczowe dla większości aplikacji w chmurze i określają wiele aspektów projektu.
Ocena architektur referencyjnych
Centrum architektury platformy Azure jest domem dla pomysłów na rozwiązania, przykładowych obciążeń i architektur referencyjnych. Te artykuły zazwyczaj zawierają listę typowych składników i zagadnień dostosowanych do platformy Azure Well-Architected Framework. Niektóre z tych artykułów obejmują możliwe do wdrożenia rozwiązanie hostowane w usłudze GitHub. Chociaż jest mało prawdopodobne, że którykolwiek z tych scenariuszy jest dokładnie tym, co tworzysz, może to być dobry punkt wyjścia dla Ciebie, aby dostosować wskazówki do konkretnych potrzeb.
Przejrzyj katalog architektur tutaj w Centrum architektury platformy Azure.
Przeglądanie przewodników specyficznych dla usługi
Po wybraniu podstawowej technologii i skonsultowaniu się z architekturami referencyjnymi ważne jest uzyskanie dostępu do dokumentacji i wskazówek specyficznych dla usług w architekturze. Skorzystaj z poniższych zasobów, aby uzyskać wskazówki specyficzne dla usługi.
Przewodniki usług Azure Well-Architected Framework: Framework Well-Architected zawiera artykuły obejmujące wiele usług oferowanych przez Azure, gdzie pięć filarów architektury jest stosowanych specjalnie do tej usługi.
Znajdź i przeczytaj przewodnik po usłudze dla wszystkich zasobów, które są traktowane jako część projektu aplikacji.
przewodniki dotyczące niezawodności platformy Azure: Centrum niezawodności platformy Azure zawiera szczegółowe artykuły dotyczące charakterystyki niezawodności wielu usług platformy Azure. W tych artykułach opisano niektóre z najbardziej krytycznych tematów dotyczących niezawodności, takich jak obsługa strefy dostępności i oczekiwane zachowanie podczas różnych typów awarii.
Znajdź i przeczytaj przewodnik dotyczący niezawodności dla wszystkich zasobów, które są uznawane za część projektu aplikacji.
Pochodzi z innej chmury?
Jeśli znasz projektowanie aplikacji u innego dostawcy usług w chmurze, wiele z tych samych podstaw przekłada się. Na przykład style architektury i wzorce projektowania chmury są koncepcyjnie niezależne od chmury. Przejrzyj odpowiednie artykuły przewodnika dotyczące mapowania usług i architektury.