2019 — Meu primeiro ano profissional

Thales Sperling
6 min readJan 2, 2020

Com o final do ano, sempre pensamos nas metas atingidas e tiramos um tempo para avaliar o nosso ano. Seguindo a excelente ideia do Sidney Cirqueira, decidi escrever um pouco sobre meu 2019 e o que ele significou na minha jornada profissional.

Nota: esse post é um relato sobre minha trajetória profissional, escrevi apenas para documentar meu ano de forma interessante. Nem todos os meses tem algo relevante.

Dezembro 2018 e Janeiro:

  • Formei como Engenheiro de Redes de Comunicação pela Universidade de Brasília — UnB.
  • Comecei meu primeiro emprego como Analista de Infraestrutura Júnior na empresa onde fui estagiário nos anos finais da minha graduação.
  • Conduzi a migração do método de autenticação usando pela minha empresa. Migramos do ADFS para utilizar o serviço do AzureAD para funcionalidades de Single Sign-On, de aplicativos baseados em SAML e OpenID. Escrevi um post sobre.

Fevereiro:

Nenhum evento.

Março:

  • Comecei um novo emprego em São Paulo como DevOps Engineer. Essa mudança de emprego foi um grande passo na minha jornada, estava indo para um ambiente muito mais moderno e avançado tecnologicamente, onde todas as coisas que eu estava ainda estudando, como, Docker, Ansible, AWS, SonarQube e Jenkins já estavam em produção e tudo isso passaria a ser responsabilidade minha. No início o desafio foi grande e cheio de novidades, porém nada que algumas noites e finais de semana de estudo não resolveram. Como DevOps Engineer, assumi responsabilidades técnicas e de governança pela primeira vez. Eu estava a frente de todas as decisões relacionadas a infraestrutura hospedada na nuvem, telefonia e de orçamentos voltado para nuvem. Além da extensa lista de novas responsabilidades, também tive que fazer um mudança grande tecnicamente: saí de um ambiente inteiramente Microsoft e Azure, para um mundo Linux e AWS.
  • Escrevi um post sobre um erro de migração recorrente para caixas de e-mail hospedadas em Exchange Híbrido.

Abril:

Nenhum evento.

Maio:

  • Primeiro contato com o framework Serverless, após alguns meses usando a AWS, comecei a procurar automações e otimizações para fazer no ambiente. Cada automação buscava cumprir dois requisitos: 1) Vai reduzir meu esforço operacional de gerenciamento? 2) Vai reduzir custos? A primeira automação que cumpriu ambos requisitos, foi a utilização do framework serverless para ligar e desligar ambientes de teste e homologação de forma sistemática, segue um post detalhado sobre o assunto.

Junho:

  • Virei um escritor registrado para a publicação Faun, maior publicação independente sobre DevOps no Medium.
  • AWS Summit em São Paulo.

Julho:

Nenhum evento.

Agosto:

  • Palestra no AWS User Group São Paulo: ECS e Spot Instances, economizando de forma simples. Nessa palestra falei como utilizar Spot Instances em um cluster ECS sem medo. Tudo foi feito usando o CloudFormation e EC2 bootstrap scripts para atingir a configuração desejada nas máquinas de forma automática e tolerante a falhas. No final, além dos benefícios técnicos da mudança, mostrei também a economia que essa mudança proporcionou, chegando a uma redução de 55% no custo de EC2 mensal da companhia.

Setembro:

  • AWS Certified Solutions Architect Associate

Outubro:

  • Ao iniciar minha jornada como DevOps Engineer na PagueMob, criei algumas metas que gostaria de atingir ainda no ano de 2019 na companhia, eram elas: 1) Redução do custo operacional de nuvem 2) Migração do Jenkins para ferramenta gerenciada de CI /CD e 3) Documentação do ambiente.
  1. Redução do custo operacional de nuvem: ao chegar na companhia, em março, desconfiava que o ambiente estava com uma capacidade além do necessário e que o consumo estava crescendo de forma descontrolada. Como ainda estava aprendendo e criando maior confiança com a plataforma da AWS, decidi em fazer melhorias conforme aumentava meu conhecimento sobre o assunto e ao longo de 5 meses as alterações feitas geraram uma redução de custo de aproximadamente 64% acumulado sobre o período e tudo isso foi feito de forma documentada no kanban da companhia.
