Cómo evacuamos el turno de servicio de Yandex



Cuando el trabajo cabe en una computadora portátil y se puede realizar de forma autónoma por parte de otras personas, entonces no hay problema para mudarse a una ubicación remota: simplemente quédese en casa por la mañana. Pero no todos tuvieron tanta suerte.

Duty Shift es un equipo de especialistas en disponibilidad de servicios (SRE). Incluye administradores de tareas, desarrolladores, gerentes, así como un "tablero" común de 26 paneles LCD de 55 pulgadas cada uno. La estabilidad de los servicios de la compañía y la velocidad de resolución de problemas dependen del trabajo del turno de servicio.

Hoy Dmitry Melikovtal10n, el supervisor de turno, hablará sobre cómo lograron transportar equipos a sus hogares y establecer nuevos procesos de trabajo en cuestión de días. Le doy la palabra.



- Cuando tiene un suministro de tiempo infinito, puede moverse cómodamente con cualquier cosa en cualquier lugar. Pero la rápida propagación del coronavirus nos puso en condiciones completamente diferentes. Los empleados de Yandex estuvieron entre los primeros en cambiarse al trabajo remoto, incluso antes de la introducción del régimen de autoaislamiento. La cosa fue así. El jueves 12 de marzo, me pidieron que evaluara la oportunidad de transferir el trabajo del equipo a casa. El viernes 13 hubo una recomendación para cambiar al trabajo remoto. En la noche del martes 17 de marzo, todo estaba listo para nosotros: los asistentes trabajaban en casa, se transportaba el equipo, se escribía el software perdido, se reconfiguraban los procesos. Y ahora te diré cómo lo hicimos. Pero primero debe recordar aquellas tareas que se resuelven con el turno de servicio.

Quienes somos


Yandex es una gran empresa con cientos de servicios. La estabilidad de la búsqueda, el asistente de voz y todos los demás productos dependen no solo de los desarrolladores. El centro de datos puede interrumpir la fuente de alimentación. Un trabajador puede dañar accidentalmente un cable óptico mientras reemplaza el asfalto. O puede haber un aumento en la actividad del usuario, lo que requerirá una reasignación urgente del poder. Además, todos vivimos en una infraestructura grande y compleja, y el lanzamiento de uno de los productos puede provocar accidentalmente la degradación del otro.

26 paneles en nuestro espacio abierto son mil quinientas alertas y más de cien gráficos y paneles de nuestros servicios. De hecho, este es un gran panel de diagnóstico. Un administrador de servicio experimentado, mirándola, comprende rápidamente el estado de los nodos importantes y puede establecer una dirección para investigar un problema tecnológico. Esto no significa que una persona deba mirar constantemente todos los dispositivos: la automatización en sí atraerá la atención enviando una notificación a la interfaz especial de la persona en servicio, pero sin un panel visual, la solución al problema puede retrasarse.

Cuando surgen problemas, el asistente primero evalúa su prioridad. Luego aísla el problema o minimiza su impacto en los usuarios.

Hay varias formas estándar de aislar un problema. Una de ellas es la degradación de los servicios, cuando el administrador de turno deshabilita algunas de las funciones que los usuarios menos notan. Esto le permite reducir temporalmente la carga y descubrir qué sucedió. Si hay un problema con el centro de datos, el asistente contacta al equipo de operaciones, comprende el problema, monitorea el momento de su solución y, si es necesario, conecta equipos especializados.

Cuando el administrador de turno no puede aislar el problema que surgió debido al lanzamiento, lo informa al equipo de servicio, y los desarrolladores buscan errores en el nuevo código. Si no pueden resolverlo, entonces el administrador atrae a desarrolladores de otros productos o ingenieros para la disponibilidad de servicios.

Puedo hablar durante mucho tiempo sobre cómo se arregla todo con nosotros, pero creo que ya he transmitido la esencia. El turno de trabajo coordina el trabajo de todos los servicios y controla los problemas globales. Es importante que el administrador de turno tenga un panel de diagnóstico frente a los ojos. Es por eso que al cambiar al trabajo remoto, no puede simplemente tomar y darles a todos una computadora portátil. Los gráficos y alertas no caben en la pantalla. ¿Qué hacer?

Idea


En la oficina, los diez administradores de turno trabajan en turnos detrás de un tablero, que incluye 26 monitores, dos computadoras, cuatro tarjetas de video NVIDIA Quadro NVS 810, dos unidades de suministro de energía ininterrumpible y varios accesos de red independientes. Pero necesitábamos brindarles a todos la oportunidad de trabajar en casa. Simplemente no funcionará ensamblar una pared de este tipo en el apartamento (mi esposa estará especialmente feliz por esto), por lo que decidimos crear una versión portátil que pueda llevarse y ensamblarse en casa.

