Compartir a través de


Creación de soluciones nativas de nube

Con el planeamiento completo, la siguiente fase consiste en crear y configurar la solución en un entorno de desarrollo, cumpliendo con los procedimientos recomendados y garantizando la calidad a través de las pruebas. Una solución nativa de nube usa patrones de arquitectura escalables, resistentes y observables para maximizar las ventajas de los servicios de Azure. La creación en un entorno de no producción con prácticas de automatización y pruebas sólidas garantiza la calidad y la preparación para la implementación de producción.

Desarrollo de nuevas soluciones nativas de nube

El desarrollo nativo de la nube requiere un enfoque estructurado que integre las prácticas de calidad desde el principio. Esta guía le ayuda a crear soluciones confiables, seguras y escalables a través de prácticas de desarrollo probadas.

Aplicación de principios de Well-Architected Framework durante el desarrollo

Una solución nativa de nube se beneficia de una aplicación coherente de los principios de Well-Architected Framework (WAF) Well-Architected Framework (WAF) proporciona principios esenciales que guían el desarrollo nativo de la nube eficaz. Integre estos cinco pilares en el proceso de desarrollo para crear aplicaciones sólidas que funcionen bien en producción.

Desarrollo de soluciones en un entorno de no producción

  1. Cree entornos de desarrollo que reflejen las configuraciones de producción. Configure entornos que no sean de producción (desarrollo, prueba, CONTROL de calidad) que reflejen estrechamente la configuración de producción. Cuanto más se asemejen sus entornos de prueba a los de producción, más confianza tendrá en que las cosas funcionen al lanzarlas. Este enfoque es especialmente importante al agregar nuevas características a una carga de trabajo existente.

  2. Use conjuntos de datos realistas que representan volúmenes de datos de producción. Pruebe con datos que coincidan con el tamaño y la complejidad de las cargas de trabajo de producción. Los conjuntos de datos grandes exponen cuellos de botella de rendimiento y problemas de escalabilidad que los conjuntos de datos de prueba pequeños no detectan. Anonimice los datos de producción o genere datos sintéticos que conserven las propiedades estadísticas de los datos reales.

  3. Implementar controles de costos para entornos que no son de producción. Use Azure DevTest Labs o la planificación de recursos para iniciar y detener automáticamente los recursos cuando no se utilizan. Aplique los niveles de servicio adecuados para las cargas de trabajo de desarrollo e implemente límites de gasto para evitar costos inesperados al tiempo que mantiene la eficacia de las pruebas.

Para más información, consulte Configuración del entorno de prueba en WAF.

Implementación de cambios mediante el control de código fuente y CI/CD

  1. Almacene todo el código y la configuración en un repositorio de Git. Realice un seguimiento del código de la aplicación, las plantillas de infraestructura, los scripts de implementación y los archivos de configuración en el control de versiones. Esta práctica proporciona un historial completo de cambios y permite la colaboración entre los miembros del equipo.

  2. Dividir el trabajo de desarrollo en pequeñas confirmaciones frecuentes. Complete el desarrollo de características en pequeños incrementos que se pueden combinar y probar de forma independiente. Este enfoque reduce los conflictos de integración y facilita la identificación del origen de problemas cuando se producen.

  3. Automatice compilaciones y pruebas en cada cambio de código. Configure canalizaciones de CI/CD que compilen código automáticamente, ejecuten pruebas e implementen en entornos que no sean de producción cuando se confirmen los cambios. Los bucles de comentarios rápidos ayudan a los desarrolladores a detectar y corregir problemas rápidamente.

  4. Usa banderas de características para controlar el lanzamiento de nueva funcionalidad. Implemente los botóns de alternancia de características que le permiten implementar código en producción mientras mantiene deshabilitadas las nuevas características hasta que estén listas para los usuarios. Esta estrategia separa la implementación de la versión y permite implementaciones más seguras y controladas.

