Formación escrita en DevOps
¿Cómo fomentar el aprendizaje organizativo a partir del trabajo diario de DevOps?
Uno de los principios principales que su equipo y usted aprenden de DevOps es aprender continuamente del trabajo diario y convertir lo aprendido en recursos reutilizables para toda la organización.
Use salas de chat para difundir el conocimiento
Use salas de chat para recoger y crear conocimiento en la organización. Cree bots integrados en el chat para realizar tareas operativas rápidamente. Por ejemplo, el siguiente mensaje al bot de la sala puede instalar la aplicación FrontEndApp en el entorno TestServer-9 y mostrar el resultado en el chat como si ejecutara el comando desde la interfaz de línea de comandos.
@bot install FrontEndApp TestServer-9
Así, todo el equipo puede ponerse al día rápidamente sobre el progreso del trabajo. No se pierde información en mensajes privados ni en correos electrónicos. Esto fomenta la colaboración y la transparencia y permite convertir el conocimiento local en aprendizaje para toda la organización.
Además, las salas de chat compartidas agilizan la incorporación de personas nuevas al equipo de DevOps o a la empresa, porque les permiten observar buena parte de cómo se trabaja. Puede crear salas distintas para productos, servicios, componentes, herramientas, bibliotecas o integraciones. Así será más fácil buscar y encontrar actividades anteriores relacionadas con un elemento concreto del sistema.
Dé prioridad a lo que se puede ejecutar
En vez de volcar sus conocimientos y experiencia en documentos o wikis, cree estándares y procesos ejecutables siempre que sea posible. Una de las mejores formas de crear y compartir conocimiento en la organización DevOps es crear una herramienta reutilizable y guardarla en el control de versiones, para que cualquiera que la necesite pueda encontrarla. Expresar un estándar y la forma de trabajar como código ejecutable evita que los documentos estáticos se interpreten mal o de forma distinta según quien los lea. El código también agiliza y simplifica el negocio y ayuda a superar controles de auditoría y cumplimiento, siempre que al menos cuente con documentación breve que explique cómo aplica el proceso que se debe auditar o verificar.
Para las tareas, procesos y estándares que no puedan automatizarse, cree historias de usuario reutilizables con pasos claros y diferenciados y una lista de comprobación. Así, toda la organización puede usar esos recursos. Distintos equipos pueden hacer trabajos similares de forma coherente y mejorar estos recursos como revisan, reutilizan y mejoran continuamente las bibliotecas de código.
Cree modelos de software reutilizables
Cree modelos listos para usar para componentes, aplicaciones, servicios y microservicios que incorporen los requisitos no funcionales desde el diseño. Así, los desarrolladores no tendrán que preocuparse por esos requisitos cada vez que escriban código nuevo.
Además, su organización contará con un conjunto coherente de requisitos no funcionales implementados en toda la pila de aplicaciones. Integrarlos desde el principio facilita el despliegue, la monitorización, la resolución de problemas y las operaciones del software en general mientras se ejecuta en plataformas de pruebas y producción. Algunos ejemplos son:
- Métricas de telemetría.
- Configuración en tiempo de ejecución.
- Conmutadores de funcionalidades.
- Capacidad de rastrear dependencias.
- Capacidad para rastrear las solicitudes iniciadas por los usuarios.
- Servicios resilientes y tolerantes a fallos.
- Servicios que puedan reducir su nivel de funcionamiento de forma controlada y bajo demanda.
- Capacidad de buscar mensajes en los registros.
- Compatibilidad con versiones anteriores y posteriores.
- Archivado de datos y gestión de conjuntos de datos de producción.
- Gestión y archivado de registros.
Sus modelos codificados deben incluir pruebas automatizadas exhaustivas. Las pruebas aclaran para qué sirve el código y cómo aprovecharlo mejor, y agilizan la creación de pruebas automatizadas para aplicaciones personalizadas que parten de esos modelos reutilizables.
Use un único repositorio de código
Para compartir todo el trabajo y el aprendizaje, almacene en un único repositorio el código fuente, las herramientas de despliegue, el código que crea y ejecuta la canalización, las pruebas automatizadas, el código que construye e integra la telemetría, los estándares, los tutoriales, los documentos, las wikis, las herramientas auxiliares y los estándares de configuración de las plataformas.
Así todos los recursos se comparten de forma transparente con la organización DevOps. Se evitan duplicados y múltiples versiones de los mismos artefactos, componentes y herramientas de terceros. Un repositorio único también permite compilar, enlazar y construir todo en tiempo de ejecución y usar la versión más reciente de cada elemento al desarrollar, probar y desplegar el software.
Establezca estándares tecnológicos y conserve la flexibilidad
Si quiere que todos los integrantes de DevOps puedan leer, revisar y corregir el código de los demás, defina estándares tecnológicos principales que todos en desarrollo y operaciones puedan aprender y usar. Necesita un lenguaje compilado, uno de scripting y uno para interfaces gráficas. Permita también que cada persona explore las tecnologías que le interesen para que el equipo siga aprendiendo y experimentando. ¿Cómo va a triunfar su próxima innovación si no explora y pone a prueba lo que está en los límites de lo conocido?
CONCLUSIÓN
En este capítulo hemos resumido algunas técnicas de DevOps ampliamente aceptadas que permiten a la organización aprender y crear recursos mientras realiza su trabajo diario. Con estos métodos, la experiencia y los conocimientos acumulados de toda la organización DevOps respaldarán y reforzarán la competencia profesional y la calidad del trabajo de cada integrante del equipo.
¡Buena suerte en su recorrido con DevOps!