Comenzamos a experimentar con la configuración. Necesitábamos colocar todos los dispositivos en menos pantallas, por lo que el requisito principal para el monitor era una alta densidad de píxeles. De los monitores 4K disponibles en nuestro entorno, se eligió Lenovo P27u-10 para las pruebas.

De las computadoras portátiles tomaron una MacBook Pro de 16 pulgadas. Tiene un subsistema de gráficos bastante potente, necesario para renderizar imágenes en varias pantallas 4K, y cuatro conectores universales de tipo C. Usted puede preguntar: ¿por qué no un escritorio? Reemplazar una computadora portátil con exactamente lo mismo desde un almacén es mucho más fácil y rápido que ensamblar y configurar una unidad de sistema idéntica. Sí, y pesa menos.

Ahora era necesario comprender cuántos monitores podríamos conectar realmente a la computadora portátil. Y el problema aquí no es la cantidad de conectores, solo podríamos averiguarlo probando el sistema completo.



Pruebas


Colocamos cómodamente todos los gráficos y alertas en cuatro monitores e incluso los conectamos a una computadora portátil, pero tuvimos un problema. Al procesar 4 × 4K píxeles en los monitores conectados, se cargó la tarjeta de video de manera que la computadora portátil se descargó incluso mientras se cargaba. Afortunadamente, el problema se resolvió con la ayuda de la estación de acoplamiento Lenovo ThinkPad Thunderbolt 3 Dock Gen 2. Logramos conectar un monitor, alimentación e incluso un mouse favorito con un teclado a la estación de acoplamiento.

Pero inmediatamente surgió otro problema: la GPU se hinchó tanto que la computadora portátil se sobrecalentó, lo que significaba que la batería también se sobrecalentó, lo que como resultado entró en modo de protección y dejó de cargarse. En general, este es un modo muy útil que protege contra situaciones peligrosas. En algunos casos, el problema se resolvió con la ayuda de un dispositivo de alta tecnología: un bolígrafo, colocado debajo de una computadora portátil para mejorar la ventilación. Pero esto no ayudó a todos, por lo que también cambiamos la velocidad de un ventilador normal.

Había otra característica desagradable. Todos los cuadros y alertas deben ubicarse en un lugar estrictamente definido. Imagine que está piloteando un avión para aterrizar, y aquí los indicadores de velocidad, altímetros, variómetros, indicadores de horizonte, brújulas e indicadores de posición comienzan a cambiar de tamaño y saltar a diferentes lugares. Entonces decidimos hacer una aplicación que ayude con esto. En una tarde, lo escribimos en Electron.js, tomando una API preparada para crear y administrar ventanas. Agregamos un controlador de configuración y su actualización periódica, así como soporte para un número limitado de monitores. Un poco más tarde, agregamos soporte para varias configuraciones.

Montaje y entrega


Para el lunes, los asistentes de asistencia técnica tenían 40 monitores, diez computadoras portátiles y la misma cantidad de estaciones de acoplamiento para nosotros. No sé cómo lo hicieron, pero muchas gracias.



Quedaba por llevar todo esto a los departamentos de los administradores de servicio. Y estas son diez direcciones en diferentes partes de Moscú: sur, este, centro y también Balashikha, a las que hay 45 kilómetros de la oficina (por cierto, también se agregó más tarde un interno de Serpukhov). Era necesario distribuir de alguna manera todo esto entre las personas, para construir la logística.

Conduje todas las direcciones en nuestros mapas, todavía existe la oportunidad de optimizar la ruta entre diferentes puntos (utilicé la versión beta gratuita de la herramienta para los correos). Dividimos nuestro equipo en cuatro equipos independientes de dos personas, cada uno con su propia ruta. Mi auto era el más espacioso, así que tomé el equipo para cuatro empleados a la vez.



La entrega completa tomó un récord de tres horas. Salimos de la oficina a las diez de la noche del lunes. A la una de la mañana ya estaba en casa. Esa misma noche nos pusimos de servicio con nuevos equipos.

Cual es el resultado


En lugar de una consola de diagnóstico grande, recolectamos diez relativamente portátiles en el departamento de cada persona en servicio. Por supuesto, quedaba por establecer algunas pequeñas cosas. Por ejemplo, antes teníamos un teléfono "de hierro" de la persona en servicio para notificaciones. En las nuevas condiciones, esto no funcionó, por lo que se nos ocurrieron "teléfonos virtuales" para los que estaban de servicio (de hecho, canales en el messenger). Hubo otros cambios. Pero lo principal es que en un tiempo récord logramos transferir no solo personas, reduciendo el riesgo de infección, sino todo nuestro trabajo en casa sin dañar los procesos y la estabilidad de los productos. En este modo, hemos estado trabajando durante un mes.

A continuación encontrará fotos de los trabajos reales de nuestros asistentes.










All Articles