Como evacuamos o turno de serviço Yandex

Como evacuamos o turno de serviço Yandex

Quando o trabalho cabe em um laptop e pode ser feito de forma autônoma de outras pessoas, não há problema em mudar para um local remoto – apenas ficar em casa pela manhã. Mas nem todo mundo tem tanta sorte.

O turno de plantão é composto por uma equipe de especialistas em disponibilidade de serviços (SREs). Inclui administradores de plantão, desenvolvedores, gerentes, além de um “painel” comum de 26 painéis LCD de 55 polegadas cada. A estabilidade dos serviços da empresa e a rapidez na resolução de problemas dependem do trabalho do plantão.

Hoje Dmitry Melikov tal10n, gerente do plantão, contará como em questão de dias conseguiram transportar os equipamentos até sua casa e estabelecer novos processos de trabalho. Dou-lhe a palavra.

- Quando você tem um suprimento infinito de tempo, você pode mover-se confortavelmente com qualquer coisa em qualquer lugar. Mas a rápida propagação do coronavírus colocou-nos em condições completamente diferentes. Os funcionários da Yandex foram dos primeiros a mudar para o trabalho remoto, mesmo antes da introdução do regime de auto-isolamento. Aconteceu assim. Na quinta-feira, 12 de março, fui solicitado a avaliar a possibilidade de transferir o trabalho da equipe para casa. Na sexta-feira, 13, surgiu uma recomendação para a mudança para o trabalho remoto. Na noite de terça-feira, 17 de março, estava tudo pronto para nós: os atendentes estavam trabalhando em casa, os equipamentos foram movidos, os softwares que faltavam foram escritos, os processos foram reconfigurados. E agora vou contar como conseguimos. Mas primeiro você precisa se lembrar das tarefas que o turno de plantão resolve.

Quem somos nós

Yandex é uma grande empresa com centenas de serviços. A estabilidade da pesquisa, do assistente de voz e de todos os outros produtos não depende apenas dos desenvolvedores. A fonte de alimentação do data center pode ser interrompida. Um trabalhador pode danificar acidentalmente um cabo óptico ao substituir o asfalto. Ou poderá haver um aumento na atividade dos utilizadores, o que exigirá uma realocação urgente de capacidade. Além disso, todos vivemos numa infra-estrutura grande e complexa, e o lançamento de um dos produtos pode acidentalmente levar à degradação de outro.

26 painéis no nosso open space são mil e quinhentos alertas e mais de uma centena de gráficos e painéis dos nossos serviços. Essencialmente, este é um enorme painel de diagnóstico. Um administrador experiente de plantão pode compreender rapidamente o status de componentes importantes observando-os e pode definir a direção para a investigação de um problema tecnológico. Isso não significa que uma pessoa deva olhar constantemente para todos os dispositivos: a própria automação chamará a atenção ao enviar uma notificação para a interface especial do plantonista, mas sem painel visual a solução do problema pode demorar.

Quando surgem problemas, o oficial de serviço avalia primeiro a sua prioridade. Em seguida, isola o problema ou minimiza seu impacto nos usuários.

Existem várias maneiras padrão de isolar o problema. Uma delas é a degradação dos serviços, quando o administrador de plantão desabilita algumas funções que os usuários menos percebem. Isso permite reduzir temporariamente a carga e descobrir o que aconteceu. Caso haja algum problema com o data center, o plantonista entra em contato com a equipe de operação, entende o problema, controla o momento de sua solução e, se necessário, conecta as equipes competentes.

Quando o administrador de plantão não consegue isolar um problema surgido por conta de um lançamento, ele reporta à equipe de serviço – e os desenvolvedores procuram erros no novo código. Se eles não conseguirem descobrir, o administrador atrai desenvolvedores de outros produtos ou engenheiros de disponibilidade de serviços.

Posso falar muito sobre como tudo funciona aqui, mas acho que já transmiti a essência. O plantão coordena o trabalho de todos os serviços e monitora os problemas globais. É importante que o administrador de plantão tenha o painel de diagnóstico diante de seus olhos. É por isso que, ao mudar para o trabalho remoto, você não pode simplesmente dar um laptop a todos. Gráficos e alertas não cabem na tela. O que fazer?

Idéia

No escritório, todos os dez administradores de plantão trabalham em turnos atrás de um painel, que inclui 26 monitores, dois computadores, quatro placas de vídeo NVIDIA Quadro NVS 810, duas fontes de alimentação ininterruptas montadas em rack e diversos acessos de rede independentes. Precisávamos garantir que todos tivessem a oportunidade de trabalhar em casa. Simplesmente não é possível montar tal parede em um apartamento (minha esposa ficará especialmente feliz com isso), então decidimos criar uma versão portátil que possa ser trazida e montada em casa.

Começamos a experimentar a configuração. Precisávamos acomodar todos os dispositivos em menos monitores, então o principal requisito para o monitor era uma alta densidade de pixels. Dos monitores 4K disponíveis em nosso ambiente, escolhemos o Lenovo P27u-10 para teste.

