Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el núcleo del pilar de excelencia operativa se encuentran las prácticas de DevOps que garantizan la calidad de la carga de trabajo a través de flujos de trabajo estandarizados y la cohesión del equipo. Este pilar define los procedimientos operativos para las prácticas de desarrollo, la observabilidad y la administración de versiones. El objetivo es minimizar la varianza del proceso, las posibilidades de error humano y la interrupción experimentada por los clientes. Para evaluar el estado operativo, comience con estas preguntas:
- ¿Ejecuta operaciones con disciplina?
- ¿Los clientes usan la carga de trabajo con una previsibilidad máxima?
- ¿Cómo aprende de la experiencia y los datos recopilados para impulsar la mejora continua?
Las operaciones de carga de trabajo pueden convertirse en prácticas caóticas cuando no existe un sentido de compromiso ni liderazgo claro. En este tipo de entorno, los equipos suelen recurrir a métodos que se ejecutan con un alto esfuerzo y producen resultados bajos, lo que conduce a una experiencia de usuario deficiente. Estos enfoques solo cumplen los objetivos a corto plazo. Las ventajas a largo plazo se realizan mediante la evaluación continua y las inversiones estratégicas.
Los principios de diseño proporcionan directrices para las estrategias operativas que se deben considerar para abordar las causas subyacentes y no solo tratar los síntomas. Comience con los enfoques recomendados y observe lo que funciona y lo que no identifica áreas de mejora. Después de establecer la estrategia, continúe impulsando la acción mediante la lista de comprobación de excelencia operativa.
Los requisitos operativos de una carga de trabajo son tan importantes como sus requisitos empresariales. Los procesos eficaces garantizan que la carga de trabajo logre resultados empresariales dentro de las restricciones de cumplimiento, tanto si ese cumplimiento es organizativo como externo. La clave es buscar repetibilidad con coherencia.
Los objetivos del pilar de excelencia operativa son hacer lo correcto, hacerlo de la manera correcta y resolver los problemas correctos como equipo.
Si cumple estos objetivos, las cargas de trabajo se ejecutarán de forma confiable y predecible incluso durante momentos de cambio. La incapacidad de cumplir los requisitos operativos puede provocar implementaciones con errores, una experiencia de usuario incoherente y costos adicionales que podrían haberse evitado mediante la planeación adecuada y la ejecución simplificada.
Adopción de la referencia cultural de DevOps
|
|
|---|
DevOps es una comunidad de prácticas en la que la diversidad de perspectivas y aptitudes impulsa una misión. Los equipos deben fomentar un entorno colaborativo de conocimiento compartido en lugar de aprendizaje aislado. Use funciones compartidas para esforzarse por superar las restricciones de recursos.
Una buena referencia cultural de DevOps se basa en la responsabilidad compartida. Los equipos de desarrollo y operaciones deben alinear sus objetivos y prioridades con las expectativas de sus clientes y tener el enfoque empresarial en mente. El equipo de desarrollo debe implicar al equipo de operaciones en el bucle de comentarios para que las mejoras se impulsen en sentido ascendente y los demás equipos se beneficien por igual. Por su parte, los equipos de operaciones son responsables de que el equipo de desarrollo obtenga buenos resultados empresariales compartiendo recursos y comentarios que sean relevantes para la carga de trabajo.
Al mismo tiempo, las prácticas de DevOps aplican líneas claras de propiedad y responsabilidad a cada equipo. Independientemente de dónde se ejecute la aplicación, el equipo de carga de trabajo es responsable de esa aplicación.
DevOps optimiza las tareas operativas para que sean eficaces pero no pesadas. Para aprovechar todas las ventajas de DevOps, la referencia cultural debe optimizar los procesos a través de la tecnología y contar con procesos para que las personas de la organización promuevan una comunicación transparente.
| Enfoque | Ventajas |
|---|---|
| Use sistemas y herramientas comunes que promuevan un entorno colaborativo para la comunicación y el seguimiento del progreso. | Las herramientas y los procesos comunes permiten la comunicación transparente. Tanto los equipos de desarrollo como los de operaciones se benefician del conocimiento de la situación en distintos entornos, de los problemas comunes de asistencia y de los retos y victorias generales. Los equipos ya estarán familiarizados con las rutas de escalación existentes si hay un incidente. Un trabajo pendiente compartido deja claras las prioridades, como trabajar en nuevas funciones o corregir errores. |
| Cree una mentalidad de aprendizaje continuo y experimentación a lo largo del ciclo de desarrollo. Admitir el uso compartido de conocimientos entre equipos y mantener la documentación para su reutilización. Realice análisis sin búsqueda de culpables y sesiones informativas tras revisiones posteriores a las publicaciones y/o a los incidentes. |
Mediante mecanismos de experimentación, como las pruebas A/B y el desarrollo de pruebas de concepto, puede fomentar la innovación manteniendo los costes bajos. Comparta conocimientos mediante una colaboración que haga al equipo competente en enfoques de diseño, herramientas y procesos. Realizar retrospectivas después de un proyecto ayuda a identificar áreas para mejorar y celebrar el éxito. |
|
Adopte prácticas ágiles probadas del sector que se centren en la optimización de acciones. Busque oportunidades para "desplazarse a la izquierda" en operaciones para procesos manuales y automatizados, prácticas de implementación y control de calidad y observabilidad. |
Las prácticas de desarrollo ágiles conducen a ciclos de vida de versión más cortos, que son un indicador del valor empresarial. La detección, resolución y, por tanto, la prevención de problemas anteriores suele ser menos intrusiva para el proceso. |
|
Establezca estándares para todos los procedimientos operativos y de desarrollo y revise y valide los mismos con una cadencia regular. Estos procedimientos incluyen tareas rutinarias, procesos fuera de banda, simulacros y situaciones de emergencia, elección de herramientas, procedimientos de supervisión, planes de aptitudes e incluso comunicación con las partes interesadas y divulgaciones de clientes. Sea intencional y explícito sobre sus decisiones. |
Los estándares agregan predictibilidad a las operaciones y hacen que los procesos y prácticas sean escalables. Validar estándares es una excelente manera de dibujar puntos de mejora. Prepárese para situaciones de emergencia y recuperación mediante la realización de simulacros regulares. Ejecute con precisión y habilite la gobernanza para evitar anomalías que conducen a riesgos. |
| Aproveche las ventajas de los equipos de operaciones centralizados con aptitudes especializadas y amplitud de experiencia. | Hay una ventaja de costo para usar recursos compartidos tanto para operaciones como para recursos. Aunque usted gestiona su carga de trabajo, el equipo centralizado le ayuda con habilidades interfuncionales, como la administración de incidentes, una perspectiva proactiva de la supervisión y experiencia en externalización confiablemente. |
Establecimiento de estándares de desarrollo
|
|
|---|
El equipo de desarrollo es responsable de solucionar los problemas de carga de trabajo antes de liberarse con una fricción mínima. Tenga en cuenta la eficacia del desarrollador y optimice los ciclos de respuesta rápidos, desde la codificación hasta los resultados de las pruebas. Implemente procesos efectivos y de tamaño adecuado que planeen y normalicen las actividades técnicas y también impulsen el consenso dentro del equipo y las partes interesadas.
| Enfoque | Ventajas |
|---|---|
|
Documente las características de la carga de trabajo y capture las ventajas del cliente. Derive el ámbito y los requisitos funcionales y no funcionales detallados de la arquitectura. Cree modelos de estimación de tamaño para informar sobre el ámbito y el costo de las tareas implicadas. |
Las buenas especificaciones reducen los costos operativos y las posibilidades de error al admitir ciclos de desarrollo más productivos y optimizados. Los desarrolladores comprenden el diseño técnico, los objetivos y los criterios de finalización antes de iniciar el ciclo de codificación. Una buena documentación facilita la comunicación repetible y la incorporación de nuevos miembros del equipo. |
| Use una metodología de desarrollo de software estándar del sector que se ajuste adecuadamente a las necesidades de la carga de trabajo y el tamaño del equipo. Mantenga un trabajo pendiente compartido entre todos los roles. |
La adopción de una metodología conocida establece el ritmo del proyecto. Elimina las ambigüedades del proceso al proporcionar a los miembros del equipo expectativas y responsabilidades claras. Mediante el seguimiento de una lista común, las tareas se pueden refinar y priorizar con prácticas estándar. El proyecto tendrá más posibilidades de entregarse a tiempo. Las metodologías estándar ayudan con la administración de riesgos. Con las revisiones de hitos pormenorizadas, los desarrolladores pueden abordar posibles problemas antes de convertirse en programadores. |
|
Use el control de código fuente unificado para todo el código, scripts, plantillas de implementación, definiciones de canalización y documentación relacionada. La estrategia de bifurcación debe admitir la implementación sin fricción de características independientes e interdependientes, correcciones de errores y correcciones urgentes. Use conocimientos compartidos en toda la organización para crear la estrategia de bifurcación y los procesos de implementación. |
El uso adecuado del control de código fuente es fundamental para admitir cambios simultáneos y control de versiones. Mantenga un flujo de trabajo repetible para implantar cambios de varios tamaños y riesgos, realizar revisiones entre pares como parte del proceso y mantener un registro de auditoría. |
| Tener procesos de control de calidad que resalten las pruebas al principio del ciclo de vida de desarrollo. Incluya todos los artefactos para los procedimientos de prueba planeados, incluidos los componentes de la aplicación, la infraestructura y las operaciones del plano de datos que forman parte de una versión o actualización de características. Trate los artefactos como inmutables cuando se promueven a través de entornos, ganando confianza cada vez que pasan a través de una puerta de calidad. En la medida de lo posible, automatice los controles rutinarios. |
La garantía de calidad garantiza que se cumplan los requisitos funcionales y no funcionales con confianza, lo que tiene un impacto positivo en el cliente. Tener planes de prueba garantiza la calidad y la integridad y toma en consideración posibles casos de error. Con las puertas de calidad, puede aplicar procedimientos recomendados para reducir los riesgos. La inmutabilidad aporta confianza porque garantiza que el sistema que pruebas es exactamente lo que liberas. Los ciclos de prueba bloquean eficazmente el progreso a menos que se cumplan los criterios de calidad. |
| Impulsar la coherencia mediante guías de estilo y herramientas, que aplican convenciones y adoptan una cadena de herramientas común para el desarrollo, las pruebas y la comunicación con las partes interesadas. Los estándares tecnológicos para desarrolladores deben requerir la implementación de patrones, diseño de API, registro, control de excepciones y otros procesos. |
La coherencia en el código impulsa la legibilidad y un mantenimiento más sencillo. También reduce la complejidad y habilita la reutilización del código. Las herramientas y convenciones comunes también ayudan a los equipos a optimizar los procesos sin necesidad de abordar las opciones puntuales. |
| Insiste de forma coherente y deliberada en la documentación del código por parte del desarrollador a medida que se escribe. | La documentación de código no cifrado garantiza que la lógica y la funcionalidad se comprendan fácilmente cuando se debe volver a consultar el código antiguo o cuando los equipos de desarrollo rotan. |
| Informe del progreso y las tendencias para medir la eficacia. | Se publican tendencias en errores, actualizaciones fallidas, tiempo de implementación, bucles de retroalimentación y otras métricas, lo que impulsa mejoras. |
Evolución de las operaciones con observabilidad
|
|
|---|
Cree una cultura que mejore continuamente la calidad mediante la supervisión de la carga de trabajo y teniendo en cuenta todos los pilares del marco de trabajo de Azure Well-Architected. Permitir que el equipo y las partes interesadas tomen decisiones a corto y largo plazo en muchas facetas proporcionando los datos, estadísticas y tendencias necesarios. Obtenga información de sus datos y impulse mejoras.
Las operaciones creadas con fines de observabilidad son clave para el mantenimiento proactivo de la aplicación, la calidad y la seguridad, la planificación de la capacidad y la administración de productos.
Un aspecto fundamental de la supervisión es la aplicación que usa el modelado de estado para ayudarle a anticipar problemas antes de que se conviertan en incidentes y afecten a la experiencia del cliente. La supervisión eficaz reduce los ciclos reactivos invertidos en la administración de incidentes.
| Enfoque | Ventajas |
|---|---|
|
Cree un sistema de supervisión con su propia pila y flujos. Trate el sistema de supervisión como una dimensión de la carga de trabajo que se desacopla de su utilidad. La pila debe cubrir todas las capas, incluidos la infraestructura, la salud de la aplicación y los procesos de compilación y lanzamiento. La captura o el muestreo de datos empresariales están fuera del ámbito de las implementaciones de observabilidad. |
Desacoplar la supervisión y las pilas de cargas de trabajo para separar los requisitos funcionales y los requisitos de observabilidad y hacer posible la evolución independiente. Los cambios en el código no deben afectar a la supervisión y viceversa. Dado que los requisitos de observabilidad son independientes de los requisitos funcionales, los datos empresarialesno se interrumpirán mediante la supervisión de cambios o interrupciones de configuración. |
|
Impulsar la coherencia en el proceso de recopilación para cada tipo de origen de datos. Normalice la instrumentación en el código mediante estándares del sector para la telemetría, la recopilación de métricas de infraestructura y las herramientas. |
La coherencia evita la varianza en la detección y medición porque la familiaridad entre recursos similares reduce el tiempo invertido en correlacionar y analizar los datos. Usted tiene una perspectiva holística que le permite anticipar problemas. |
| Emita telemetría a partir del código de aplicación que correlaciona los puntos clave del flujo de ejecución y proporciona una vista de un extremo a otro en distintos niveles de granularidad. | Priorice las acciones en función del nivel de gravedad y entienda el contexto dado su verbosidad. Esta información es fundamental para solucionar problemas. |
| Posee la responsabilidad de emitir y recopilar datos, incluso cuando varios equipos comparten los receptores de datos y los administran los equipos centrales. | Al localizar los datos de supervisión en el entorno de carga de trabajo, el equipo puede acceder a los registros y las métricas para abordar los problemas de la carga de trabajo. |
| Recopile solo los datos suficientes y retendelo durante un tiempo suficiente. Tenga en cuenta los inconvenientes de costos asociados con el registro y el almacenamiento de datos. |
La recopilación intencionada de datos le ayuda a optimizar los costos financieros y operativos asociados con la recopilación de más datos de los que necesita. Minimice el ruido y evite un cálculo intensivo durante el análisis y reduzca el costo de almacenar los datos que ya no necesite. |
|
Distinga entre las distintas señales de supervisión: perfiles, registros, métricas y seguimientos. Use cada señal para el propósito correcto. Priorice el uso de métricas para desencadenar acciones que dependen de medidas numéricas. Use perfiles para obtener visibilidad de nivel inferior, como la asignación de memoria, en el sistema. Reserve el uso de registros y seguimientos para proporcionar contexto para flujos y dependencias. |
Mediante el uso de las señales para los fines adecuados, puede evitar la implementación ineficaz del sistema de supervisión. Por ejemplo, el uso de registros para acciones requiere el análisis. Es posible que pueda lograr los mismos objetivos más rápido con las métricas. |
|
Agregue y visualice datos en tableros para presentar datos de supervisión que se ajustan a las necesidades de las audiencias y mantienen en mente el contexto empresarial. Utilice paneles situacionales para destacar datos y impulsar la concienciación entre las partes interesadas. Utiliza paneles de control operativos y libros de trabajo con capacidades de exploración en profundidad para actividades de operador como la respuesta a incidentes. Actualice con frecuencia los paneles y proporcione datos pormenorizados. |
Con las visualizaciones, puede analizar tendencias, realizar un seguimiento de los objetivos empresariales y administrar incidentes. Los paneles que se adaptan al interés del cliente hacen que la interpretación sea relevante y acelere el tiempo de detección y acción. |
|
Haga que las alertas sean accionables mediante la notificación a los roles responsable con descripciones estandarizadas y niveles de gravedad. Proporcione información recopilada de varias fuentes y haga un seguimiento de las desviaciones de los objetivos empresariales. Desencadenar alertas solo para incidentes que requieren acción. Esfuérzate por alertas proactivas que inciten a la reflexión e inicien acciones antes de que un estado degradado se convierta en una falla. |
Las alertas ponen la atención en eventos significativos definidos por la organización. Un buen sistema de alertas identifica las acciones y la gravedad y proporciona datos suficientes para impulsar la claridad y el propósito. Los operadores pueden iniciarse en la corrección sin demora. |
Automatización de la eficiencia
|
|
|---|
Es posible que la carga de trabajo tenga flujos de trabajo con procesos que impliquen a los miembros del equipo que realizan tareas rutinarias, repetitivas y lentas que realmente no necesitan intelecto humano. En función de la frecuencia, puede dedicar mucho tiempo a estos esfuerzos, invertir más tiempo a medida que crece la carga de trabajo. Además, estos procesos suelen ser propensos a errores debido a la involucración humana.
A través de la automatización, se ahorra tiempo, esfuerzo y dinero, y se evitan errores.
| Enfoque | Ventajas |
|---|---|
|
Evalúe todos los flujos de trabajo con respecto a los criterios que están en el nivel correcto de complejidad, esfuerzo, frecuencia, precisión, escalas de tiempo y duración. Automatice los flujos de trabajo en función de esa evaluación y priorice los flujos de trabajo con los resultados más altos esperados. Quite flujos de trabajo redundantes o agregue valor para justificar el esfuerzo humano. |
Puede reinvertir la capacidad del equipo en un trabajo de mayor valor y aumentar la productividad y la coherencia. La creación de un inventario de flujos de trabajo garantiza la automatización de las tareas adecuadas. La eliminación de tareas redundantes reduce la complejidad y los errores. |
| Sea explícito sobre su decisión al evaluar si va a crear herramientas personalizadas o comprar software. Reserva la automatización de edificios para trabajos altamente especializados y de alto valor. |
Al comprar software estándar y aprovechar el contrato de soporte técnico, ahorra en costos de mantenimiento. Al compilar software, tiene más control y puede atender los casos de uso que son exclusivos de su equipo y carga de trabajo. Sin embargo, hay un impacto en el costo. La elección de herramientas aporta un nivel de normalización a las operaciones. Con el entrenamiento, puede lograr un nivel uniforme de preparación para la adopción. |
| Diseñe los componentes de la carga de trabajo para soportar las capacidades de automatización. | Evite la situación en la que la falta de automatización en el diseño del sistema promueve el antipatrón de tareas repetitivas, ralentiza el crecimiento y comienza a acumular deuda técnica. |
| Trate toda la automatización como una dependencia crítica de la carga de trabajo. Adáptese al crecimiento esperado de la carga de trabajo. Las herramientas de automatización son una parte integral de la carga de trabajo, y deben cumplir los cinco pilares del marco de buena arquitectura. |
Diseñe el componente de automatización para resistir riesgos, como las amenazas de seguridad. Con los procedimientos recomendados aplicados, puede evitar la expansión de la implementación. La carga de trabajo seguirá funcionando con una garantía de alto nivel si esta dependencia se mantiene funcional y segura. |
|
Automatice a escala explorando opciones más allá de su carga de trabajo. Favorece un modelo de "diseño una vez, se ejecuta en todas partes" proporcionando plantillas y marcos para incorporar nuevos proyectos y promover la reutilización de diseños e implementaciones existentes. |
Emplee métodos probados y reduzca las posibilidades de fracaso. |
Adopción de prácticas de implementación seguras
|
|
|---|
Cree una cadena de suministro de cargas de trabajo automatizadas y modulares para garantizar implementaciones coherentes, predecibles y repetibles en todos los entornos. La aplicación temprana de prácticas seguras garantiza la confianza en producción y permite una recuperación rápida si los problemas llegan a los clientes.
Todos los cambios, ya sean código, configuración o artefactos, deben implementarse con el mismo nivel de rigor. Las pruebas, la supervisión y el control de versiones son procedimientos comunes para lograr la coherencia.
| Enfoque | Ventajas |
|---|---|
|
Utiliza Infraestructura como Código (IaC) para definir el estado deseado de toda la infraestructura. Use un enfoque modular y en capas, pero evite abstracciones innecesarias. Alinee las capas con las necesidades del ciclo de vida, manteniendo estables las capas fundamentales. |
IaC permite la automatización y la coherencia de la implementación y actúa como documentación automática que se puede usar para el seguimiento. Los artefactos de IaC se convierten en parte del ciclo de vida de desarrollo de software, lo que permite realizar pruebas y procesos de revisión de calidad. IaC también ayuda a detectar y mitigar el desfase de configuración. |
| Se prefieren actualizaciones incrementales pequeñas que se implementan con frecuencia. | Las actualizaciones más pequeñas simplifican la validación al reducir el número de errores simultáneos. Cuando se liberan varios cambios defectuosos simultáneamente, pueden aumentar significativamente el radio de explosión. |
| Implemente todos los cambios de código e infraestructura mediante canalizaciones automatizadas en todos los entornos. | Los métodos de implementación coherentes reducen los errores y la varianza, lo que hace que las implementaciones sean confiables y repetibles. El proceso de implementación se documenta y cada ejecución crea un registro de actividades. |
| Pruebe las actualizaciones rigurosamente durante el ciclo de vida de desarrollo, en entornos de preproducción y producción. | Las pruebas tempranas detectan problemas antes, permiten correcciones iterativas y reducen los problemas en el momento en que la actualización está lista para producción. Tener varios entornos de preproducción permite varios tipos de pruebas, lo que aumenta la confianza en una versión de producción correcta. |
|
Implemente nuevas características con patrones de implementación que permitan la exposición progresiva y la adopción gradual por parte de los usuarios. Pruebe la compatibilidad con versiones anteriores y posteriores. |
El lanzamiento controlado de actualizaciones reduce el riesgo de problemas generalizados de defectos. Aumentar gradualmente la exposición ayuda a garantizar la compatibilidad y la estabilidad, lo que aumenta la confianza en la versión. |
| Prepárese con acciones de compensación para recuperarse de implementaciones defectuosas o defectos críticos en producción. Utiliza la automatización respaldada por pruebas para desplegar correcciones. En el caso de las actualizaciones de emergencia, tenga un proceso acelerado aprobado previamente por las partes interesadas. |
Tener un plan de mitigación reduce la duración del posible impacto. Puede implementar rápidamente correcciones urgentes, como las revisiones de seguridad, para que los usuarios obtengan una versión segura más rápido. |
Pasos siguientes
Se recomienda revisar la lista de comprobación de excelencia operativa para explorar otros conceptos.