Conjunto de sysadmin cavalheiro

Um administrador é a pessoa sem a qual nada na empresa de TI funcionará. E, com um administrador feliz e produtivo, as coisas mudam melhor e mais rapidamente, de modo que um ambiente de trabalho confortável é a preocupação da empresa. Sobre quais ferramentas para tornar uma equipe produtiva foi um relatório de Anton Turetsky ( banuchka ) no Highload ++ 2017.

Anton adora tarefas de infraestrutura e automação de tudo o que pode ser automatizado, portanto, sua história é baseada no exemplo de configuração de infraestrutura em um data center e tecnologias relacionadas (Docker, Consul, Puppet ...). Mas os aspectos que interferem no trabalho de qualidade e como resolvê-los são o mais universal possível e adequado para praticamente qualquer equipe executiva. Por isso, solicitamos um corte para decodificar este relatório.



O Badoo está crescendo a cada ano, eis alguns números que refletem isso: 350 milhões de mensagens por dia, 364 milhões de usuários registrados em todo o mundo, 300 mil novos usuários por dia. Mas isso está longe de ser o mais importante, para quem trabalha no Badoo, o principal é antes de tudo uma maneira de pensar e uma equipe. O Badoo é uma família, é sobre pessoas e é legal!

Quero começar com uma provocação que alguém pode não apoiar:

Admin é a principal pessoa da empresa!

Eu acho que você vai concordar comigo: o administrador é a pessoa sem a qual nada na empresa funcionará: o equipamento chega até ele, ele coloca no sistema, ele aloca novo equipamento novamente. Portanto, acredito que ele é o principal.



Vou dar um exemplo da prática pessoal no Badoo. Julgue você mesmo sobre esta situação: tivemos um novo projeto chamado ReThink. Atualizamos nosso logotipo: alteramos a fonte e a cor das letras de multicoloridas para roxas, adicionamos um coração - monótono e legal. Mas os administradores foram avisados ​​de que o ReThink aconteceria - nós apenas pegamos e trocamos - avisamos a última noite quase antes de ir para casa. E aqui uma carga um tanto imprevisível em um dos clusters começou a atingir. Agradeço à pessoa que estava de plantão e ajudou o resto da equipe apenas a encontrar servidores adicionais e finalizá-los. O projeto realmente foi filmado, não caímos, desenrolamos normalmente e todo mundo estava feliz.

Para confirmar minhas palavras, quero dizer que um administrador feliz e produtivo da empresa é, entre outras coisas, lucrativo e interessante para a empresa. Gostaria de pedir a todas as empresas que deixem seus administradores felizes . Então você vai ficar bem!



Vamos pensar no que deixa o administrador triste . Para muitos, o administrador fica triste com um servidor com falha e com backups perdidos. Tudo isso é verdade, mas se o administrador pensasse e entrasse em tristeza toda vez que fazia algo errado - e fazia algo errado todos os dias - ele não teria nervos suficientes.

Portanto, denoto o problema, que é um certo fator humano, a saber, a troca de contexto.

Mudança de contexto


Há um número bastante grande de estudos sobre o que acontece quando uma pessoa é arrancada e por que isso é ruim. Um dos últimos bons estudos é o trabalho de Chris Parnin , pesquisador da Georgia University of Technology. Ele coletou vários dados diferentes sobre esse tópico e tirou muitas conclusões, sendo a principal delas:

Uma pessoa que foi afastada do trabalho em uma tarefa leva 10 a 15 minutos para retornar a ela.

Este é um valor médio. Alguém pode ter mais, alguém menos, dependendo da mudança. Com uma simples adição, você pode descobrir que, se você se distrair 4-5 vezes em uma hora por alguma coisa, é provável que uma hora inteira de tempo de trabalho seja perdida, e é improvável que você faça seu trabalho.

Esta é uma teoria - uma pessoa investigada chegou a conclusões. Na prática, você provavelmente enfrentou esta situação: você vem para o trabalho, passou o dia inteiro trabalhando em uma bebida - fez tudo o dia todo, não teve tempo para almoçar, não respondeu aos mensageiros instantâneos e ao correio. No final do dia de trabalho, todos vocês são torturados, parece que você fez muito de tudo. Mas, na melhor das hipóteses, à noite, você percebe que não fez nem metade do que planejou para o dia de trabalho. Pior, quando um gerente ou colega se aproxima de você e pergunta: "O que você fez hoje?" e você entende que correu, correu, correu - mas não há nada na saída .