(Esquerda) Histórico do custo operacional AWS, (Direita) Kanban com atividades feitas durante o projeto de redução de custo.

2) Migração do Jenkins para ferramenta gerenciadas de CI /CD: Jenkins é uma excelente ferramenta de CI/CD, a migração para uma ferramenta diferente foi motivada por: 1) Jenkins precisa ser gerenciado, sua robustez e flexibilidade vem com o custo adicional de gerenciamento e tempo que ele precisa. 2) Jenkins era hospedado na AWS como o master sendo uma instância EC2 e os slaves configuradas como EC2 Spot Fleet, mesmo sendo uma boa configuração da infraestrutura do Jenkins, o custo que ele gerava no fim do mês, ainda era algo considerável na fatura (aproximadamente $350 por mês). Para a migração acontecer, diversas ferramentas foram cogitadas, como, Code Pipeline e CircleCI porém após avaliação, optei por utilizar o GitHub Actions, que apesar de ser uma ferramenta ainda em beta na época, apresentou uma vantagem enorme por ser totalmente gerenciado e de graça durante beta, após o beta o seu preço continuou extremamente competitivo e isso era um ótima oportunidade de aprender uma nova ferramenta. Por estar em beta, passei algum tempo ajustando e alterando meus pipelines, porém o benefício continuou sendo maior que a dor de atualizar um script.

3) Documentação do ambiente: o ambiente da PagueMob está 100% documentado? Não, isso seria excelente porém não é a realidade que deixei na companhia, mas posso afirmar sem dúvidas, que a documentação está melhor do que encontrei. Finalmente era possível visualizar um diagrama da arquitetura completa, entender os componentes da arquitetura e entender configurações de redes olhando para apenas um desenho detalhado. Além disso, diversos processos que eram apenas conhecimentos dominados por pessoas, foram documentados em wikis disponíveis para a companhia toda. Documentação sempre pode melhorar e tenho a convicção que a documentação que deixei foi uma excelente melhoria para companhia.

  • Escrevi minha primeira action pública, disponível no marketplace do GitHub, agora outros usuários do GitHub Actions podem usar minha solução para login em registros de containers privados do ECR.

Novembro:

  • Saída da PagueMob e último projeto: AutoScaling para ECS. O ECS utilizando a opção de Fargate, apresenta uma forma muito mais simples de autoscaling, com vários aspectos sendo abstraídos para o cliente. Porém autoscaling usando EC2 é algo um pouco mais o complicado que envolve: autoscaling group, launch configuration, estratégia de scale up/out e down/in, alarmes de escalonamento e tudo isso precisava ser pensando em dois níveis, de máquina e de serviço. Cada nível foi avaliado com suas próprias métricas e suas próprias regras de auto escalonamento. Afinal, do que adianta colocar mais instâncias no seu cluster, se não haverá novas instâncias do serviço sendo executadas. Ou do que adianta mais instâncias do serviço se não há memória disponível no cluster para o serviço estabilizar? Todo o AutoScaling foi implementado com CloudFormation, para garantir os benefícios de Infra as Code.
  • Peguei gosto por automação e fiz um bot simples para interação dos recursos da AWS e GSuite por meio do Slack. No futuro, pretendo melhorar esse código e soltar publicamente.

Dezembro:

  • Iniciei uma nova jornada como Cloud Support Associate na AWS. Estou aqui há um mês e estou impressionado com tudo. No mais…

Work hard. Have Fun. Make history — Jeff Bezos

--

--