Implementación de la supervisión durante el desarrollo

  1. Integre Azure Monitor y Application Insights en el código de la aplicación. Agregue la recopilación de datos de supervisión para realizar un seguimiento de las métricas clave de rendimiento, las interacciones del usuario y los indicadores de estado del sistema. Configure estas herramientas durante el desarrollo para asegurarse de que funcionan correctamente antes de la implementación de producción.

  2. Implemente el registro estructurado en toda la aplicación. Use formatos de registro coherentes e incluya información contextual como identificadores de usuario, identificadores de solicitud e identificadores de proceso de negocio. Estructura los registros como objetos JSON para habilitar eficaces funcionalidades de consulta y análisis.

  3. Configure alertas para las métricas clave y las condiciones de error. Configure la supervisión proactiva que le notifique cuándo aumentan las tasas de error, los tiempos de respuesta degradan o las métricas empresariales se encuentran fuera de los intervalos esperados. Defina umbrales de alerta en función de los objetivos de nivel de servicio y los requisitos empresariales.

  4. Cree paneles que proporcionen visibilidad sobre el rendimiento del sistema. Cree paneles de supervisión que muestren el estado de la aplicación, la infraestructura y los procesos empresariales. Incluya métricas que importan tanto a los equipos técnicos como a las partes interesadas empresariales para habilitar las decisiones controladas por datos.

Para obtener más información, consulte Diseño de un sistema de supervisión e Instrumentación de una aplicación en WAF.

Validación de soluciones nativas de nube con pruebas

Las pruebas completas validan que la solución cumple los requisitos empresariales y se realiza de forma confiable en condiciones reales. Cada tipo de pruebas sirve para un propósito específico para garantizar la calidad de la solución.

  1. Ejecute pruebas funcionales de un extremo a otro para comprobar los flujos de trabajo empresariales. Pruebe escenarios de usuario completos desde la autenticación hasta la finalización de transacciones mediante datos y interacciones realistas. Compruebe que las nuevas características funcionan correctamente y que la funcionalidad existente permanece intacta después de los cambios. Ejecute pruebas de regresión para detectar efectos secundarios no deseados del nuevo desarrollo.

  2. Realice pruebas de aceptación de usuarios con las partes interesadas de la empresa. Póngase en contacto con usuarios reales o representantes empresariales para validar que la solución satisface sus necesidades y expectativas. Haga que prueben escenarios clave en un entorno de UAT y proporcionen comentarios sobre la facilidad de uso y la funcionalidad. Obtenga la aprobación formal de las partes interesadas antes de continuar con la implementación de producción.

  3. Realice pruebas de carga en condiciones realistas para validar el rendimiento. Use Azure Load Testing para simular los volúmenes de usuario esperados y el rendimiento de los datos. Pruebe en niveles de carga máximos y más allá para identificar cuellos de botella de rendimiento y límites de escalabilidad. Mida los tiempos de respuesta, el rendimiento y el uso de recursos para asegurarse de que la solución cumple los requisitos de rendimiento.

  4. Ejecute pruebas de seguridad y cumplimiento para identificar vulnerabilidades. Ejecute exámenes de seguridad automatizados en el código de la aplicación, las imágenes de contenedor y las configuraciones de infraestructura. Use Microsoft Defender for Cloud para comprobar si hay errores de configuración de seguridad y infracciones de cumplimiento. Solucione las vulnerabilidades de alto riesgo antes de la implementación e implemente controles de compensación para los riesgos aceptados.

  5. Resuelva problemas críticos antes del despliegue en producción. Trate las fases de prueba como puertas de calidad que deben pasarse antes de continuar. Corrija problemas de rendimiento que impiden que se cumplan los acuerdos de nivel de servicio, resuelva las vulnerabilidades de seguridad que suponen un riesgo significativo. Abordar defectos funcionales que afectan a los procesos empresariales principales. Documente problemas conocidos de prioridad baja con planes para la resolución futura.

  6. Mantenga conjuntos de pruebas unitarias y de integración automatizados. Cree pruebas automatizadas completas que validen componentes individuales y sus interacciones con dependencias externas. Ejecute estas pruebas como parte de la canalización de CI/CD y después de cada corrección de errores para evitar regresiones. Un conjunto de pruebas automatizado sólido permite una entrega continua segura en entornos nativos de la nube.

Creación de una infraestructura reutilizable

