Przewodnik dotyczący architektury aplikacji na platformie AzureAzure Application Architecture Guide

W tym przewodniku przedstawiono ustrukturyzowane podejście do projektowania aplikacji na platformie Azure, które są skalowalne, bezpieczne, odporne i o wysokiej dostępności.This guide presents a structured approach for designing applications on Azure that are scalable, secure, resilient, and highly available. Jest on oparty na sprawdzonych rozwiązaniach, których nauczyliśmy się dzięki zaangażowaniu klientów.It is based on proven practices that we have learned from customer engagements.

WprowadzenieIntroduction

Chmura zmienia sposób projektowania i zabezpieczania aplikacji.The cloud is changing how applications are designed and secured. Zamiast monolitycznych projektów, aplikacje są rozłożone na mniejsze, zdecentralizowane usługi.Instead of monoliths, applications are decomposed into smaller, decentralized services. Te usługi komunikują się za pośrednictwem interfejsów API albo za pomocą asynchronicznej obsługi komunikatów lub zdarzeń.These services communicate through APIs or by using asynchronous messaging or eventing. Aplikacje są skalowane w poziomie, dodając nowe wystąpienia w miarę wzrostu potrzeb.Applications scale horizontally, adding new instances as demand requires.

Te trendy niosą ze sobą nowe wyzwania.These trends bring new challenges. Stan aplikacji jest rozproszony.Application state is distributed. Operacje są wykonywane równolegle i asynchronicznie.Operations are done in parallel and asynchronously. Aplikacje muszą być odporne, gdy wystąpią błędy.Applications must be resilient when failures occur. Osoby o złych intencjach nieustannie biorą za cel aplikacje.Malicious actors continuously target applications. Wdrożenia muszą być zautomatyzowane i przewidywalne.Deployments must be automated and predictable. Monitorowanie i dane telemetryczne są niezbędne do uzyskania wglądu w system.Monitoring and telemetry are critical for gaining insight into the system. Ten przewodnik ułatwia zorientowanie się w tych zmianach.This guide is designed to help you navigate these changes.

Tradycyjne lokalneTraditional on-premisesNowoczesne w chmurzeModern cloud
MonolityczneMonolithic
Zaprojektowane pod kątem przewidywalnej skalowalnościDesigned for predictable scalability
Relacyjna baza danychRelational database
Przetwarzanie zsynchronizowaneSynchronized processing
Projektowanie pod kątem unikania awarii (MTBF)Design to avoid failures (MTBF)
Sporadyczne duże aktualizacjeOccasional large updates
Ręczne zarządzanieManual management
Serwery typu „płatek śniegu”Snowflake servers
RozłożoneDecomposed
Zaprojektowane pod kątem elastycznego skalowaniaDesigned for elastic scale
Polyglot Persistence (połączenie różnych technologii magazynowania)Polyglot persistence (mix of storage technologies)
Przetwarzanie asynchroniczneAsynchronous processing
Projektowanie pod kątem awarii (MTTR)Design for failure (MTTR)
Częste małe aktualizacjeFrequent small updates
Automatyczne zarządzanie samodzielneAutomated self-management
Niezmienna infrastrukturaImmutable infrastructure

Struktura tego przewodnikaHow this guide is structured

Przewodnik dotyczący architektury aplikacji platformy Azure jest uporządkowany w postaci serii kroków, od wyboru architektury i projektu po wdrożenie.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. Dla każdego kroku udostępniono pomocne wskazówki, które ułatwią zaprojektowanie architektury aplikacji.For each step, there is supporting guidance that will help you with the design of your application architecture.

Diagram przedstawiający strukturę tego przewodnika z sekcjami tego artykułu odzwierciedlonymi na diagramie przepływu.

Style architekturyArchitecture styles

Pierwszy punkt decyzyjny ma zasadnicze znaczenie.The first decision point is the most fundamental. Jakiego rodzaju architekturę tworzysz?What kind of architecture are you building? Może to być to architektura mikrousług, bardziej tradycyjna architektura N-warstwowa aplikacji lub rozwiązanie danych big data.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Zidentyfikowaliśmy kilka odrębnych stylów architektury.We have identified several distinct architecture styles. Z każdym z nich wiążą się korzyści i problemy.There are benefits and challenges to each.

Więcej informacji: Style architekturyLearn more: Architecture styles

Wybór technologiTechnology choices

Znając typ tworzonej architektury, możesz teraz zacząć wybieranie dla niej głównych technologii.Knowing the type of architecture you are building, now you can start to choose the main technology pieces for the architecture. Wybór następujących technologii ma krytyczne znaczenie:The following technology choices are critical:

  • Usługa obliczeniowa dotyczy modelu hostowania zasobów obliczeniowych używanych do uruchamiania aplikacji.Compute refers to the hosting model for the computing resources that your applications run on. Aby uzyskać więcej informacji, zobacz Wybieranie usługi obliczeniowej.For more information, see Choose a compute service.

  • Magazyny danych obejmują bazy danych, ale także magazyny kolejek komunikatów, pamięci podręczne, dzienniki i inne dane, które aplikacja może utrwalać w magazynie.Data stores include databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage. Aby uzyskać więcej informacji, zobacz Wybieranie magazynu danych.For more information, see Choose a data store.

  • Technologie przesyłania komunikatów umożliwiają przesyłanie komunikatów asynchronicznych między składnikami systemu.Messaging technologies enable asynchronous messages between components of the system. Aby uzyskać więcej informacji, zobacz Wybieranie usługi przesyłania komunikatów.For more information, see Choose a messaging service.

