SRE e a caixa de ferramentas
Ao se dedicar a uma tarefa tão importante, os Engenheiros de Confiabilidade do Site precisam ter aplicativos e linguagens que garantam seu sucesso profissional. Neste artigo, abordaremos as principais ferramentas de SRE e o uso de cada uma.
Ao realizar seu trabalho, os médicos usam um estetoscópio, bisturi ou monitor de pressão arterial para garantir a saúde do paciente. Um chef tem facas, espátulas e termômetros para que o prato tenha o toque perfeito. E os Engenheiros de Confiabilidade do Site (SRE)? Assim como outros profissionais, eles também utilizam ferramentas especializadas para que diversos processos sejam livres de erros ou adaptados ao que é necessário.
Talvez boa parte dessas ferramentas não sejam usadas no pescoço como se fossem médicas, mas funcionam exatamente da mesma forma, cada uma com uma finalidade específica. Quais são essas ferramentas? Vamos analisá-los em detalhes.
Ferramentas de SRE
Python: Óbvio. Esta linguagem de programação é como a Roma dos desenvolvedores. Todos os caminhos levam a ela. Graças à sua facilidade de uso e ao fato de ser geralmente um dos primeiros protagonistas na vida de um SRE, dominar o Python é muitas vezes como a carne do hambúrguer.
Golang/Kotlin/Rub/Java: Um SRE que trabalha no desenvolvimento de software ou aplicações web deve levar em conta essas linguagens adicionais, cada uma com particularidades e benefícios. Por exemplo, alguns preferem Kotlin a Java ou vice-versa, enquanto outros preferem a velocidade de Golang ou a alma livre de Rubi que, se combinada com Rails, se torna algo como um super sayajin. Escolha o que melhor se adequa ao seu trabalho.
Prometheus: Em 2012, dois Prometheus ganharam vida: o filme de Ridley Scott (que não conquistou nossos corações) e o aplicativo gratuito de código aberto que nos levou às estrelas. Sua versatilidade para coletar métricas em tempo real em determinados bancos de dados, a visualização que oferece deles e o fato de possuir um reservatório de dados próprio o tornam um cavalo de batalha entre os SREs.
Docker: Vai viajar e fazer milagres para compactar tudo na mala? Digamos que o Docker opere de maneira semelhante, mas sem estresse e sobrecarga. O que esse software de código aberto faz é “empacotar” códigos-fonte em contêineres digitais, liberando-os de problemas no sistema operacional ou outras dores de cabeça. O Docker torna os códigos portáteis, o que ajuda muito na automação e velocidade das aplicações.
Kubernetes: Desde 2014, esse piloto ou timoneiro (sim, é o que o nome significa em grego) organiza e gerencia esses contêineres de código, mas ele faz isso como um maestro. O software sabe quando, como e onde ajustar esses contêineres. Como essa palavra foi mencionada com o Docker, você pode pensar que eles são concorrentes. Humm, não. Digamos que são perspectivas diferentes que não competem. O Kubernetes cria romance entre os SREs porque facilita a revisão do aplicativo ou o ajuste sem interrompê-lo, o que é apreciado pelos usuários.
Grafana: Se você já jogou Halo, Grafana seria uma espécie de Cortana (antes de virar psicopata, claro) que acompanha, em todos os momentos, o desenvolvimento do código aberto. Tem uma grande capacidade de analisar e monitorar tudo o que acontece com eles, oferecendo uma visualização completa e simples, ao mesmo tempo em que fornece soluções (por isso associamos aqui à reverenciada Inteligência Artificial do videogame). Ele é escrito em linguagem Go e compartilha continuamente métricas, gráficos e estatísticas que ajudarão você a tomar a decisão certa. Mantenha-a em mente, Master Chef.
Jenkins: Este software é bastante útil (daí sua identidade gráfica). O que faz? Facilita nossa vida! Falando sério, Jenkins automatiza TUDO dentro do processo de desenvolvimento de software com base no casamento CI/CD (Integração Contínua e Entrega Contínua). Jenkins é escrito em Java e suporta muitos softwares adicionais, como Mercurial, Git, Subversion e similares.
Git: Este software é como um relatório forense de tudo o que acontece. Sua utilidade está no fato de indicar todas as alterações em um código ou arquivo, quando foram feitas, onde e como. Isso é bastante útil quando vários desenvolvedores trabalham simultaneamente e não sabem mais o que o parceiro fez. Além de promover o trabalho em equipe e a simultaneidade, o Git mantém um registro completo de tudo o que acontece, para que todos possam ter sucesso no que fazem.
Diríamos que estas são as principais ferramentas utilizadas por um SRE. Achamos muito difícil para um Engenheiro de Confiabilidade do Site realizar seu trabalho sem ter conhecimento em pelo menos uma delas. Claro, você pode ler este artigo e dizer “ah, eu uso isso ou aquilo ao invés daquilo” ou “Eu não sou muito fã disso ou daquilo”. Muito provável. Tudo vai depender do seu trabalho, anos de experiência ou preferências operacionais.
Que a força esteja contigo.