Como evacuamos a troca de tarefas do Yandex



Quando o trabalho se encaixa em um laptop e pode ser executado de forma autônoma por outras pessoas, não há problema em mudar para um local remoto - basta ficar em casa pela manhã. Mas nem todo mundo teve tanta sorte.

A Duty Shift é uma equipe de especialistas em disponibilidade de serviços (SRE). Inclui administradores de serviço, desenvolvedores, gerentes, bem como um "painel" comum de 26 painéis LCD de 55 polegadas cada. A estabilidade dos serviços da empresa e a velocidade de resolução de problemas dependem do trabalho da mudança de plantão.

Hoje Dmitry Melikovtal10n, o supervisor de turno, falará sobre como eles conseguiram transportar equipamentos para suas casas e estabelecer novos processos de trabalho em questão de dias. Eu dou a ele a palavra.



- Quando você tem um suprimento infinito de tempo, pode mover-se confortavelmente com qualquer coisa em qualquer lugar. Mas a rápida disseminação do coronavírus nos colocou em condições completamente diferentes. Os funcionários da Yandex foram os 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 convidado a avaliar a oportunidade de transferir o trabalho da equipe para casa. Na sexta-feira 13, houve uma recomendação para mudar para o trabalho remoto. Na noite de terça-feira, 17 de março, tudo estava pronto para nós: os atendentes trabalhavam em casa, o equipamento foi transportado, o software ausente foi gravado, os processos foram reconfigurados. E agora vou contar como fizemos. Mas primeiro você precisa se lembrar daquelas tarefas que são resolvidas pela mudança de plantão.

Quem nós somos


Yandex é uma grande empresa com centenas de serviços. A estabilidade da pesquisa, do assistente de voz e de todos os outros produtos depende não apenas dos desenvolvedores. O data center pode interromper a fonte de alimentação. Um trabalhador pode danificar acidentalmente um cabo óptico ao substituir o asfalto. Ou pode haver um aumento na atividade do usuário, o que exigirá uma realocação urgente de energia. Além disso, todos nós vivemos em uma infraestrutura grande e complexa, e o lançamento de um dos produtos pode levar acidentalmente à degradação do outro.

26 painéis em nosso espaço aberto são mil e meio alertas e mais de cem gráficos e painéis de nossos serviços. De fato, este é um enorme painel de diagnóstico. Um administrador de serviço experiente, olhando para ela, entende rapidamente o status de nós importantes e pode estabelecer uma direção para investigar um problema tecnológico. Isso não significa que uma pessoa deva olhar constantemente para todos os dispositivos: a própria automação atrairá a atenção enviando uma notificação para a interface especial da pessoa em serviço, mas sem um painel visual, a solução para o problema pode ser adiada.

Quando surgem problemas, o atendente primeiro avalia sua prioridade. Ele então isola o problema ou minimiza seu impacto nos usuários.

Existem várias maneiras padrão de isolar um problema. Uma delas é a degradação dos serviços, quando o administrador de serviço desativa algumas das funções que os usuários menos percebem. Isso permite reduzir temporariamente a carga e descobrir o que aconteceu. Se houver um problema com o datacenter, o atendente entrará em contato com a equipe de operação, entenderá o problema, monitorará o tempo de sua solução e, se necessário, conectará equipes especializadas.

Quando o administrador de serviço não pode isolar o problema que surgiu devido ao lançamento, ele o 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 para a disponibilidade dos serviços.

Posso falar por um longo tempo sobre como tudo está organizado conosco, mas acho que já transmiti a essência. A troca de tarefas coordena o trabalho de todos os serviços e controla os problemas globais. É importante que o administrador de plantão tenha um painel de diagnóstico diante dos olhos. É por isso que, ao mudar para o trabalho remoto, você não pode simplesmente levar e dar a todos um laptop. Gráficos e alertas não cabem na tela. O que fazer?

Idéia


No escritório, todos os dez administradores de serviç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 ininterrupta e vários acessos independentes à rede. Mas precisávamos oferecer a todos a oportunidade de trabalhar em casa. Apenas não funcionará para montar uma parede assim no apartamento (minha esposa ficará especialmente feliz com isso), por isso decidimos criar uma versão portátil que pode ser levada e montada em casa.

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

Dos laptops, eles usaram um MacBook Pro de 16 polegadas. Ele 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 um desktop? Substituir um laptop por exatamente o mesmo de um armazém é muito mais fácil e rápido do que montar e configurar uma unidade de sistema idêntica. Sim, e pesa menos.

Agora era necessário entender quantos monitores poderíamos realmente conectar ao laptop. E o problema aqui não é o número de conectores, poderíamos descobrir apenas testando o sistema completo.



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 4 × 4K pixels nos monitores conectados carregou a placa de vídeo de forma que o laptop foi descarregado mesmo durante o carregamento. Felizmente, o problema foi resolvido com a ajuda da docking station Lenovo ThinkPad Thunderbolt 3 Dock Gen 2. Conseguimos conectar um monitor, energia e até um mouse favorito com um teclado à docking station.

Mas imediatamente outro problema surgiu: a GPU inflou 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 carregar. 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 um laptop para melhorar a ventilação. Mas isso não ajudou a todos, então também alteramos a velocidade de um fã comum.

Havia outra característica desagradável. Todos os gráficos e alertas devem estar localizados em um local estritamente definido. Imagine que você está pilotando um avião para pousar - e aqui os indicadores de velocidade, altímetros, variômetros, indicadores de horizonte, bússolas e indicadores de posição começam a redimensionar e pular para lugares diferentes. Por isso, decidimos fazer um aplicativo que ajudará com isso. Em uma noite, escrevemos no Electron.js, usando uma API pronta para criar e gerenciar janelas. Adicionamos um manipulador de configuração e sua atualização periódica, além de suporte para um número limitado de monitores. Um pouco mais tarde, adicionamos suporte para várias configurações.

Montagem e entrega


Na segunda-feira, os assistentes de assistência técnica tinham 40 monitores, dez laptops e tantas estações de acoplamento para nós. Não sei como eles fizeram isso, mas muito obrigado.



Restava levar tudo isso para os apartamentos dos administradores de serviço. E esses são dez endereços em diferentes partes de Moscou: sul, leste, centro e também Balashikha, aos quais há 45 quilômetros do escritório (a propósito, um estagiário de Serpukhov também foi adicionado posteriormente). Era necessário, de alguma forma, distribuir tudo isso entre as pessoas, para construir a logística.

Eu dirigi todos os endereços em nossos mapas, ainda há a oportunidade de otimizar a rota entre pontos diferentes (usei a versão beta gratuita da ferramenta para correios). Dividimos nossa equipe em quatro equipes independentes de duas pessoas, cada uma com seu próprio caminho. Meu carro era o mais espaçoso, então levei o equipamento para quatro funcionários ao mesmo tempo.



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

Qual é o resultado


Em vez de um grande console de diagnóstico, coletamos dez relativamente portáteis no apartamento de cada pessoa de plantão. Obviamente, restava resolver algumas coisinhas. Por exemplo, anteriormente tínhamos um telefone "de ferro" da pessoa de plantão para notificações. Nas novas condições, como não funcionou, criamos "telefones virtuais" para quem está de plantão (na verdade, canais no messenger). Houve outras mudanças. Mas o principal é que, em tempo recorde, conseguimos transferir não apenas pessoas, reduzindo o risco de infecção, mas todo o nosso trabalho em casa, sem prejudicar os processos e a estabilidade dos produtos. Nesse modo, trabalhamos há um mês.

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










All Articles