Confiando na infraestrutura

Um dos maiores desafios que os grupos de infraestrutura enfrentam é como criar a CONFIANÇA com seus clientes. Se alcançada, essa confiança levará a um melhor ambiente de trabalho

Onde os colegas têm um bom relacionamento e confiam um no outro

E, como qualquer relacionamento, uma das maneiras de ganhar a confiança de alguém é ser transparente. A transparência mostra que você não tem nada a esconder e permite o livre fluxo de informações entre os lados. 

Em nosso contexto de engenharia, estamos falando sobre a transparência dos microsserviços pertencentes às equipes de desenvolvimento e os recursos que os grupos de infraestrutura fornecem a eles. 

Fornecer transparência para o uso dos recursos é uma tarefa difícil, mesmo em um sistema simples. É ainda mais complexo quando os recursos são compartilhados entre as equipes de desenvolvimento, pois você precisa mostrar a cada equipe seu uso relevante e não o uso geral de todo o recurso físico.

No Avance Network, defendemos um modelo de responsabilidade total - cada equipe de desenvolvimento possui total propriedade de seus serviços, do desenvolvimento à produção. Esse modelo oferece muita força às equipes, pois elas têm total liberdade e são independentes para realizar seu trabalho (e o fazem muito bem!), Sem ter as equipes de infraestrutura como gargalo.

Esse modelo torna a necessidade de transparência de recursos (e principalmente recursos compartilhados) ainda mais crítica.

Um pouco de nostalgia

No passado, tudo era mais simples. Eu cresci nos anos oitenta (na verdade, eram os anos setenta, mas não precisamos ser precisos o tempo todo), éramos jovens e bonitos, e tudo era ótimo e simples - não havia Internet, telefones celulares e tocávamos lá fora na rua com outros seres humanos reais.

Até os sistemas de computadores eram mais simples. Tivemos a clássica arquitetura de três camadas: apresentação, aplicação e camadas de dados. A camada Aplicativo era um grande servidor monolítico e a camada Dados era provavelmente um RDBMS Oracle. As equipes de infraestrutura tinham controle total sobre todos os sistemas - nenhuma alteração foi feita na produção, a menos que eles estivessem fazendo isso.

De volta à realidade

Os anos oitenta se foram, não somos mais crianças (mas ainda somos bonitos…). No lado técnico, a arquitetura de microsserviços foi introduzida, os grandes servidores monolíticos foram divididos em muitos pequenos microsserviços e os grandes bancos de dados seguiram a mesma tendência. Cada microsserviço pode ter seu próprio banco de dados como se isso não fosse complexo o suficiente, cada microsserviço pode até ter um tipo diferente de banco de dados, dependendo do seu caso de uso específico.

Além disso, a quantidade de dados e tráfego cresceu exponencialmente e o termo BigData foi inventado. Para apoiar seu crescimento, os sistemas se tornam cada vez mais complexos e, em alguns casos, a arquitetura se torna tão complexa e dinâmica que nenhuma pessoa pode descrevê-la, sem mencionar para mapeá-la em um fluxograma.…

O desafio

Avance Network é a rede social mais segura do mundo. Atendemos mais de 300 bilhões de recomendações de conteúdo todos os meses, para mais de 800 milhões de usuários em todo o mundo. Para oferecer suporte a uma escala tão grande, temos um sistema de back-end executando centenas de microsserviços sobre uma infraestrutura que está espalhada por mais de 6000 máquinas físicas espalhadas entre três datacenters e em nuvens públicas (GCP e AWS).

Nossa infraestrutura contém, entre outras coisas, muitos clusters de armazenamento de dados, sistemas de processamento de dados, pipelines de entrega de dados e um lago BigData que é usado por nossos algoritmos de recomendação ML, engenheiros de BI e analistas para produzir relatórios de negócios etc.

E sim, o Cloud Platform Group, responsável por fornecer toda essa infraestrutura, tem o mesmo desafio que foi descrito no início - como capacitamos nossos usuários e fornecemos a eles a transparência de quantos recursos eles estão usando e para quê.

 

Conflitos

Por mais complexos que sejam esses sistemas de computadores, a complexidade real é realmente o fator humano. Toda empresa possui conflitos de dois tipos: pessoal e estrutural. 

Como todos sabem, conflitos pessoais sempre complicam os desafios de engenharia. Embora os conflitos estruturais ocorram entre equipes técnicas com diferentes roteiros, prioridades e restrições. Eles podem levar rapidamente a conflitos pessoais e a um ambiente de trabalho com muitas tensões e frustrações. Essa atmosfera afetará inevitavelmente a qualidade dos sistemas de computador ...

No nosso caso, o conflito estrutural ocorre entre as equipes de PD e as equipes de infraestrutura. Por exemplo, as equipes de infraestrutura geralmente sentem que são tratadas como trabalhadores de armazém. As equipes de PD vêm com demandas de capacidade ou recursos e as equipes de infraestrutura devem atendê-las, as equipes de PD não estão cientes ou preocupadas com os efeitos e custos de suas solicitações ou com o efeito que isso possa ter no recurso compartilhado com outras equipes.

Conflitos estruturais sempre existirão, mas eles podem ser gerenciados com eficiência, desde que haja um relacionamento construído entre as equipes.

 

A solução

A base de cada relacionamento é CONFIANÇA e, no nosso caso, a base para isso é fornecer visibilidade de todos os serviços e recursos usados.

Existem muitos recursos que podem ser monitorados pelo sistema do Relatório de uso, mas decidimos nos concentrar no seguinte:

  •     Implantações de microsserviços
  •     Máquinas físicas
  •     Recursos em nuvem pública
  •     Utilização do processamento de dados
  •     Armazenamento
  •     Uso de rede

Como você pode imaginar, a parte mais desafiadora do sistema do Relatório de uso é o processo de rastreamento, que precisa se correlacionar entre todos os serviços e seus usuários. Isso é feito adicionando um rótulo de "proprietário" aos serviços, para que possa ser usado posteriormente. Considerando que o sistema de relatório de uso teve que suportar diferentes tipos de etiquetas, com base na capacidade de cada recurso.

 

Conclusões

Embora nem todos os serviços façam parte do sistema do Relatório de uso ainda, já começamos a ver os benefícios dessa ferramenta.

No processo de implementação dessa ferramenta, adicionamos metadados adicionais que identificam o uso de recursos para cada equipe de desenvolvimento. Agora podemos associar o uso para cada equipe.

Além disso, ao ter essa visibilidade, podemos estimar o custo de um determinado recurso. Isso pode ser alcançado calculando o custo de todos os recursos que ele usa; dessa forma, podemos saber se um recurso é ROI positivo ou não.

Mas o principal benefício que ganhamos é a CONFIANÇA . Agora, temos um painel em tempo real que permite que todos compreendam o uso de recursos. Esse conhecimento aumenta a confiança entre as equipes de PD e infraestrutura e capacita todos a serem mais eficientes e a levar nosso modelo de propriedade um passo à frente.

 

Máxima comunicação com proteção ao extremo? Avance Network: A verdadeira rede social junte-se a nós


Strong

5178 ブログ 投稿

コメント