Azure-AnwendungsarchitekturleitfadenAzure Application Architecture Guide

Dieser Leitfaden stellt eine strukturierte Vorgehensweise zum Entwerfen von Anwendungen in Azure vor, die skalierbar, resilient und hochverfügbar sind.This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. Er basiert auf bewährten Methoden, die wir im Rahmen von Kundeninteraktionen erarbeitet haben.It is based on proven practices that we have learned from customer engagements.

EinführungIntroduction

Die Cloud verändert die Art und Weise, wie Anwendungen entworfen werden.The cloud is changing how applications are designed. Anwendungen werden nicht mehr als Monolithen entwickelt, sondern in kleinere, dezentralisierte Dienste zerlegt.Instead of monoliths, applications are decomposed into smaller, decentralized services. Diese Dienste kommunizieren über APIs oder durch asynchrone Nachrichten bzw. Ereignisse.These services communicate through APIs or by using asynchronous messaging or eventing. Anwendungen lassen sich durch bedarfsgesteuertes Hinzufügen neuer Instanzen horizontal skalieren.Applications scale horizontally, adding new instances as demand requires.

Diese Trends bringen neue Herausforderung mit sich.These trends bring new challenges. Der Anwendungszustand ist verteilt.Application state is distributed. Vorgänge werden parallel und asynchron ausgeführt.Operations are done in parallel and asynchronously. Bei Ausfällen müssen Anwendungen resilient sein.Applications must be resilient when failures occur. Bereitstellungen müssen automatisiert und vorhersagbar sein.Deployments must be automated and predictable. Überwachung und Telemetriedaten spielen eine entscheidend Rolle, um Einblick in das System zu erhalten.Monitoring and telemetry are critical for gaining insight into the system. Dieser Leitfaden soll Sie auf folgende Änderungen vorbereiten.This guide is designed to help you navigate these changes.

Konventionelle lokale SystemeTraditional on-premisesModerne CloudModern cloud
MonolithischMonolithic
Entworfen mit Blick auf vorhersagbare SkalierbarkeitDesigned for predictable scalability
Relationale DatenbankRelational database
Synchronisierte VerarbeitungSynchronized processing
Entwurf mit Blick auf Vermeidung von Ausfällen (MTBF)Design to avoid failures (MTBF)
Gelegentliche große UpdatesOccasional large updates
Manuelle VerwaltungManual management
Snowflake-ServerSnowflake servers
ZerlegtDecomposed
Entworfen mit Blick auf elastische SkalierungDesigned for elastic scale
Polyglot Persistence (Kombination aus Speichertechnologien)Polyglot persistence (mix of storage technologies)
Asynchrone VerarbeitungAsynchronous processing
Entwurf mit Blick auf Ausfälle (MTTR)Design for failure (MTTR)
Häufige geringfügige UpdatesFrequent small updates
Automatisierte SelbstverwaltungAutomated self-management
Unveränderliche InfrastrukturImmutable infrastructure

Aufbau dieses LeitfadensHow this guide is structured

Der Azure-Anwendungsarchitekturleitfaden ist als Abfolge von Schritten aufgebaut, die sich von der Architektur über den Entwurf bis hin zur Implementierung erstrecken.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. Zu jedem Schritt werden unterstützende Anweisungen bereitgestellt, die Sie beim Entwurf der Anwendungsarchitektur unterstützen.For each step, there is supporting guidance that will help you with the design of your application architecture.

ArchitekturstileArchitecture styles

Der erste Entscheidungspunkt ist gleichzeitig der wichtigste.The first decision point is the most fundamental. Welche Art von Architektur erstellen Sie?What kind of architecture are you building? Ist eine Microservicearchitektur, eine konventionellere Anwendung mit n-Schichten oder eine Big Data-Lösung das Ziel?It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Wir haben unterschiedliche Architekturstile ermittelt.We have identified several distinct architecture styles. Jeder Stil weist Vor- und Nachteile auf.There are benefits and challenges to each.

Weitere Informationen: ArchitekturstileLearn more: Architecture styles

Auswahl der TechnologieTechnology choices

Wenn Sie wissen, welche Art von Architektur Sie entwickeln, können Sie jetzt mit der Auswahl der wichtigsten Technologiekomponenten für die Architektur beginnen.Knowing the type of architecture you are building, now you can start to choose the main technology pieces for the architecture. Die folgenden Technologieoptionen sind wichtig:The following technology choices are critical:

  • Compute bezieht sich auf das Hostingmodell für die Computeressourcen, auf denen Ihre Anwendungen ausgeführt werden.Compute refers to the hosting model for the computing resources that your applications run on. Weitere Informationen finden Sie unter Übersicht über Azure-Computeoptionen.For more information, see Choose a compute service.

  • Zu Datenspeichern zählen Datenbanken, aber auch Speicher für Nachrichtenwarteschlangen, Caches, Protokolle und sonstige Daten, die eine Anwendung in einem Speicher speichern kann.Data stores include databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage. Weitere Informationen finden Sie unter Auswählen des richtigen Datenspeichers.For more information, see Choose a data store.

  • Messagingtechnologien ermöglichen asynchrone Nachrichten zwischen den Komponenten des Systems.Messaging technologies enable asynchronous messages between components of the system. Weitere Informationen finden Sie unter Asynchrone Messagingoptionen in Azure.For more information, see Choose a messaging service.