Em muitos aspectos, isso vem da mudança de nosso contexto e da incapacidade de nos concentrarmos na tarefa. Para o administrador - um artista simples - é assim.

Mas ainda existem gerentes / líderes de equipe e o outro lado. A principal característica dos líderes de equipe é que eles, como maníacos, essa mudança de contexto não é algo que eles possam sobreviver, mas até às vezes aumentam para reduzir mais tarde. Ou seja, eles concentram muitas reuniões com essa opção por várias horas e depois descansam à noite, trabalhando em uma tarefa. A habilidade de alternar pode ser desenvolvida a ponto de levar apenas 5 minutos para mergulhar em uma nova tarefa. Isso é muito legal e, pelo fato de saberem fazer isso, os gerentes podem ser apreciados e respeitados. Mas para o administrador e o artista , é melhor se livrar das opções .

Opacidade do processo


O segundo problema importante é a opacidade dos processos, que podem ser divididos em duas zonas:

  1. opacidade dos processos dentro da equipe ;
  2. opacidade dos processos fora da equipe .

Dentro da equipe, é isso que podemos influenciar: deficiências ou falta de coordenação entre os membros da equipe. A pior coisa que a opacidade dos processos dentro de uma equipe pode levar é a duplicação de trabalho . Em princípio, isso não é ruim, além do fato de que você está perdendo, provavelmente, o tempo de trabalho de um dos funcionários.

Aqui você encontra os profissionais e diz: “Talvez Vasya tenha se saído melhor que Petya! Vamos tomar a decisão dele. Mas eles poderiam conversar entre si, e alguém faria um. Isso é importante.

Se processos não transparentes estão fora da equipe, por exemplo, como um todo, algo está acontecendo incompreensivelmente na empresa, dentro da equipe, isso pode levar à priorização incorreta das tarefas.



Por exemplo, um desenvolvedor da Web para dispositivos móveis veio até mim e disse que é importante que ele adquira um serviço que dará algo para a nova API hoje. Tenho muitas outras tarefas e não me parece que a tarefa dele seja uma prioridade. Ele estava esperando sua libertação por uma semana, ele esperaria outros dois dias, eu farei isso mais tarde. Para os negócios, esse nem sempre é o caso. Se uma equipe chegar até nós de cima, a tarefa atual tem alta prioridade, porque faz parte de uma próxima tarefa muito grande, é importante que isso nem seja transmitido pelo gerente, mas que cada membro da equipe entenda isso simplesmente sem mais delongas .

Do ponto de vista do artista e do administrador, gostaria de construir minha história hoje para resolver esses dois problemas principais dentro da equipe. Falarei sobre como encontramos várias regras para minimizar a alternância de contexto e tornar os processos o mais transparente possível .

Como resolver o problema de mudança de contexto


O administrador chegou ao trabalho, bebeu uma xícara de café, leu o correio, os backups funcionaram, nada caiu - sente-se, trabalhe, o que pode interferir.

Considere a situação usual. O homem voltou fresco, está tudo bem, ele abriu suas ferramentas de trabalho, escreveu em um bate-papo e pelo correio, e então o telefone tocou - perguntaram o que havia acontecido à noite - ele se distraiu. Em seguida, a esposa ou a garota postou uma foto legal - você precisa entrar e sair, e o Facebook também está se movendo. Aqui, os amigos vêm discutir o encontro de futebol de ontem; eles me ligam à noite para beber cerveja ou agora chá. E tudo isso chega a uma pessoa de todos os lados, pouco a pouco.



O que fazer com este problema? Temos uma pessoa, há sua vida social geral, há seu aspecto de trabalho. Nesse caso, podemos considerar e otimizar apenas a parte relacionada a suas ferramentas de trabalho . Não podemos proibi-lo de beber cerveja depois do trabalho ou de usar contas sociais, porque afinal não estamos na prisão.

