Cómo evacuamos el turno de servicio de Yandex

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 desde otras personas, entonces no hay problema en mudarse a una ubicación remota: es suficiente quedarse en casa por la mañana. Pero no todos tienen tanta suerte.

El turno de trabajo es un equipo de especialistas en disponibilidad de servicios (SRE). Incluye administradores de turno, desarrolladores, gerentes, así como un "dashboard" común de 26 paneles LCD de 55 pulgadas cada uno. La estabilidad de los servicios de la empresa y la velocidad de solución de problemas dependen del trabajo del turno de trabajo.

Hoy Dmitry Melikov tal10n, el jefe de turno de turno, hablará de cómo en cuestión de días lograron transportar los equipos a sus casas y establecer nuevos procesos de trabajo. Le doy la palabra.

- Cuando tiene un suministro infinito de tiempo, puede moverse cómodamente con cualquier cosa en cualquier lugar. Pero la rápida propagación del coronavirus nos ha puesto en condiciones completamente diferentes. Los empleados de Yandex estuvieron entre los primeros en cambiar 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 evaluar la posibilidad de trasladar el trabajo del equipo a casa. El viernes 13, hubo una recomendación para cambiar al trabajo remoto. La noche del martes 17 de marzo todo estaba listo para nosotros: los encargados estaban trabajando en casa, se trasladó el equipo, se escribió el software que faltaba, se reconfiguraron los procesos. Y ahora te cuento cómo lo hicimos. Pero primero debe recordar las tareas que resuelve el turno de trabajo.

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 no depende solo de los desarrolladores. La fuente de alimentación puede estar interrumpida en el centro de datos. Un trabajador durante el reemplazo del asfalto puede dañar accidentalmente el cable óptico. O puede haber un aumento en la actividad de los usuarios, lo que requerirá una reasignación urgente de capacidad. Además, todos vivimos en una infraestructura grande y compleja, y la liberación de uno de los productos puede conducir accidentalmente a la degradación de 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 enorme panel de diagnóstico. Un administrador de guardia experimentado, al mirarlo, comprende rápidamente el estado de los nodos importantes y puede establecer la 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í misma llamará la atención al enviar una notificación a la interfaz especial del oficial de servicio, pero sin un panel visual, la solución del problema puede retrasarse.

Cuando ocurren 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. Uno de ellos es la degradación de los servicios, cuando el administrador de turno desactiva algunas de las funciones que menos notan los usuarios. Esto le permite reducir temporalmente la carga y averiguar qué sucedió. Si hay un problema con el centro de datos, el oficial de turno contacta al equipo de operaciones, comprende el problema, controla el tiempo de su solución y, si es necesario, conecta a los equipos relevantes.

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 logran resolverlo, entonces el administrador atrae a desarrolladores de otros productos o ingenieros para la disponibilidad de servicios.

Puedo hablar mucho de cómo está todo arreglado 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 sus ojos. Es por eso que cuando cambia al trabajo remoto, no puede simplemente tomar y dar a todos una computadora portátil. Los gráficos y las alertas no caben en la pantalla. ¿Qué hacer?

Idea

En la oficina, los diez administradores de turno trabajan en turnos en el mismo tablero, que incluye 26 monitores, dos computadoras, cuatro tarjetas de video NVIDIA Quadro NVS 810, dos fuentes de alimentación ininterrumpida montadas en bastidor y varios accesos de red independientes. Necesitábamos asegurarnos de que todos tuvieran la oportunidad de trabajar desde casa. Simplemente no es posible montar una pared de este tipo en un apartamento (mi esposa estará especialmente feliz por ello), así que decidimos crear una versión portátil que se pueda llevar y montar en casa.

Empezamos 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, elegimos Lenovo P27u-10 para las pruebas.

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

Ahora era necesario comprender cuántos monitores podemos conectar realmente a una computadora portátil. Y el problema aquí no es la cantidad de conectores, solo podemos averiguarlo probando el sistema como un conjunto.

Cómo evacuamos el turno de servicio de Yandex

pruebas

Colocamos cómodamente todos los gráficos y alertas en cuatro monitores e incluso los conectamos a una computadora portátil, pero nos encontramos con un problema. La representación de 4 × 4K píxeles en los monitores conectados cargó tanto la tarjeta de video 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 su mouse y teclado favoritos 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 significa 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 la computadora portátil para mejorar la ventilación. Pero esto no ayudó a todos, así que también aumentamos la velocidad del ventilador estándar.

Había una característica más desagradable. Todos los gráficos y alertas deben colocarse en un lugar estrictamente definido. Imagine que está pilotando un avión para aterrizar, y luego los indicadores de velocidad, altímetros, variómetros, horizontes artificiales, brújulas e indicadores de posición comienzan a cambiar de tamaño y saltan en diferentes lugares. Así que decidimos hacer una aplicación que ayudará con esto. En una tarde, lo escribimos en Electron.js, tomando un API para crear y gestionar 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, agregaron soporte para diferentes configuraciones.

Montaje y entrega

Para el lunes, los asistentes del servicio de asistencia nos habían proporcionado 40 monitores, diez computadoras portátiles y la misma cantidad de estaciones de conexión. No sé cómo lo hicieron, pero muchas gracias.

Cómo evacuamos el turno de servicio de Yandex

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

Ingresé 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 mensajeros). Dividimos nuestro equipo en cuatro equipos independientes de dos personas, cada uno recibió su propia ruta. Mi automóvil resultó ser el más espacioso, por lo que llevé equipos para cuatro empleados a la vez.

Cómo evacuamos el turno de servicio de Yandex

Toda la entrega tomó un récord de tres horas. Salimos de la oficina a las XNUMX pm el lunes. A la una de la mañana ya estaba en casa. Esa misma noche salimos de servicio con nuevos equipos.

Con el resultado de que

En lugar de una gran consola de diagnóstico, recolectamos diez relativamente portátiles en el departamento de cada oficial de servicio. Por supuesto, todavía quedaban algunas cosas por arreglar. Por ejemplo, antes teníamos un teléfono "de hierro" del oficial de servicio para notificaciones. Bajo las nuevas condiciones, esto no funcionó, por lo que creamos "teléfonos virtuales" para los que estaban de servicio (de hecho, canales en el mensajero). También hubo otros cambios. Pero lo principal es que en un tiempo record logramos trasladar no solo a las personas, reduciendo el riesgo de su contagio, sino todo nuestro trabajo desde casa sin perjudicar los procesos y la estabilidad del producto. Hemos estado haciendo esto durante un mes.

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

Cómo evacuamos el turno de servicio de Yandex

Cómo evacuamos el turno de servicio de Yandex

Cómo evacuamos el turno de servicio de Yandex

Cómo evacuamos el turno de servicio de Yandex

Cómo evacuamos el turno de servicio de Yandex

Fuente: habr.com