Wahrscheinlich werden Sie weitere Technologieentscheidungen treffen müssen, aber diese drei Elemente (Compute, Daten und Messaging) sind für die meisten Cloudanwendungen von zentraler Bedeutung und bestimmen viele Aspekte Ihres Entwurfs.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.

Entwerfen der ArchitekturDesign the architecture

Nachdem Sie den Architekturstil und die wichtigsten Technologiekomponenten ausgewählt haben, können Sie sich mit dem spezifischen Entwurf Ihrer Anwendung befassen.Once you have chosen the architecture style and the major technology components, you are ready to tackle the specific design of your application. Jede Anwendung ist anders, aber die folgenden Ressourcen können Ihnen dabei helfen:Every application is different, but the following resources can help you along the way:

ReferenzarchitekturenReference architectures

Abhängig von Ihrem Szenario ist eine unserer Referenzarchitekturen unter Umständen ein guter Ausgangspunkt.Depending on your scenario, one of our reference architectures may be a good starting point. Jede Referenzarchitektur ist mit empfohlenen Methoden sowie Überlegungen in Bezug auf die Skalierbarkeit, Verfügbarkeit, Sicherheit, Resilienz und auf andere Entwurfsaspekte versehen.Each reference architecture includes recommended practices, along with considerations for scalability, availability, security, resilience, and other aspects of the design. Die meisten beinhalten außerdem eine bereitstellbare Lösung oder Referenzimplementierung.Most also include a deployable solution or reference implementation.

EntwurfsprinzipienDesign principles

Wir haben zehn allgemeine Entwurfsprinzipien identifiziert, die die Skalierbarkeit, Resilienz und Verwaltbarkeit Ihrer Anwendung optimieren.We have identified 10 high-level design principles that will make your application more scalable, resilient, and manageable. Diese Entwurfsprinzipien gelten für alle Architekturstile.These design principles apply to any architecture style. Beim Entwurfsprozess sollten Sie die folgenden zehn allgemeinen Entwurfsprinzipien berücksichtigen.Throughout the design process, keep these 10 high-level design principles in mind. Weitere Informationen finden Sie unter Zehn Entwurfsprinzipien für Azure-Anwendungen.For more information, see Design principles.

EntwurfsmusterDesign patterns

Softwareentwurfsmuster sind wiederholbare Muster, die nachweislich bestimmte Muster lösen.Software design patterns are repeatable patterns that are proven to solve specific patterns. In unserem Katalog mit Cloudentwurfsmustern werden bestimmte Herausforderungen in verteilten Systemen behandelt.Our catalog of Cloud design patterns addresses specific challenges in distributed systems. Sie behandeln Aspekte wie Verfügbarkeit, Resilienz, Leistung und Sicherheit.They address aspects such as availability, resiliency, performance, and security. Den Katalog mit Entwurfsmustern finden Sie hier.You can find our catalog of design patterns here.

Bewährte MethodenBest practices

In unseren Artikeln mit bewährten Methoden werden verschiedene Entwurfsüberlegungen behandelt, u. a. API-Design, automatische Skalierung, Datenpartitionierung, Zwischenspeicherung usw.Our best practices articles cover various design considerations including API design, autoscaling, data partitioning, caching, and so forth. Sehen Sie sich diese bewährten Methoden an, und wenden Sie die für Ihre Anwendung geeigneten Methoden an.Review these and apply the best practices that are appropriate for your application.

QualitätssäulenQuality pillars

Eine erfolgreiche Cloudanwendung basiert auf fünf Säulen der Softwarequalität: Kosten, DevOps, Resilienz, Skalierbarkeit und Sicherheit.A successful cloud application will focus on five pillars of software quality: Cost, DevOps, resiliency, scalability, and security.

SäulePillar BESCHREIBUNGDescription
KostenCost Verwalten der Kosten zur Maximierung des erzielten WertsManaging costs to maximize the value delivered.
DevOpsDevOps Operative Prozesse, die für die Ausführung eines Systems in der Produktion sorgen.Operations processes that keep a system running in production.
ResilienzResiliency Die Fähigkeit eines Systems, nach Ausfällen eine Wiederherstellung durchzuführen und die Betriebsbereitschaft sicherzustellen.The ability of a system to recover from failures and continue to function.
SkalierbarkeitScalability Die Fähigkeit eines Systems, sich an Laständerungen anzupassenThe ability of a system to adapt to changes in load.
SicherheitSecurity Schützen von Anwendungen und Daten vor Bedrohungen.Protecting applications and data from threats.

Verwenden Sie das Azure Architecture Framework, um Ihre Architektur anhand dieser fünf Säulen zu bewerten.Use the Azure Architecture Framework to assess your architecture across these five pillars.

Nächste SchritteNext steps