Portanto, decidimos analisar que tipo de ferramentas de trabalho o administrador possui, de onde ele geralmente é extraído e o que podemos fazer para reduzir isso.

A primeira idéia é bastante estranha, mas tentamos - para permitir que o administrador simplesmente não use o bate-papo , porque muitas pessoas escrevem no bate-papo. Você está trabalhando em uma tarefa, e um escreveu para você que isso é importante para ele, o outro - que é importante para ele. E permitimos que os administradores não usassem o bate-papo - não respondessem e não escrevessem nada lá.

A ideia, é claro, não decolou, porque além de escrever o que você precisa ler no chat, o chat é a maneira mais rápida de se comunicar. Você só precisa escrever lá. Apenas uma semana depois, ficou claro que a idéia era utópica, decidimos abandoná-la e fomos além.



Tomamos uma decisão parcialmente estranha - destacamos um membro da equipe e dissemos a ele: “Cara, você será um líder condicional! Isso não é uma promoção, você apenas sabe muito sobre quais colegas é bom em qual área, conhece o fluxo geral de tarefas e mais ou menos sobre prioridades. Portanto, vamos trabalhar de acordo com o seguinte cenário. Há um conjunto de tarefas que se aplica a todos os administradores da equipe, você vê quem está ocupado com o que, sabe quais são os prazos para a tarefa e sempre pode entregá-lo à pessoa que pode lidar com isso o mais rápido possível; ou, se houver muito tempo para execução, você poderá atribuí-lo ao junior. Junior precisa contar coisas básicas, mas você sabe que se elas o ajudarem, ele será bombeado e tudo ficará bem. ” Em princípio, a ideia é bastante robusta.

Uma das razões pelas quais ela não entrou completamente é porque todos os administradores adoram trabalhar no que eles gostam. Podemos fazer tarefas quando tudo está pegando fogo e precisamos fazê-lo - não entendemos, pegamos e fazemos, não importa quem. Outra coisa é quando você tem uma escolha: "No momento, estou trabalhando em uma tarefa e quero configurar a replicação no MySQL, não quero tocar no Puppet - deixe outra pessoa fazer isso".

As pessoas começaram a brigar, para algumas há poucas tarefas, para muitas existem, para algumas pessoas ficam desinteressantes - algo tão incompreensível e inexplicável. Talvez esse tenha sido nosso erro de cálculo, mas essa abordagem não funcionou.

Na mesma época, estamos tentando carregar o árbitro com outro dever. Para a equipe de administração, outras equipes têm a tarefa de fazer algo - backup, restauração etc. Uma pessoa com esse aplicativo é, de fato, um cliente e está sempre aguardando feedback. Quando, ao definir uma tarefa, ele vê que a tarefa mudou no conjunto geral do status "não atribuído" para "atribuído" a um executor específico, 2-3 horas se passaram, um dia útil, outro e a tarefa não tem batidas, não está claro. envolvido em sua tarefa ou não.



Existem administradores que realmente não gostam de realizar suas tarefas na forma de correspondência. Portanto, o árbitro agora precisa organizar comícios individuais com cada membro de sua equipe, realizar quase todas as tarefas, perguntar se há dificuldades na tarefa, como ajudar e resumir as informações coletadas a cada 1-2 dias.

As tarefas começaram a ser realizadas de alguma maneira. Mas tudo parou, porque nosso atual árbitro simplesmente enterrou em tanto conhecimento . De fato, para resumir algo para você, você precisa entender cada área, pensar em que estágio um funcionário chegou, o que está impedindo-o e escrever isso. Quando existem muitas dessas tarefas, o Árbitro simplesmente para de escrever algo, e as tarefas deixam de ser conduzidas da mesma maneira. Portanto, era necessário seguir em frente e mudar alguma coisa novamente.

Matriz de Eisenhower




Você já deve ter visto essa matriz, mas não sabe o nome. A conclusão é que dividimos a folha de tarefas em 4 partes, de acordo com dois parâmetros:

  1. urgentemente / não urgentemente;
  2. importante / não importante.

Simplesmente jogamos todas as nossas tarefas neste maravilhoso tablet e começamos a trabalhar.

