Guide för Azure-programarkitekturAzure Application Architecture Guide

I den här guiden presenteras en strukturerad metod för att designa program på Azure som är skalbara, återhämtningsbara och mycket tillgängliga.This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. Den baseras på beprövade metoder som vi har lärt oss i arbetet med kunder.It is based on proven practices that we have learned from customer engagements.

IntroduktionIntroduction

Molnet ändrar designmetoderna för program.The cloud is changing the way applications are designed. Istället för monoliter bryts programmen ned i mindre, decentraliserade tjänster.Instead of monoliths, applications are decomposed into smaller, decentralized services. De här tjänsterna kommunicerar via API:er eller genom att använda asynkrona meddelanden eller händelser.These services communicate through APIs or by using asynchronous messaging or eventing. Program skalas vågrätt, vilket ger nya instanser efter behov.Applications scale horizontally, adding new instances as demand requires.

Med de här trenderna följer nya utmaningar.These trends bring new challenges. Programtillstånd fördelas.Application state is distributed. Åtgärder utförs parallellt och asynkront.Operations are done in parallel and asynchronously. Systemet som helhet måste vara återhämtningsbart när fel inträffar.The system as a whole must be resilient when failures occur. Distributioner måste vara automatiserade och förutsägbara.Deployments must be automated and predictable. Övervakning och telemetri är avgörande för att få insyn i systemet.Monitoring and telemetry are critical for gaining insight into the system. Azure Application Architecture-guiden har utformats för att hjälpa dig att navigera bland de här ändringarna.The Azure Application Architecture Guide is designed to help you navigate these changes.

Traditionella lokalaTraditional on-premisesModerna i molnetModern cloud
Monolitiska, centraliseradeMonolithic, centralized
Design för förutsägbar skalbarhetDesign for predictable scalability
RelationsdatabasRelational database
Stark konsekvensStrong consistency
Seriell och synkroniserad bearbetningSerial and synchronized processing
Design för att undvika fel (MTBF)Design to avoid failures (MTBF)
Enstaka stora uppdateringarOccasional big updates
Manuell hanteringManual management
Snowflake-servrarSnowflake servers
Uppdelade, decentraliseradeDecomposed, de-centralized
Design för elastisk skalaDesign for elastic scale
Polyglott beständighet (blandning av lagringstekniker)Polyglot persistence (mix of storage technologies)
Slutlig konsekvensEventual consistency
Parallell och asynkron bearbetningParallel and asynchronous processing
Design för fel (MTTR)Design for failure (MTTR)
Frekventa små uppdateringarFrequent small updates
Automatiserad självhanteringAutomated self-management
Oföränderlig infrastrukturImmutable infrastructure

Den här guiden är avsedd för programarkitekter, utvecklare och driftsteam.This guide is intended for application architects, developers, and operations teams. Det är inte en instruktionsguide för användning av enskilda Azure-tjänster.It's not a how-to guide for using individual Azure services. När du har läst guiden kommer du att förstå de arkitektoniska mönstren och bästa metoderna att använda när du bygger på Azure-molnplattformen.After reading this guide, you will understand the architectural patterns and best practices to apply when building on the Azure cloud platform.

Guidens strukturHow this guide is structured

Azure Application Architecture-guiden ordnas i en rad steg, från arkitektur och design till implementering.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. För varje steg finns det vägledning som hjälper dig med designen av programarkitekturen.For each step, there is supporting guidance that will help you with the design of your application architecture.

ArkitekturformatArchitecture styles

Den första beslutspunkten är den mest grundläggande.The first decision point is the most fundamental. Vilken typ av arkitektur bygger du?What kind of architecture are you building? Det kan vara en arkitektur för mikrotjänster, ett mer traditionellt N-nivåprogram eller en stordatalösning.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Vi har identifierat flera olika arkitekturformat.We have identified several distinct architecture styles. Det finns fördelar och utmaningar med varje format.There are benefits and challenges to each.

Läs mer:Learn more:

TeknikvalTechnology choices

Två teknikval bör göras tidigt, eftersom de påverkar hela arkitekturen.Two technology choices should be decided early on, because they affect the entire architecture. Det här är alternativen för beräkningstjänster och datalager.These are the choice of compute service and data stores. Beräkning är värdmodellen för de beräkningsresurser som dina program körs på.Compute refers to the hosting model for the computing resources that your applications runs on. Datalager omfattar databaser men även lagring för meddelandeköer, cacheminnen, loggar och allt annat som ett program kan spara i ett lagringsutrymme.Data stores includes databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage.

Om din design innehåller en meddelandeinfrastruktur beror valet av meddelandetjänst på avsikten med och kraven på meddelandet.If your design includes a messaging infrastructure, the choice of messaging service depends on the intent and requirements of the message.

Läs mer:Learn more:

DesignprinciperDesign principles

Vi har identifierat tio designprinciper på hög nivå som kommer att göra programmet mer skalbart, återhämtningsbart och hanterbart.We have identified ten high-level design principles that will make your application more scalable, resilient, and manageable. Dessa designprinciper gäller för alla arkitekturformat.These design principles apply to any architecture styles. Ha de här tio designprinciperna på hög nivå i åtanke under designprocessen.Throughout the design process, keep these ten high-level design principles in mind. Fundera sedan över bästa metoder för arkitekturens specifika aspekter, till exempel automatisk skalning, cachelagring, datapartitionering, API-design med mera.Then consider the set of best practices for specific aspects of the architecture, such as auto-scaling, caching, data partitioning, API design, and others.

Läs mer:Learn more:

KvalitetsgrundpelareQuality pillars

Ett lyckat molnprogram fokuserar på fem grundpelare för programkvalitet: Skalbarhet, tillgänglighet, återhämtning, hantering och säkerhet.A successful cloud application will focus on five pillars of software quality: Scalability, availability, resiliency, management, and security. Använd våra checklistor för designgranskning för att granska arkitekturen enligt de här kvalitetsgrundpelarna.Use our design review checklists to review your architecture according to these quality pillars.

Mer utbildningMore learning

Läs Molnkoncept – principer för molnbaserad databehandling för en guidad introduktion till vanliga tjänster för molnbaserad databehandling, fördelar med molnbaserad databehandling och moduler för molndistribution.For a guided introduction to common cloud computing services, benefits of cloud computing, and cloud deployment modules, review Cloud Concepts - Principles of Cloud Computing.

Läs Grundpelare för en bra Azure-arkitektur för en mer teknisk beskrivning av grundpelarna bakom en molnlösning och principerna som styr utvecklingen av en solid arkitektur.For a more technical perspective on the key pillars of a cloud solution and principles for creating a solid architectural foundation, review Pillars of a great Azure Architecture.