Guía de la arquitectura de aplicaciones en AzureAzure Application Architecture Guide

Esta guía presenta un enfoque estructurado para diseñar aplicaciones de Azure que sean escalables, resistentes y con una alta disponibilidad.This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. Se basa en prácticas probadas que hemos aprendido a través de las interacciones con los clientes.It is based on proven practices that we have learned from customer engagements.

IntroducciónIntroduction

La nube está cambiando la forma en que se diseñan las aplicaciones.The cloud is changing the way applications are designed. En lugar de ser monolitos, las aplicaciones se descomponen en servicios menores y descentralizados.Instead of monoliths, applications are decomposed into smaller, decentralized services. Estos servicios se comunican a través de API o mediante el uso de eventos o de mensajería asincrónica.These services communicate through APIs or by using asynchronous messaging or eventing. Las aplicaciones se escalan horizontalmente, agregando nuevas instancias, tal y como exigen las necesidades.Applications scale horizontally, adding new instances as demand requires.

Estas tendencias agregan nuevos desafíos.These trends bring new challenges. El estado de las aplicaciones se distribuye.Application state is distributed. Las operaciones se realizan en paralelo y de forma asincrónica.Operations are done in parallel and asynchronously. El sistema como un todo debe ser resistente cuando se producen errores.The system as a whole must be resilient when failures occur. Las implementaciones deben estar automatizadas y ser predecibles.Deployments must be automated and predictable. La supervisión y la telemetría son fundamentales para obtener una visión general del sistema.Monitoring and telemetry are critical for gaining insight into the system. La Guía de la arquitectura de aplicaciones de Azure está diseñada para ayudarle a sortear estos cambios.The Azure Application Architecture Guide is designed to help you navigate these changes.

Local tradicionalTraditional on-premisesNube modernaModern cloud
Monolítica y centralizadaMonolithic, centralized
Diseño para una escalabilidad predecibleDesign for predictable scalability
Base de datos relacionalRelational database
Coherencia máximaStrong consistency
Procesamiento serie y sincronizadoSerial and synchronized processing
Diseño para evitar errores (MTBF)Design to avoid failures (MTBF)
Actualizaciones grandes ocasionalesOccasional big updates
Administración manualManual management
Servidores de copo de nieveSnowflake servers
Descompuesta y descentralizadaDecomposed, de-centralized
Diseño para escalado flexibleDesign for elastic scale
Persistencia de Polyglot (combinación de tecnologías de almacenamiento)Polyglot persistence (mix of storage technologies)
Coherencia finalEventual consistency
Procesamiento asincrónico y paraleloParallel and asynchronous processing
Diseño para errores (MTTR)Design for failure (MTTR)
Pequeñas actualizaciones frecuentesFrequent small updates
Administración automatizadaAutomated self-management
Infraestructura inmutableImmutable infrastructure

Esta guía está destinada a los arquitectos de aplicaciones, los desarrolladores y los equipos de operaciones.This guide is intended for application architects, developers, and operations teams. No es una guía de procedimientos para usar servicios individuales de Azure.It's not a how-to guide for using individual Azure services. Después de leerla, comprenderá los patrones arquitectónicos y las prácticas recomendadas que se aplican al crear en la plataforma de nube de Azure.After reading this guide, you will understand the architectural patterns and best practices to apply when building on the Azure cloud platform. También puede descargar una versión de la guía para libro electrónico.You can also download an e-book version of the guide.

Cómo se estructura esta guíaHow this guide is structured

La Guía de la arquitectura de aplicaciones de Azure se organiza como una serie de pasos, desde la arquitectura y el diseño a la implementación.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. Para cada paso, hay instrucciones auxiliares que le ayudarán con el diseño de la arquitectura de la aplicación.For each step, there is supporting guidance that will help you with the design of your application architecture.

Estilos de arquitecturaArchitecture styles

La primera decisión es la más importante.The first decision point is the most fundamental. ¿Qué tipo de arquitectura va a crear?What kind of architecture are you building? Puede ser una arquitectura de microservicios, una aplicación con n niveles más tradicional o una solución de macrodatos.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Identificamos varios estilos de arquitectura distintos.We have identified several distinct architecture styles. Cada uno presenta ventajas y desafíos.There are benefits and challenges to each.

Más información:Learn more:

Opciones de tecnologíaTechnology choices

Dos opciones de tecnología deben decidirse en una fase temprana, ya que afectan a toda la arquitectura.Two technology choices should be decided early on, because they affect the entire architecture. Se trata de la elección del servicio de proceso y de los almacenes de datos.These are the choice of compute service and data stores. Proceso hace referencia al modelo de hospedaje para los recursos informáticos en los que las aplicaciones se ejecutan.Compute refers to the hosting model for the computing resources that your applications runs on. Los almacenes de datos incluyen las bases de datos y también el almacenamiento destinado a las colas de mensajes, las memorias caché, los datos de registros y cualquier otro que una aplicación pueda conservar en algún tipo de almacenamiento.Data stores includes databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage.

Más información:Learn more:

Principios de diseñoDesign principles

Hemos identificado diez principios de diseño de alto nivel para que la aplicación sea más escalable, resistente y administrable.We have identified ten high-level design principles that will make your application more scalable, resilient, and manageable. Estos principios de diseño se aplican a todos los estilos de arquitectura.These design principles apply to any architecture styles. Durante el proceso de diseño, se deben tener en cuenta estos diez principios de diseño de alto nivel.Throughout the design process, keep these ten high-level design principles in mind. Siga el mejor conjunto de procedimientos recomendados para los aspectos específicos de la arquitectura como, por ejemplo, el escalado automático, el almacenamiento en caché, la partición de datos, el diseño de API, etc.Then consider the set of best practices for specific aspects of the architecture, such as auto-scaling, caching, data partitioning, API design, and others.

Más información:Learn more:

Fundamentos de calidadQuality pillars

Una aplicación de éxito en la nube se centrará en cinco fundamentos de calidad del software: Escalabilidad, disponibilidad, resistencia, administración y seguridad.A successful cloud application will focus on five pillars of software quality: Scalability, availability, resiliency, management, and security. Utilice nuestras listas de comprobación de la revisión del diseño para revisar la arquitectura de acuerdo con estos fundamentos de calidad.Use our design review checklists to review your architecture according to these quality pillars.