É importante notar imediatamente que a célula B , a mais produtiva e confortável para o artista, é uma tarefa importante e não urgente. Este é um grande motivador para uma pessoa quando sua tarefa é importante para a equipe, para o projeto ou apenas para você. Você entende que está trabalhando não apenas em algum tipo de bobagem, mas no que as pessoas vão usar, e isso acrescenta um incentivo. A vantagem da não urgência é que você é deixado para seus próprios dispositivos. Você tem tempo para ler, testar, fazer alguns cálculos.

Sentamos, pensamos e tivemos a idéia de separar todas as tarefas que entram no departamento de operações, e as tarefas de formatação não são muito importantes nem urgentes para serem separadas em um projeto separado, que chamamos de ITGROOVE . Aqui incluímos tarefas que, no futuro, talvez um dia realmente se transformem em um problema, mas agora elas não são um problema, e seria bom executá-las em um futuro próximo - uma ou duas semanas.

Depois disso, introduzimos a função de administrador de serviço diário , cuja essência é a seguinte. Temos a primeira linha de suporte e resposta a operações e gatilhos de emergência, monitoramento. Se ela não conseguir lidar com o problema e decidir o que precisa ser escalado, a primeira pessoa que se envolverá na solução desse problema durante o dia será o administrador de serviço diário.

Se antes eu lhe disse que estamos nos livrando da influência da mudança de contexto, aqui estamos simplesmente jogando uma pessoa na fenda e dizendo a todos para fazerem tudo seguidamente, troque o mais rápido possível.

Na verdade, isso não é totalmente verdade, porque o administrador diurno de serviço executa as seguintes ações: ou aumenta o problema e o passa para o melhor especialista do departamento nessa área, que está disponível no momento, ou corrige quase automaticamente o problema. Isso não é atividade mental - acorde uma pessoa à noite, ela irá consertar.

Como um bônus adicional, oferecemos ao oficial de plantão, se ele não tivesse nada para fazer e estivesse entediado, para trabalhar no projeto ITGROOVE. A pessoa não apenas cobre o resto da equipe , mas também fecha tarefas sem importância e não urgentes!

Ao introduzir o papel de oficial de serviço diário e dividir as tarefas em tarefas completamente sem importância e de projeto, permitimos que o restante da equipe trabalhasse na zona B mais confortável em tarefas não urgentes, mas importantes. As pessoas acabaram de sair do ponto A, olharam em volta e o ponto B - e eu me sinto confortável e todo mundo está feliz - é legal! Nós trabalharemos!

Não vou desconsiderar as tarefas do ponto C. Parece algo ilusório: "Urgente, mas não importante" - urgentemente ou não importante. No nosso caso, normalmente o trabalho nesse segmento não ocorre. Tarefas com os critérios “não importantes, mas urgentes” ou se tornam “não importantes e não urgentes” ou simplesmente desaparecem, e não trabalhamos nelas.



Desde que eu toquei no fato de termos introduzido o papel de administrador diurno de plantão, vamos examinar brevemente quais administradores geralmente temos:

  1. O administrador é comum. Em princípio, todo mundo sempre faz tudo, mas o administrador comum trabalha principalmente nas tarefas do Jira.
  2. O administrador diurno de plantão atende principalmente o telefone e passa do monitoramento.
  3. O administrador noturno de plantão - uma mistura de administradores comuns e diurnos - atende chamadas e encaminhamentos noturnos e trabalha como um administrador comum durante o dia.

Como tornar os processos transparentes


A complexidade de nossa equipe específica reside no fato de que uma parte está em Londres e a outra em Moscou; é uma mudança bastante grande nos fusos horários. Em Moscou, os caras começam a trabalhar muito mais cedo; em Londres, eles acabam de trabalhar e já fizeram algo. Por sua vez, no escritório de Londres, terminando a noite, estamos fazendo outras coisas que as pessoas em Moscou não sabiam quando voltaram para casa. Para coordenar os processos dentro da equipe, realizamos uma reunião semanal de segunda-feira.