Prawdopodobnie konieczne będzie podjęcie jeszcze dodatkowych decyzji w sprawie technologii, ale te trzy elementy (usługa obliczeniowa, dane i przesyłanie komunikatów) są najważniejsze dla większości aplikacji w chmurze i określają wiele aspektów projektu.You will probably have to make additional technology choices along the way, but these three elements (compute, data, and messaging) are central to most cloud applications and will determine many aspects of your design.

Projektowanie architekturyDesign the architecture

Po wybraniu stylu architektury i głównych składników technologicznych można przystąpić do opracowywania konkretnego projektu aplikacji.Once you have chosen the architecture style and the major technology components, you are ready to tackle the specific design of your application. Każda aplikacja jest inna, ale następujące zasoby mogą pomóc podczas tworzenia:Every application is different, but the following resources can help you along the way:

Architektury referencyjneReference architectures

W zależności od danego scenariusza jedna z naszych architektur referencyjnych może być dobrym punktem początkowym.Depending on your scenario, one of our reference architectures may be a good starting point. Każda architektura referencyjna zawiera zalecane rozwiązania z uwzględnieniem zagadnień dotyczących skalowalności, dostępności, zabezpieczeń, odporności i innych aspektów projektu.Each reference architecture includes recommended practices, along with considerations for scalability, availability, security, resilience, and other aspects of the design. Większość obejmuje również rozwiązanie możliwe do wdrożenia lub implementację referencyjną.Most also include a deployable solution or reference implementation.

Zasady projektowaniaDesign principles

Zidentyfikowaliśmy 10 zasad projektowania wysokiego poziomu, aby Twoja aplikacja była bardziej skalowalna, odporna i łatwa w obsłudze.We have identified 10 high-level design principles that will make your application more scalable, resilient, and manageable. Te zasady projektowania dotyczą wszystkich stylów architektury.These design principles apply to any architecture style. W trakcie procesu projektowania należy pamiętać o tych 10 podstawowych zasadach projektowania wysokiego poziomu.Throughout the design process, keep these 10 high-level design principles in mind. Aby uzyskać więcej informacji, zobacz Zasady projektowania.For more information, see Design principles.

Wzorce projektoweDesign patterns

Wzorce projektowe oprogramowania są powtarzalnymi wzorcami będącymi sprawdzonym sposobem rozwiązywania konkretnych problemów.Software design patterns are repeatable patterns that are proven to solve specific problems. Dzięki naszemu katalogowi wzorców projektowych w chmurze można stawić czoło konkretnym wyzwaniom w systemach rozproszonych.Our catalog of Cloud design patterns addresses specific challenges in distributed systems. Dotyczą one takich aspektów jak dostępność, odporność, wydajność i zabezpieczenia.They address aspects such as availability, resiliency, performance, and security. Nasz katalog wzorców projektowych możesz znaleźć tutaj.You can find our catalog of design patterns here.

Najlepsze rozwiązaniaBest practices

Nasze artykuły dotyczące najlepszych rozwiązań obejmują różne zagadnienia związane z projektowaniem, takie jak projektowanie interfejsu API, skalowanie automatyczne, partycjonowanie danych, buforowanie i tak dalej.Our best practices articles cover various design considerations including API design, autoscaling, data partitioning, caching, and so forth. Zapoznaj się z nimi i zastosuj najlepsze rozwiązania, które są odpowiednie dla Twojej aplikacji.Review these and apply the best practices that are appropriate for your application.

Najlepsze rozwiązania dotyczące zabezpieczeńSecurity best practices

W naszych najlepszych rozwiązaniach z zakresu zabezpieczeń opisaliśmy, jak zagwarantować, aby poufność, integralność i dostępność Twojej aplikacji nie została naruszona przez atakujących.Our security best practices describe how to ensure that the confidentiality, integrity, and availability of your application aren't compromised by malicious actors.

Filary jakościQuality pillars

Skuteczna aplikacja w chmurze koncentruje się na pięciu filarach jakości oprogramowania: Optymalizacja kosztów, doskonałość operacyjna, wydajność, niezawodność i bezpieczeństwo.A successful cloud application will focus on five pillars of software quality: Cost optimization, Operational excellence, Performance efficiency, Reliability, and Security.

Skorzystaj z tematu Dobrze zaprojektowana struktura platformy Microsoft Azure, aby ocenić swoją architekturę pod względem tych pięciu filarów.Leverage the Microsoft Azure Well-Architected Framework to assess your architecture across these five pillars.

Następne krokiNext steps