Entrevista Verity Devops MLOPS

Entrevista Verity Devops MLOPS

Introdução e Apresentações

Abertura da Reunião

  • Conversa inicial entre Guilherme e Cáio, com a habilitação da transcrição para facilitar o resumo posterior.
  • Participantes se cumprimentam e confirmam a presença na reunião.

Apresentação de Cáio

  • Cáio se apresenta como SRE e DevOps na Vert, destacando sua especialidade em cloud.
  • Ele menciona que está atuando como tech lead em uma squad de um cliente da Verity.

Experiência Profissional de Guilherme

Resumo das Atividades em Cloud

  • Guilherme é solicitado a resumir suas experiências nos últimos 5 anos na área de cloud e DevOps.
  • Ele compartilha seu background em infraestrutura, evoluindo para funções relacionadas a DevOps, SRE e arquitetura.

Trabalhos Anteriores

  • Menciona ter trabalhado em equipes cross-funcionais, principalmente no setor bancário.
  • Destaca que trabalhou com múltiplas squads, variando entre 3 a 30 squads ao longo do tempo.

Pilares do SRE

Abordagem Técnica

  • Guilherme fala sobre os pilares do SRE que ele utilizou nas suas atuações: esteira, segurança, escalabilidade e observabilidade.
  • Enfatiza seu foco principal na observabilidade dentro dos projetos.

Desafios Enfrentados

  • Discute desafios relacionados à documentação e automação nos processos existentes nas empresas onde trabalhou.

Tecnologias Utilizadas

Ambientes de Trabalho

  • Guilherme menciona o uso de Kubernetes no ambiente on-premises, especificamente OpenShift no Santander.

Transição para Cloud

  • Fala sobre sua experiência com projetos de rehost e refactor durante a migração para ambientes cloud.

Casos Desafiadores

Projetos Complexos

  • Compartilha um caso desafiador envolvendo mainframe legado que exigiu busca por arquiteturas de referência.

Discussão sobre Arquitetura e Tecnologias em Nuvem

Arquitetura de Microserviços e Lâmbida

  • O entrevistado menciona o uso de uma arquitetura "driven" com serviços quase totalmente lâmbida, onde a lâmbida é utilizada para processar eventos através de filas MSA.
  • A stack da AWS foi amplamente utilizada, incluindo serviços como MSK e S3, destacando os desafios enfrentados durante o projeto.

Experiência com Diferentes Nuvens

  • O entrevistado trabalhou com Azure no Santander, onde a divisão era 80% Azure e 20% AWS, mencionando um ambiente multicloud.
  • No C6 Bank, utilizou GCP para DR ativo-passivo e MFA, evidenciando a importância da replicação entre nuvens.

Pipelines e Ferramentas DevOps

  • A discussão se volta para as pipelines utilizadas na atuação como DevOps, mencionando ferramentas como GitHub Actions.
  • O entrevistado destaca que trabalhou com pipelines novas utilizando YAML, mas não participou da implantação do zero.

Conhecimento em DevOps

  • O foco principal do entrevistado é em DevOps; ele menciona que seus conhecimentos em CI/CD foram fundamentais para sua atuação.
  • Ele cita pilares importantes do DevOps como entrega ágil e priorização das pessoas sobre tecnologia.

Testes Automatizados

  • Durante a conversa sobre automação no processo de CI/CD, o entrevistado explica as etapas principais: build e teste.
  • Ele detalha sua experiência com testes unitários e de integração usando JMER, enfatizando a importância dos testes na pipeline.

Experiência em Testes e Frameworks

Discussão sobre frameworks e linguagens de programação

  • O entrevistado menciona sua experiência com Java, Python e outras linguagens, destacando que trabalhou com testes utilizando Cypress e Selenium.
  • Ele explica que os testes eram realizados localmente em suas máquinas antes de serem enviados para a pipeline, onde não havia interface gráfica disponível.

Cultura DevOps e Disseminação de Conhecimento

  • O entrevistado discute a importância da cultura DevOps, mencionando que muitas vezes ele teve que atuar como disseminador do conhecimento em equipes formadas do zero.
  • Ele observa a resistência encontrada ao implementar novas tecnologias em empresas conservadoras, especialmente quando se trata de gestão.

Abordagem Prática na Implementação

  • O entrevistado prefere uma abordagem colaborativa ao invés do modelo top-down, levando exemplos prontos para facilitar o aprendizado dos colegas.
  • Ele utiliza demonstrações práticas para mostrar os benefícios das novas ferramentas, quebrando barreiras iniciais de resistência.

Rastreabilidade e Monitoramento

Gerenciamento de Alterações

  • Após a implementação das pipelines, foi estabelecido um sistema de rastreabilidade através do envio automático de emails sempre que uma alteração era feita no ambiente.
  • Antes da implementação das pipelines, não havia rastreabilidade; após isso, cada ação era registrada por usuário.