É assim:

  • Ocupamos uma sala de reuniões em Moscou, uma em Londres.
  • Além disso, o tempo está marcado para que em Londres eles acabassem de trabalhar e em Moscou já voltassem do almoço. Todo mundo precisa de cerca de 40 minutos para sintonizar um trabalhador. Portanto, nos reunimos em um ambiente informal na TV, contratamos um agente e começamos a discutir.
  • Esta é uma discussão de muitos para muitos. Contamos uns aos outros quais projetos importantes fizemos, o que esperamos, o que planejamos fazer, marcar compromissos um para o outro.

Mas o problema é que em algum lugar na noite de terça-feira ou na manhã de quarta-feira, a coordenação está um pouco perdida . Por exemplo, comecei a trabalhar em uma tarefa, me afastei, tenho tarefas diferentes para esta semana, algo semelhante acontece para um colega de Moscou. Estaremos fora de sincronia até a próxima segunda-feira, até o próximo leilão - algo precisa ser feito.

Herói do status


Existe uma ferramenta interessante chamada Status Hero . Sua essência é que, quando você trabalha, planeja para si mesmo determinadas tarefas. O Hero Hero possui 3 campos para preencher. Além disso, essa não é uma ferramenta obrigatória, não podemos preenchê-la e não usá-la.



O truque é este: vim trabalhar de novo e sei que hoje quero corrigir algum DNS, configurar a redefinição de métricas no Prometheus, ver como os novos gráficos funcionarão e possivelmente fechar as tarefas atuais. Eu encaixo tudo isso no plano de hoje.

Mas no plano de hoje, uma linha pisca em mim, dizendo que você se prometeu fazer isso ontem e, vamos lá, você primeiro escreve o que fez ontem do que prometeu e depois o que fará hoje.



Também há um terceiro ponto maravilhoso. Este campo é para indicar alguns eventos externos que bloqueiam a execução de tarefas . , - , — , , , — . - , , , . , , .



. HipChat, , - , . , , . - , , . Isso é demais!

Status Hero ?




  1. , . , , , , , . Status Hero : « — !» , , , .


  2. , . , , , , , , , - , : «, . , , , . ».



  3. , , - , , . , - , .

Status Hero


, Status Hero , . , , .

, , , , - . , , , , , , — . , .

, , . Status Hero, Wiki , , Confluence, , . , , , .

. , Status Hero .

Team Contribution


HighLoad++ Review Badoo . , , : , . , .

— — . . Review , , . , , , - .

Review , snippets . , .



, , , , , , , . , , 3 . daily snippets — , , , — , , .

Status Hero. , . , , — , .



, , : Status Hero , , , , . , , .

,

« , — »
.



, Status Hero , , Badoo. , .



, , . , . , , , . , -.

, , , , . , .



, , -, xCAT.



, , , Puppet — , Consul , Docker, glpi, . , .

- , .



, . -, . , , Raid, , .

xCAT , PXE dhcp . , dns , . , — — mac — IP , , .

, xCAT , . - Kernel Panic, . xCAT , -, , , , . - — 100 , -, . - , , SN . xCAT SN .

, , xCAT, -, , , dhcp , , , dhcp helper .

, , , , .

Docker


, Docker — . Docker , - .



Docker , , registry , , . , Docker , registry Badoo , . , Ceph Swift API .

, registry, Redis . HTTP , Docker distribution , , , docker-registry Redis endpoint Ceph.

HTTP nginx, SSL, basic Auth. , registry , pull push.

Consul


- Consul, , , service discovery Badoo, service discovery .

, Consul -, , . , 3 master- -.

, - Consul?

Puppet




Vamos dar uma olhada em nossa maravilhosa infraestrutura Puppet.

A essência do Consul aqui é que aumentamos a infraestrutura de cima para baixo (se você olhar o slide acima):

  • Para começar, você precisa do PostgreSQL, que por sua vez será necessário para o PuppetDB.
  • Gerando o PostgreSQL, registramos no Consul. Ao criar o PuppetDB, pegamos informações do Consul sobre o PostgreSQL, conectamos a ele e passamos as informações sobre o PuppetDB de volta ao Consul.
  • Em seguida, aumentamos o número necessário de nós do servidor Puppet em Java. Tomamos informações para eles do Consul, colocamos informações sobre eles no Consul.
  • No último estágio, aumentamos o balanceamento de carga para o nginx, que lida com a terminação SSL, atende a três portas:
    1. porto para agentes diretos de marionetes;
    2. porta para o Puppet DB;
    3. porta para estatísticas.

