View a markdown version of this page

Etapa 2: diseño e implementación - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Etapa 2: diseño e implementación

En esta sección se analiza cómo convertir sus objetivos de resiliencia en realidad. Ha diseñado lo que es más importante para su empresa y ahora es el momento de desarrollarlo. ¿Cómo se puede fomentar la resiliencia sin ralentizar la innovación?

Piense en los servicios AWS gestionados como un atajo para la resiliencia. En lugar de perder valiosas horas de ingeniería en el mantenimiento de la infraestructura, utilice servicios que gestionen la redundancia por usted. Por ejemplo, consideremos Amazon Simple Storage Service (Amazon S3). Almacena automáticamente varias copias de sus datos dentro de una Región de AWS para mayor durabilidad. No requiere códigos adicionales ni tareas de buscapersonas a altas horas de la noche.

¿Qué pasa con los componentes principales de su aplicación? Las decisiones inteligentes pueden multiplicar el impacto de su equipo. Considere una base de datos que sea la columna vertebral de su servicio. En lugar de crear su propio sistema de replicación, considere la posibilidad de utilizar Amazon Aurora, que gestiona automáticamente la conmutación por error. Estas funciones pueden costar más, pero hacen que su equipo pase de centrarse en el mantenimiento de la infraestructura a la solución de los problemas empresariales. Este coste se puede compensar con una entrega más rápida de las funciones y evitar la pérdida de ingresos durante las interrupciones.

A veces, las empresas emergentes necesitan crear soluciones personalizadas. Esa es la naturaleza de las startups innovadoras. Cuando lo hagas, hazlo simple pero inteligente. Distribuya su aplicación en varias zonas de disponibilidad mediante los grupos de Elastic Load Balancing y Amazon EC2 Auto Scaling. Establezca la capacidad mínima del grupo Auto Scaling para gestionar su tráfico de referencia incluso si falla una zona de disponibilidad. Esto proporciona resistencia frente a errores localizados sin patrones arquitectónicos complejos. A medida que su empresa emergente crezca y los clientes exijan una mayor resiliencia, podrá evolucionar hacia enfoques más sofisticados.

Le recomendamos que mantenga sus entornos de producción y desarrollo separados Cuentas de AWS. Es tentador mezclarlos cuando se avanza rápido, pero este límite es su red de seguridad. Evita que un experimento bien intencionado acabe con su servicio de producción. Considéralo un seguro para tu cultura de desarrollo basada en el principio de «muévete rápido y rompe cosas»: rompe con el desarrollo y mantén la producción estable.

Si su aplicación depende de servicios de terceros, planifique sus fallos. Cuando tu procesador de pagos tiene problemas, ¿puede tu sistema gestionarlos correctamente? Construya disyuntores simples y opciones alternativas. Tal vez pongas esas transacciones en cola en lugar de mostrar mensajes de error. Sus clientes apreciarán que haya mantenido las cosas funcionando, aunque no a la perfección.

Documente a medida que crea, pero manténgalo práctico. Concéntrese en registrar el por qué de las decisiones clave y cree manuales de recuperación sencillos. Es importante tenerlos preparados cuando se produzcan incidentes.

No se está construyendo para una resiliencia perfecta; se está construyendo para lograr una resiliencia adecuada. Cada hora que se dedica a sobrediseñar la resiliencia es una hora que no se dedica a las funciones que los clientes piden. Utilice los servicios AWS gestionados como base, añada una resiliencia específica donde sea más importante y cree vías claras para aumentar la resiliencia a medida que su empresa crece.

El siguiente capítulo analiza cómo validar estas elecciones de diseño sin consumir recursos de ingeniería. Para las empresas emergentes, las pruebas deberían suponer un impulso razonable y una inversión inteligente en la resiliencia de su aplicación.