Recomendaciones para prácticas de implementación seguras (SDP)
Se aplica a esta recomendación de la lista de verificación de Excelencia Operacional Bien Diseñada: Power Platform
OE:10 | Defina claramente las prácticas de implementación seguras de su carga de trabajo. Enfatice los ideales de métodos de lanzamiento pequeños, incrementales y con control de calidad. Utilice patrones de implementación modernos para controlar el riesgo. Tenga en cuenta las implementaciones rutinarias y las implementaciones de emergencia o de revisión. |
---|
Este guía describe las recomendaciones para utilizar prácticas de implementación seguras. Los procesos y procedimientos de implementación seguros definen cómo realizar e implementar cambios de forma segura en su carga de trabajo. Para implementarlas es necesario pensar en las implementaciones desde la perspectiva de la gestión de riesgos. Puede minimizar el riesgo de error humano en sus implementaciones y limitar los efectos de las implementaciones problemáticas en sus usuarios implementando estas prácticas.
Estrategias clave de diseño
Hay pautas importantes a tener en cuenta al implementar prácticas de implementación seguras:
- Seguridad y consistencia: Todos los cambios en la carga de trabajo de producción son inherentemente riesgosos y deben realizarse con un enfoque en la seguridad y la consistencia.
- Modelos de salud: Las implementaciones deben pasar controles de salud antes de que pueda comenzar cada fase de exposición progresiva.
- Detección de problemas: cuando se detectan problemas, la implementación debe detenerse inmediatamente y se debe iniciar la recuperación.
En las siguientes secciones se proporcionan recomendaciones detalladas sobre cada uno de estos puntos.
Seguridad y coherencia
Ya sea que esté implementando una actualización del código de su aplicación, infraestructura como código (IaC), indicador de función o configuración, está introduciendo un riesgo en la carga de trabajo. No existen implementaciones de bajo riesgo en producción. Cada implementación debe seguir un patrón estándar y debe automatizarse para imponer coherencia y minimizar el riesgo de error humano. Es fundamental que la cadena de suministro de su carga de trabajo y los canales de implementación sean fiables, seguros y tengan estándares de implementación claramente definidos. Trate cada implementación como un posible riesgo y someta cada implementación al mismo nivel de administración de riesgos.
A pesar de los riesgos, debe seguir implementando cambios periódicos en su carga de trabajo. No implementar actualizaciones periódicas introduce otros riesgos, como vulnerabilidades de seguridad que deben abordarse mediante implementaciones. Obtenga más información en Recomendaciones para diseñar un desarrollo de carga de trabajo cadena de suministro.
Las implementaciones pequeñas y frecuentes son preferibles a las implementaciones grandes e infrecuentes. Los pequeños cambios son más fáciles de resolver cuando surgen problemas y las implementaciones frecuentes ayudan a su equipo a generar confianza en el proceso de implementación. También es importante que aprenda de producción revisando sus procesos de carga de trabajo cuando encuentre una anomalía durante la implementación. Es posible que encuentre debilidades en el diseño de su infraestructura o implementación. Cuando surjan problemas durante las implementaciones, asegúrese de que los análisis post mortem sin culpas formen parte de su proceso para capturar lecciones sobre el incidente.
Modelos de estado
Desarrolle un modelo de estado sólido como parte de su plataforma de supervisión de observabilidad y sus estrategias de fiabilidad. Su modelo de estado debe proporcionar visibilidad detallada de los componentes y el estado general de la carga de trabajo. Supervise de cerca las métricas de salud después de una implementación. Si recibe una alerta sobre un cambio de salud durante la implementación, investigue el problema de inmediato y determine el próximo curso de acción, como revertir el cambio. Si los usuarios no informan problemas y todos los indicadores de salud permanecen en verde, la implementación debería continuar. Asegúrese de incluir métricas de uso en su modelo de salud para ayudar a garantizar que la falta de problemas informados por los usuarios y señales de salud negativas no oculten un problema. Obtenga más información en Recomendaciones para realizar análisis de modo de falla.
Detección de problemas
Cuando su implementación produce un problema en uno de los grupos de implementación, la implementación debe detenerse inmediatamente. Investigue la causa del problema y la gravedad de los efectos tan pronto como se reciba la alerta. La recuperación del problema puede incluir:
- Revertir deshaciendo los cambios realizados en la implementación y volviendo a la última configuración funcional conocida.
- Seguir adelante abordando el problema durante el lanzamiento. Puede solucionar problemas durante la implementación aplicando una revisión o minimizando el problema.
- Implementar nueva infraestructura utilizando la última configuración de trabajo conocida.
Revertir cambios, especialmente cambios en bases de datos, esquemas u otros componentes con estado, puede resultar complejo. Las pautas de prácticas de implementación segura deben proporcionar instrucciones claras sobre cómo abordar los cambios de datos de acuerdo con el diseño del patrimonio de datos para su carga de trabajo. De manera similar, el avance debe manejarse con cuidado para garantizar que no se descuiden los procesos de implementación seguros y que las revisiones u otros esfuerzos de minimización se realicen de manera segura.
Recomendaciones generales
Implemente control de versiones en sus artefactos de compilación para ayudar a garantizar que pueda revertir y poner al día cuando sea necesario.
Utilice un flujo de lanzamiento o una estructura de bifurcación basada en ramas, que impone una colaboración estrechamente sincronizada en todo el equipo de desarrollo, en lugar de Gitflow o una estructura de bifurcación basada en entornos.
Automatice la mayor parte posible de sus prácticas de implementación segura. Obtenga más información en Recomendaciones para implementar la automatización.
Utilice prácticas de integración continua (CI) para integrar periódicamente cambios de código en los repositorios. Las prácticas de CI pueden ayudarle a identificar conflictos de integración y reducir la probabilidad de combinaciones grandes y arriesgadas. Obtenga más información en Recomendaciones para la integración continua.
Utilice marcas de características para habilitar o deshabilitar selectivamente nuevas características o cambios en producción. Las marcas de características pueden ayudarle a controlar la exposición de código nuevo y revertir rápidamente la implementación si surgen problemas.
Implemente cambios en entornos de preparación que reflejen su entorno de producción. Los entornos de práctica le permiten probar los cambios en una configuración controlada antes de implementarlos en el entorno real.
Establezca controles previos a la implementación, incluida la revisión de código, análisis de seguridad y comprobaciones de cumplimiento, para ayudar a garantizar que los cambios sean seguros de implementar.
Implemente disyuntores para detener automáticamente el tráfico a un servicio que esté experimentando problemas y ayudar a prevenir una mayor degradación del sistema.
Protocolos de emergencia
Establezca protocolos prescriptivos que definan cómo se pueden ajustar sus procesos de implementación segura ante una revisión urgente o problemas de emergencia como una violación de seguridad o exposición a una vulnerabilidad. Por ejemplo, sus protocolos de emergencia podrían incluir:
- Aceleración de la etapa de promoción y aprobación
- Aceleración de pruebas de integración y pruebas de humo
- Reducción del tiempo de horneado
En algunos casos, la emergencia podría limitar los controles de calidad y prueba, pero los controles deben seguir ejecutándose lo más rápido posible como un ejercicio fuera de banda. Asegúrese de definir quién puede aprobar la aceleración de la implementación segura en caso de emergencia y los criterios que deben cumplirse para que se apruebe la aceleración. Alinear sus protocolos de emergencia con su plan de emergencia respuesta para ayudar a garantizar que todas las emergencias se manejen de acuerdo con los mismos protocolos.
Consideraciones
Desarrollar y mantener prácticas de implementación seguras es complejo. Su éxito en la implementación total de estándares sólidos depende de la madurez de las prácticas en muchas áreas del desarrollo de software. El uso de automatización, solo IaC para cambios de infraestructura, coherencia en las estrategias de ramificación, indicadores de características y otras prácticas pueden ayudar a garantizar una implementación segura. Utilice esta guía para optimizar su carga de trabajo y elaborar planes de mejora a medida que evolucionan sus prácticas.
Facilitación de Power Platform
Microsoft Power Platform Las herramientas de compilación para Azure DevOps se pueden usar para automatizar tareas comunes de compilación e implementación relacionadas con aplicaciones creadas en Power Platform.
Las acciones de GitHub permiten a los desarrolladores crear flujos de trabajo automatizados del ciclo de vida del desarrollo de software. Power Platform Con las Acciones de GitHub para Microsoft Power Platform, puede crear flujos de trabajo en su repositorio para crear, probar, empaquetar, lanzar e implementar aplicaciones, automatizar tareas y administrar bots y otros componentes integrados en Power Platform.
ALM Accelerator es una herramienta de código abierto que consta de un conjunto de aplicaciones, scripts y canales diseñados para automatizar el proceso de integración continua/entrega continua.
Automatice pruebas con Azure Pipelines.
Las variables ambiente en soluciones almacenan las claves y los valores de los parámetros, que luego sirven como entrada para otros objetos de la aplicación. Separar los parámetros de los objetos consumidores le permite cambiar los valores dentro del mismo entorno o cuando migra soluciones a otros entornos.
Power Platform Los entornos ofrecen una funcionalidad de restauración en un punto en el tiempo que puede ayudarle a volver atrás.