Todos os outros clientes passam pelo balanceamento de carga.

GLPI


Temos uma coisa chamada glpi, que é necessária para qualquer data center. Tudo é bastante desajeitado e simples - este é um serviço de inventário .



Funciona da seguinte maneira:

  • Em cada servidor , é iniciado um simples FusionInventory Agent , que coleta todas as informações sobre hardware, software, antivírus, sistemas de arquivos - tudo depende das configurações. Normalmente, estamos interessados ​​em todos os tipos de indicadores "de ferro": quanta memória, quais discos, controlador, cache, etc.
  • Essas informações em um determinado intervalo de tempo (no nosso caso, uma vez por dia) são enviadas para um determinado terminal PHP, no qual os dados são processados ​​e transferidos para o banco de dados glpi.

Outra vantagem do uso do GLPI e do FusionInventory é que podemos inventariar não apenas o hardware do servidor, mas também o equipamento de rede, a fim de obter informações sobre quais portas estão disponíveis e em que velocidade estão e, o mais importante, qual servidor com qual serial está localizado em qual rack, conectado a qual nó da rede e a quais portas. O resultado de toda essa ação é uma página da web onde você pode assistir a todas essas informações.

Examinamos 5 ferramentas descritas em nosso Wiki, nosso administrador hipotético olhou para elas e lançamos não mais que 3-5 contêineres para cada uma - a infraestrutura está pronta. Temos uma casa de pessoas felizes que trabalham de maneira produtiva: uma tarefa foi delineada e outras o ajudaram; em geral, nos familiarizamos, lemos e elevamos uma coisa dessas.



No Badoo, há mais homens com bolas na equipe de administradores, mas somos produtivos e definitivamente felizes em sua maior parte. Conseguimos criar nossa equipe de profissionais amigáveis, porque conseguimos identificar três problemas e aprendemos a lidar com eles.

Então, o que é necessário para os artistas (me parece, não apenas para o administrador):

  • Reduza a alternância de contexto . Deixe a pessoa trabalhar - se ele é um técnico, deixe-a sentar e trabalhar, não a afaste!
  • Tornar os processos transparentes. Se você estiver cumprindo prazos e houver suspeita de que algo não esteja priorizando tarefas, forneça à equipe informações sobre por que uma tarefa específica é importante. Uma pessoa deve ver além do seu monitor e saber que sua participação no projeto é importante. Então ele trabalhará de maneira diferente, entenderá a urgência e a utilidade de seu trabalho.
  • Escreva boa documentação. Além disso, é bom que esta documentação seja dividida em partes diferentes. Pode ser detalhado e profundo, se você quiser se familiarizar e se esconder. Mas, ao mesmo tempo, você deve ter um trecho sobre o serviço ou serviço, que é colocado em uma página e contém um conjunto de 5 a 6 ações que devem ser executadas antes da escalação. Além disso, a documentação é importante para manter-se sempre atualizado.

Quando você aumenta a transparência do trabalho no departamento, o problema de atualizar a documentação é resolvido por si só, porque você vê quais iterações estão acontecendo e é perguntado constantemente: "Atualize, atualize, atualize".

Referências


Esses são links para vários estudos sobre o tópico de alternância de contexto, como trabalhar com competência, como não se distrair e fazer mais, além de links para todos os produtos de que falei que são a base e o suporte de qualquer data center do Badoo.


A versão siberiana da conferência para desenvolvedores de projetos de alta carga, Highload ++ Siberia , começará na segunda-feira e ocorrerá nos dias 25 e 26 de junho . Nele, Anton falará sobre a evolução de ferramentas e serviços em serviço com a equipe de operações do Badoo,

E outros 30 especialistas reconhecidos e representantes de líderes do setor apresentarão suas melhores práticas e compartilharão suas experiências - veja o programa .

Source: https://habr.com/ru/post/pt414749/


All Articles