Trabalhando nas Nuvens. Um Dia de Trabalho do Gonçalves, Cloud Engineer

Gonçalves não se vê como um profissional de TI apenas. Em sua mente, ele é o maestro de uma das orquestras digitais mais complexas e poderosas do mundo. Seus “instrumentos” não são violinos ou trombones, mas sim as plataformas de nuvem e dados que definem a vanguarda da tecnologia: Amazon Web Services (AWS), Google Cloud (GCP), Microsoft Azure, Databricks, Snowflake e a mais recente adição, Microsoft Fabric. Seu trabalho, em essência, é garantir que todos esses instrumentos toquem em perfeita harmonia, produzindo não uma sinfonia, mas a melodia contínua da inovação e da eficiência para uma empresa global cujo sangue vital é, inequivocamente, os dados.
A empresa para a qual Gonçalves trabalha é uma gigante multinacional, onde a ideia de uma estratégia de nuvem única é uma relíquia do passado. A realidade é um ecossistema multicloud cuidadosamente curado, onde cada plataforma foi escolhida por suas forças específicas para resolver desafios distintos. Essa complexidade é o seu campo de jogo diário.
O papel do Engenheiro de Nuvem moderno, como o de Gonçalves, evoluiu drasticamente. Não se trata mais apenas de provisionar servidores ou configurar redes. Hoje, a função abrange o design de arquiteturas resilientes, a automação de pipelines de dados complexos, a implementação de segurança em camadas, a governança rigorosa de custos (FinOps) e a habilitação de cargas de trabalho de Ciência de Dados e Inteligência Artificial que impulsionam o negócio. Gonçalves é a personificação desse profissional híbrido: parte Administrador de Sistemas, parte Engenheiro de Dados, parte Especialista em DevOps e parte Analista de Segurança.
Para entender a complexidade de tudo isso, vamos explorar as atividades realizadas por Gonçalves em um dia típico. A tabela abaixo ilustra o arsenal tecnológico do Gonçalves e plataformas e ferramentas do Dia a Dia:
A Manhã: Sincronização, Estratégia e Otimização (08:00 – 12:00)
08:00 – 08:30: A Visão Panorâmica e o Primeiro Alerta
O dia de Gonçalves não começa com a caixa de entrada de e-mails, mas com uma visão panorâmica de seu universo digital. Ele abre um dashboard personalizado no Grafana, uma obra de arte da observabilidade que ele mesmo construiu. Este painel agrega métricas chave do AWS CloudWatch, Azure Monitor e Google Cloud Monitoring, fornecendo uma visão consolidada essencial para gerenciar uma realidade multicloud. Ele analisa a saúde dos sistemas, as linhas de base de performance e o status dos jobs em lote que rodaram durante a noite. Tudo parece estável, até que um widget vermelho pisca no canto da tela.
Um alerta automatizado, meticulosamente configurado no Azure Monitor, chama sua atenção. Um workspace específico do Azure Databricks, utilizado intensivamente pela equipe de análise de marketing, excedeu sua previsão de custo diário em 300% durante a madrugada. A anomalia é gritante. Sem hesitar, Gonçalves define esta como sua primeira prioridade. Este é um exemplo clássico da responsabilidade de um Engenheiro de Nuvem: monitoramento proativo e otimização contínua, especialmente de custos, um tema recorrente e crítico na gestão de nuvem moderna.
08:30 – 09:00: Daily Stand-up da Equipe de TI
Gonçalves junta-se a uma rápida reunião virtual de 15 minutos no Microsoft Teams com sua equipe. Esta cerimônia ágil é importante para a sincronização da equipe. Quando chega sua vez, ele é conciso e direto: “Bom dia, time. Prioridade um para mim hoje é uma anomalia de custo no workspace Databricks de marketing. Vou investigar a fundo. Também tenho na fila um PR (Pull Request) do time de dados para um novo módulo Terraform do Fabric e um pedido dos Cientistas de Dados para um ambiente de sandbox no GCP.”
Esta breve atualização demonstra a natureza multifacetada de seu trabalho, destacando a colaboração com diferentes equipes e a gestão de tarefas em três plataformas distintas: Databricks, Fabric e GCP.
09:00 – 12:00: Foco Profundo em Código, Custo e Governança
Este bloco de tempo é dedicado a duas tarefas de trabalho profundo que exigem concentração total. Gonçalves, mestre em alternar contextos, mergulha na primeira enquanto mantém a segunda em espera.
Tarefa 1: FinOps em Ação – Investigando o Custo do Databricks
Gonçalves mergulha no Portal do Azure. Usando o Azure Cost Management, ele isola o pico de custo a um período de quatro horas durante a noite e o correlaciona com o histórico de jobs do Databricks. O culpado: um único job Spark que rodou por muito mais tempo do que o esperado.
Para entender o “porquê”, ele precisa ir mais fundo. Ele abre a interface de usuário do Spark (Spark UI) dentro do workspace do Databricks, uma ferramenta poderosa para dissecar a performance de jobs. A análise do plano de execução do job revela o problema: uma quantidade massiva de data shuffling (embaralhamento de dados entre os nós do cluster) e uma junção (join) extremamente ineficiente no script PySpark. O código estava lendo milhões de pequenos arquivos JSON diretamente do armazenamento, uma prática notoriamente lenta e cara. A solução ideal seria utilizar o formato otimizado para analytics da própria plataforma, o Delta Lake, que é projetado para lidar com esse tipo de cenário de forma muito mais eficiente. Gonçalves lembra do que aprendeu nos cursos da Data Science Academy e fica feliz por ter feito esse investimento na sua carreira profissional.
Em vez de simplesmente parar o job, Gonçalves adota uma abordagem colaborativa. Ele chama o Engenheiro de Dados líder da equipe de marketing no Slack, compartilha sua tela e explica a ineficiência do plano de consulta e seu impacto direto no custo. Isso é mais do que resolver um problema; é educar e capacitar outras equipes, um traço de um Engenheiro Sênior. Juntos, eles traçam um plano: a equipe de dados irá modificar o pipeline anterior para compactar os pequenos arquivos em tabelas Delta Lake maiores e reescrever a lógica da junção no PySpark. Enquanto isso, para estancar o sangramento financeiro, Gonçalves escreve um rápido script em Python usando a Azure CLI para reduzir temporariamente o número máximo de nós no auto-scaling do cluster. Uma solução tática imediata para um problema estratégico. Este cenário é uma demonstração primorosa do papel do Cloud Engineer moderno, combinando otimização de custos (FinOps), conhecimento profundo da plataforma, habilidades de scripting e colaboração interdepartamental.
Tarefa 2: IaC e Governança – Revisando a Infraestrutura do Microsoft Fabric
Enquanto a equipe de dados trabalha na correção do script, Gonçalves muda seu foco para o Azure DevOps. Um Pull Request (PR) aguarda sua revisão. A tarefa é aprovar um novo módulo do Terraform que automatiza a criação de um ambiente completo no Microsoft Fabric para o departamento financeiro. Isso inclui um Fabric Workspace, um Lakehouse para armazenamento de dados e todas as atribuições de controle de acesso baseado em função (RBAC).
A revisão de Gonçalves vai muito além da sintaxe do código. Ele atua como um guardião das políticas da empresa, aplicadas através do código:
Segurança: Ele verifica se o Service Principal Name (SPN) usado no pipeline do Azure DevOps tem apenas as permissões mínimas necessárias para criar os recursos, em vez de um papel excessivamente permissivo como Contributor em toda a assinatura. É o princípio do menor privilégio em ação.
Governança: Ele garante que todos os recursos provisionados estão sendo corretamente “etiquetados” (tagged) com cost-center, owner e environment. Essas tags são fundamentais para o processo de FinOps, permitindo um rastreamento de custos preciso.
Modularidade e Consistência: Ele elogia o desenvolvedor por utilizar o módulo Terraform interno da empresa para provisionar o Lakehouse. Isso garante que todas as instâncias do Lakehouse na organização sigam o mesmo padrão, facilitando a manutenção e a governança.
Melhores Práticas: Ele deixa um comentário sugerindo a adição de um bloco lifecycle com a diretiva prevent_destroy = true no recurso do Lakehouse. Uma medida simples que evita a exclusão acidental de um ativo de dados crítico.
Com seus comentários, ele aprova o PR. Imediatamente, um pipeline no Azure DevOps é acionado, executando terraform plan e terraform apply para implantar a infraestrutura no ambiente de desenvolvimento. Este processo ilustra como a Infraestrutura como Código (IaC) não é apenas uma ferramenta de automação, mas um pilar fundamental para manter o controle, a consistência e a governança em um ambiente de nuvem complexo e em constante mudança. A revisão do PR é o ponto de controle humano em um processo altamente automatizado, garantindo que o código que define a infraestrutura esteja alinhado com as políticas organizacionais de segurança e custo.
A Tarde: Habilitação, Segurança e Resolução de Incidentes (13:00 – 17:30)
13:00 – 15:00: O Sandbox do Cientista de Dados
Após o almoço, Gonçalves tem uma sessão de trabalho agendada com uma Cientista de Dados. O pedido é para um ambiente de sandbox (teste) seguro e isolado no Google Cloud Platform (GCP). O objetivo é experimentar a nova API PaLM 2, um dos modelos de linguagem da Google, para um projeto de análise de sentimento.
Em vez de uma série de cliques manuais no console do GCP, que seria propenso a erros e inconsistências, Gonçalves abre seu ambiente de desenvolvimento. Ele clona o repositório Git que contém o template Terraform padrão da empresa para “Sandboxes GCP”. Sentado com a Cientista de Dados, ele personaliza o arquivo de variáveis terraform.tfvars:
project_name = “finance-sentiment-analysis-sandbox”
billing_account = “ID_DA_CONTA_DE_FATURAMENTO”
enabled_apis = [“compute.googleapis.com”, “aiplatform.googleapis.com”]
O código Terraform é projetado para ser “seguro por design”. Ele provisiona automaticamente um novo projeto GCP, uma Virtual Private Cloud (VPC) dedicada para isolá-lo da produção, uma conta de serviço com apenas as permissões IAM necessárias para acessar a Vertex AI e o BigQuery, e uma instância do Vertex AI Workbench (um ambiente de notebook Jupyter gerenciado). Durante o processo, ele explica à Cientista de Dados por que ela não pode ter permissões de “Project Owner”, ensinando-a na prática sobre o princípio do menor privilégio.
Ele executa terraform apply. Em menos de dez minutos, o ambiente completo está pronto e configurado. Ele entrega à Cientista de Dados a URL do notebook e as credenciais da conta de serviço específica que ela deve usar. Este é um exemplo perfeito do Cloud Engineer como um facilitador da inovação, fornecendo às equipes as ferramentas de que precisam para experimentar de forma rápida, mas dentro de um framework seguro e governado.
15:00 – 16:00: Reunião de Revisão de Segurança
A próxima hora é dedicada a uma reunião semanal com a equipe de cibersegurança. O tópico principal é um alerta gerado pelo AWS GuardDuty, que detectou padrões de acesso anômalos a um bucket S3 crítico. Este bucket é a zona de pouso (landing zone) para dados brutos destinados ao Data Warehouse da empresa no Snowflake.
O analista de segurança apresenta os fatos: uma série de chamadas de API ListObjects originadas de um intervalo de IPs não familiar. Gonçalves, como dono da infraestrutura, assume a investigação técnica. Ele correlaciona os carimbos de data/hora do alerta com os logs do AWS CloudTrail para o bucket. Ele confirma a atividade, mas nota um detalhe: não houve chamadas GetObject ou PutObject. Isso significa que, embora alguém tenha “olhado” o que estava no bucket, nenhum dado foi lido, filtrado ou modificado.
Ele propõe um plano de remediação imediato: restringir a política do bucket S3 para permitir acesso apenas a partir do VPC endpoint específico usado pelo serviço de ingestão de dados e do IP conhecido do data center on-premise que envia os arquivos. Ele é encarregado de implementar essa mudança via Terraform, garantindo que a correção seja codificada e versionada. Ele cria um ticket no Jira para rastrear a tarefa. Este cenário demonstra o modelo de “responsabilidade compartilhada” da segurança na nuvem, onde o Cloud Engineer é um ator fundamental na implementação de controles e na resposta a incidentes.
16:00 – 17:30: Incidente Crítico – Pipeline de Dados do Snowflake Quebrado
O bipe agudo do PagerDuty soa em seu telefone e laptop simultaneamente. É um alerta de prioridade máxima. A mensagem é clara e preocupante: CRITICAL: Snowflake_Ingestion_Pipeline_Failure – No new data in RAW.SALES table for 60 mins. Este pipeline alimenta os dashboards de vendas mais críticos da empresa, usados pela liderança executiva.
A adrenalina sobe, mas o treinamento e a experiência assumem o controle. Gonçalves inicia um processo de troubleshooting sistemático, uma dança lógica através de múltiplas camadas de tecnologia:
Aceite e Comunicação: Ele imediatamente reconhece o alerta no PagerDuty e posta no canal #incidents do Slack: “Alerta recebido. Investigando falha no pipeline de dados de vendas do Snowflake.” A comunicação clara é o primeiro passo na gestão de incidentes.
Verificação do Destino (Snowflake): Ele se conecta ao Snowflake e executa uma consulta no esquema de informações para verificar o histórico de carregamento: SELECT * FROM information_schema.load_history WHERE table_name = ‘SALES’ ORDER BY last_load_time DESC;. A consulta confirma: o último carregamento bem-sucedido ocorreu há mais de uma hora. O pipeline está, de fato, parado.
Verificação do Mecanismo de Ingestão (Snowpipe): O próximo passo é verificar o Snowpipe, o serviço do Snowflake que ingere os dados automaticamente. Ele executa: SELECT SYSTEM$PIPE_STATUS(‘sales_pipe’);. O status é RUNNING, mas o lastReceivedMessageTimestamp está desatualizado. Isso indica que o Snowpipe está funcional, mas não está recebendo notificações de novos arquivos. O problema está mais acima na cadeia.
Verificação da Camada de Notificação (AWS SQS/S3): Ele navega até as configurações de eventos do bucket S3 no console da AWS. A configuração está correta: novos arquivos no bucket devem disparar uma mensagem para uma fila SQS, que o Snowpipe monitora. Ele verifica as métricas da fila SQS no CloudWatch e vê que o número de mensagens recebidas é zero. A conclusão é inevitável: o problema não é a notificação, mas a ausência de novos arquivos no bucket S3.
Verificação da Origem (Transferência On-Premise): Os arquivos são enviados de um data center on-premise usando um agente do AWS DataSync. Gonçalves verifica os logs da tarefa do DataSync no console da AWS e, finalmente, encontra a causa raiz. Uma mensagem de erro clara: Task failed: Permission denied on source file.
Causa Raiz e Resolução: Ele entra em contato com a equipe de administração de sistemas on-premise. Uma rápida investigação do lado deles revela que um script de “hardening” de segurança, executado rotineiramente para reforçar as permissões, rodou durante a noite e, inadvertidamente, removeu as permissões de leitura da conta de serviço usada pelo DataSync no servidor de arquivos de origem. A tensão clássica entre segurança e operações. O administrador corrige as permissões e reinicia a transferência.
Verificação: Minutos depois, Gonçalves vê novos arquivos aparecendo no bucket S3. As métricas da fila SQS começam a subir e uma nova consulta no Snowflake confirma: dados frescos estão fluindo para a tabela RAW.SALES. O fogo foi apagado.
Este exercício de troubleshooting é um testemunho da habilidade de um Cloud Engineer Sênior. Ele navegou mentalmente por um ambiente híbrido complexo, atravessando tecnologias de múltiplos fornecedores (On-premise, AWS DataSync, S3, SQS, Snowflake) para isolar e resolver um problema crítico.
Fim do Dia: Documentação e Aprendizado Contínuo (17:30 – 18:00)
O incidente está resolvido, mas o trabalho de Gonçalves ainda não terminou. A fase final do dia é tão essencial quanto as outras.
Documentação do Incidente: Ele abre o ticket do Jira para o incidente e cria uma nova página no Confluence. Lá, ele escreve uma Análise de Causa Raiz (RCA) concisa, mas detalhada: o que aconteceu, o impacto no negócio, a cronologia da investigação, a causa raiz (mudança de permissão on-premise) e a resolução. Mais importante, ele adiciona uma recomendação para prevenção futura: “Implementar um ambiente de teste para validar scripts de hardening antes da execução em produção”. Esta documentação é vital para auditorias futuras e para o aprendizado organizacional.
Fechando Laços: Ele atualiza o ticket do Jira sobre a otimização de custos do Databricks, registrando a correção imediata que ele aplicou e vinculando ao ticket da equipe de engenharia de dados para a refatoração do código a longo prazo.
Planejando o Amanhã: Ele revisa sua lista de tarefas, priorizando a implementação da nova política do bucket S3 que foi decidida na reunião de segurança.
Antes de encerrar o dia, ele dedica os últimos minutos ao seu próprio desenvolvimento. Ele abre um post de blog que salvou mais cedo: “Engenharia e Ciência de Dados com Microsoft Fabric“. Ele faz a leitura absorvendo os conceitos. Ele sabe que, em seu campo, o aprendizado contínuo não é um luxo, mas um requisito fundamental para se manter relevante e eficaz.
Conclusão: Mais do que Apenas Infraestrutura
O dia de Gonçalves foi um turbilhão: uma investigação de FinOps no Databricks, uma revisão de governança no Fabric, a habilitação de um Cientista de Dados no GCP e a extinção de um incêndio crítico que se estendia do Snowflake até a AWS e um data center físico.
Sua jornada diária reforça uma verdade central sobre a engenharia de nuvem moderna. O papel de um profissional como Gonçalves transcende em muito o de um profissional da nuvem, que apenas conecta sistemas. Ele é um parceiro estratégico para o negócio, um guardião da eficiência, segurança e disponibilidade do ativo mais valioso da empresa: seus dados. A infraestrutura que ele projeta, constrói e mantém é a fundação invisível, mas absolutamente essencial, sobre a qual repousa toda a estratégia de dados e Inteligência Artificial da organização. Ele está, de fato, “trabalhando nas nuvens”, não apenas dentro delas, mas construindo-as.
E você deseja, desenvolver suas habilidades em Cloud Computing de forma profissional, em diferentes plataformas e com material orientado às reais necessidades do mercado de trabalho? Então acesse o link abaixo, faça sua inscrição e comece agora mesmo:
Equipe DSA