Dos laptops, pegamos um MacBook Pro de 16 polegadas. Possui um subsistema gráfico bastante poderoso, necessário para renderizar imagens em vários monitores 4K, e quatro conectores universais Tipo C. Você pode perguntar: por que não desktop? Substituir um laptop exatamente pelo mesmo do armazém é muito mais fácil e rápido do que montar e configurar uma unidade de sistema idêntica. E pesa menos.

Agora precisávamos entender quantos monitores poderíamos realmente conectar ao laptop. E o problema aqui não é a quantidade de conectores, só conseguimos descobrir isso testando o sistema montado.

Como evacuamos o turno de serviço Yandex

Teste

Colocamos confortavelmente todos os gráficos e alertas em quatro monitores e até os conectamos a um laptop, mas tivemos um problema. A renderização de pixels 4x4K em monitores conectados sobrecarregou tanto a placa de vídeo que o laptop ficou descarregado mesmo durante o carregamento. Felizmente, o problema foi resolvido com a ajuda do Lenovo ThinkPad Thunderbolt 3 Dock Gen 2. Consegui conectar um monitor, uma fonte de alimentação e até meu mouse e teclado favoritos à docking station.

Mas outro problema surgiu imediatamente: a GPU estava funcionando tanto que o laptop superaqueceu, o que significa que a bateria também superaqueceu, o que, como resultado, entrou no modo de proteção e parou de aceitar carga. Em geral, este é um modo muito útil que protege contra situações perigosas. Em alguns casos, o problema foi resolvido com a ajuda de um dispositivo de alta tecnologia - uma caneta esferográfica colocada sob o laptop para melhorar a ventilação. Mas isso não ajudou a todos, então também aumentamos a velocidade da ventoinha padrão.

Havia mais uma característica desagradável. Todos os gráficos e alertas devem ser colocados em local estritamente definido. Imagine que você está pilotando um avião para pousar - e então indicadores de velocidade, altímetros, variômetros, indicadores de atitude, bússolas e indicadores de posição começam a mudar de tamanho e a saltar para lugares diferentes. Então decidimos fazer um aplicativo que vai ajudar nisso. Em uma noite, escrevemos no Electron.js, pegando um arquivo pronto API na criação e gerenciamento de janelas. Adicionamos um manipulador de configuração e sua atualização periódica, bem como suporte para um número limitado de monitores. Um pouco mais tarde, eles adicionaram suporte para várias configurações.

Montagem e entrega

Na segunda-feira, os assistentes do suporte técnico obtiveram 40 monitores, dez laptops e o mesmo número de estações de acoplamento para nós. Não sei como eles conseguiram, mas muito obrigado.

Como evacuamos o turno de serviço Yandex

Faltava apenas entregar tudo nos apartamentos dos administradores de plantão. E são dez endereços em diferentes partes de Moscou: sul, leste, centro e também Balashikha, que fica a 45 quilômetros do escritório (aliás, um estagiário de Serpukhov foi adicionado posteriormente). Era preciso distribuir de alguma forma tudo isso entre as pessoas, para construir uma logística.

Insirai todos os endereços em nossos Mapas, ainda há a oportunidade de otimizar o trajeto entre diferentes pontos (usei a versão beta gratuita da ferramenta para entregadores). Dividimos nossa equipe em quatro equipes independentes de duas pessoas, cada uma recebeu seu roteiro. Meu carro acabou sendo o mais espaçoso, então levei equipamentos para quatro funcionários ao mesmo tempo.

Como evacuamos o turno de serviço Yandex

Toda a entrega levou um recorde de três horas. Saímos do escritório às XNUMXh de segunda-feira. À uma da manhã eu já estava em casa. Naquela mesma noite entramos de plantão com novos equipamentos.

Com o resultado de que

Em vez de um grande console de diagnóstico, montamos dez consoles relativamente portáteis no apartamento de cada plantonista. Claro, ainda havia alguns detalhes a serem resolvidos. Por exemplo, costumávamos ter um telefone “de ferro” para o oficial de plantão receber notificações. Isso não funcionou nas novas condições, então criamos “telefones virtuais” para os oficiais de plantão (essencialmente, canais no mensageiro). Houve outras mudanças também. Mas o principal é que em tempo recorde conseguimos transferir não só as pessoas, reduzindo o risco de infecção, mas todo o nosso trabalho para casa sem prejudicar os processos e a estabilidade dos produtos. Estamos trabalhando neste modo há um mês.

Abaixo você encontrará fotos dos trabalhos reais de nossos atendentes.

Como evacuamos o turno de serviço Yandex

Como evacuamos o turno de serviço Yandex

Como evacuamos o turno de serviço Yandex

Como evacuamos o turno de serviço Yandex

Como evacuamos o turno de serviço Yandex

Fonte: habr.com