Una vez que la solución modernizada supere todas las pruebas en el entorno de no producción, debe capturar la configuración de infraestructura y las configuraciones como código, por lo que se puede replicar fácilmente en entornos de producción y futuros. La infraestructura reutilizable significa usar plantillas de infraestructura como código (IaC) y automatización para la coherencia y la velocidad.

  1. Cree plantillas de IaC para configuraciones probadas. Tome la arquitectura final del entorno de prueba (que refleja lo que quiere en prod) y codifique. Use Bicep, Terraform o Azure Resource Manager templates para definir la infraestructura. Parametrice estas plantillas para que se puedan reutilizar para diferentes fases, como desarrollo, prueba, prod con pequeños ajustes como nombres o tamaños. Esta configuración garantiza que el entorno de producción que cree coincida con lo que ha probado. Evita el error humano al hacer clic manualmente en Azure Portal para crear recursos. También significa que si alguna vez necesita volver a crear el entorno, como para la recuperación ante desastres o la implementación en nuevas regiones, tiene lista la implementación de infraestructura. Para obtener más información, consulte Administración de CAF: Administración de implementaciones basadas en código.

  2. Almacenar plantillas en el control de versiones. Compruebe el código de infraestructura en un repositorio de Git (junto con el código de la aplicación o en un repositorio independiente). Use GitHub o Azure DevOps para administrar los recursos de IaC con el control de versiones adecuado. El control de versiones permite revisiones de código, admite la colaboración en equipo y fomenta la reutilización de plantillas entre proyectos. Este enfoque proporciona una rastreabilidad completa para los cambios de infraestructura y admite funcionalidades de reversión cuando se producen problemas.

  3. Automatice la instalación y configuración de dependencias. Cree scripts o tareas de canalización para implementar estas plantillas y también gestione las tareas de configuración o inicialización necesarias. Utilice Azure Pipelines y GitHub Actions para ejecutar trabajos de implementación que toman la plantilla de IaC y la implementan en una suscripción o grupo de recursos objetivo. Automatice la instalación de dependencias de aplicaciones, la configuración de la configuración y la administración de secretos. El objetivo es la configuración del entorno de un solo clic (o un solo comando): de nada a un entorno plenamente operativo que coincida con el entorno que probaste.

  4. Pruebe IaC y la automatización de principio a fin. Use una suscripción o grupo de recursos de Azure independiente como espacio aislado y practique la implementación de todo el entorno desde cero mediante las plantillas y scripts. Pruebe que las plantillas, canalizaciones y scripts de IaC pueden crear la pila de infraestructura completa desde cero. Pruebe diferentes escenarios de implementación, como la implementación inicial, las actualizaciones de configuración y los procedimientos de reversión para confirmar que la automatización funciona correctamente.

Para obtener más información, consulte Diseño de una cadena de suministro de desarrollo de cargas de trabajo e Infraestructura como código en WAF.

Creación de documentación de implementación

Incluso con la automatización, tener una buena documentación sobre las implementaciones es fundamental para la auditoría, para incorporar nuevos miembros del equipo y para el mantenimiento futuro. La documentación de implementación debe cubrir las configuraciones, los procedimientos y los pasos de reversión en formato legible.

  1. Documente la configuración y los pasos. Registre todas las configuraciones específicas del entorno, las cadenas de conexión, los puntos de conexión de servicio y las configuraciones de seguridad en la documentación accesible. Incluya instrucciones de implementación paso a paso, requisitos previos y pasos posteriores a la validación de la implementación. Esta documentación permite implementaciones coherentes y admite la solución de problemas cuando se producen problemas. Si un nuevo ingeniero tenía que realizar la implementación, podía leer este documento y seguir o comprender la salida de la canalización.

  2. Actualización de los procedimientos de reversión y recuperación. Después de completar las pruebas, formalice los pasos para revertir los cambios cuando se produzcan problemas de implementación. Incluya desencadenadores de reversión, procedimientos de copia de seguridad y restauración de datos y pasos de validación de recuperación. Pruebe los procedimientos de reversión y recuperación periódicamente para asegurarse de que funcionan correctamente cuando sea necesario. Esta preparación reduce el tiempo de inactividad.

  3. Recopile toda esta documentación en una ubicación central. Use SharePoint, GitHub o una wiki para almacenar esta información. Asegúrese de que el equipo y el personal de soporte técnico sepan dónde encontrarlo. En un incidente de alto estrés, tener documentos claros a mano es un salvavidas.

Paso siguiente