Monitoramento da Aplicação

  • O entrevistado fala sobre a importância do monitoramento contínuo das aplicações após o deploy e como isso se relaciona com as práticas SRE (Site Reliability Engineering).
  • As novas esteiras foram atualizadas para incluir bibliotecas específicas para monitoramento diretamente no código.

Integração com Desenvolvimento

  • Para personalizar métricas nas aplicações desenvolvidas em Java ou Python, o entrevistado colabora diretamente com os desenvolvedores.
  • Ele destaca a necessidade de trabalhar junto aos devs para definir quais métricas são relevantes e como implementá-las corretamente.

Infraestrutura como Código (IaC)

Ferramentas Utilizadas

  • O entrevistado menciona sua experiência com Terraform e Wensbol na integração da infraestrutura como código no ambiente cloud.

Portabilidade e Configuração de Infraestrutura em Nuvem

Situação da Virgínia e a Transição para GCP

  • A situação mencionada envolve a queda da Virgínia na AWS, levando à necessidade de subir a infraestrutura em outra nuvem, especificamente no Google Cloud Platform (GCP).
  • As esteiras de infraestrutura estavam integradas com Terraform, permitindo que o processo de deploy fosse ativado ou não conforme necessário.
  • Testes regulares de recuperação de desastres (DR) foram realizados mensalmente, garantindo que a infraestrutura estivesse replicada e validada antes do incidente.
  • Após a queda, foi possível rapidamente implantar toda a infraestrutura no GCP utilizando ferramentas como o Enball para importar os serviços do EKS para o GKE.
  • Apesar dos desafios enfrentados durante o processo, a transição foi realizada com sucesso ao subir todos os componentes necessários.

Questões sobre Governança e Modularização no Azure

  • O foco agora se volta para ambientes Azure, onde são discutidas as práticas de governança em projetos que utilizam Infrastructure as Code (IaC).
  • A modularização do Terraform é crucial para permitir que múltiplas equipes provisionem recursos sem comprometer as políticas de segurança da empresa.
  • Estratégias devem ser implementadas para garantir que times não possam implantar recursos fora das diretrizes estabelecidas pela corporação.

Segurança e Controle em Projetos Terraform

  • A modularização permite trabalhar com diferentes clouds enquanto mantém controle sobre quais recursos podem ser provisionados por cada equipe.
  • Um exemplo prático é restringir equipes a apenas tipos específicos de instâncias validadas previamente, evitando implantações indevidas.
  • O uso do AWS permite definir módulos específicos onde apenas instâncias já aprovadas podem ser criadas, mantendo um estado controlado no S3 ou Terraform Cloud.

Avaliação de Riscos e Permissões Mínimas

  • É importante implementar controles rigorosos para evitar que usuários subam serviços potencialmente inseguros ou indesejados na nuvem.
  • O conceito de "mínimo acesso" é fundamental; usuários não devem ter permissões além do necessário para suas funções específicas dentro da organização.
  • Uma vez mapeadas as necessidades, acessos específicos são concedidos somente após validação adequada das permissões necessárias.

Uso do IAM e Estrutura de Projetos no GCP

Integração do IAM com Recursos Específicos

  • O uso do IAM na AWS é discutido, enfatizando a parceria com políticas específicas para recursos, como buckets.
  • A abordagem de projetos em Terraform é mencionada, onde cada núcleo de negócio possui seu próprio projeto e infraestrutura provisionada.

Restrições de Acesso em Ambientes Multi-Projetos

  • Como um administrador ou SRE, pode ser necessário restringir o acesso a recursos globalmente dentro da organização.
  • Estratégias para aplicar regras de permissão globalmente são exploradas, evitando configurações individuais por usuário.

Configuração Global via AWS Organizations

  • A configuração na AWS Organizations permite replicar permissões nas contas subordinadas a partir da conta raiz.
  • É mencionado que existe uma esteira para aplicar regras em toda a nuvem, colaborando entre equipes de governança e segurança.

Estruturação de Pipelines e Imutabilidade

Criação de Pipelines Eficientes

  • Discussão sobre como estruturar uma pipeline que utilize sempre a mesma imagem de contêiner validada antes da produção.
  • Importância da imutabilidade e rastreabilidade das imagens dentro das pipelines é destacada.

Registro e Homologação de Imagens

  • Utilização do Amazon ECR (Elastic Container Registry) para armazenar imagens homologadas pela equipe de segurança.
  • Estratégia para garantir que apenas imagens homologadas sejam utilizadas nas pipelines, evitando downloads não autorizados.

Atualizações e Manutenção das Imagens

  • Processo descrito para atualizar versões das imagens no ECR através de pipelines dedicadas.
  • Discussão sobre como configurar a imutabilidade nas imagens dentro dos ambientes cloud.

Observabilidade em Ambientes Cloud

Definição e Implementação de SLI

  • Pergunta sobre como definir e implementar SLI (Service Level Indicators), focando na perspectiva SRE.