Enfrentando desafios de escalabilidade nos anos 2000
Nos anos 2000, o Google enfrentava o desafio de lidar com bilhões de buscas, o que evidenciava a necessidade de escalabilidade na internet. O crescimento exponencial do Google durante esse período gerou um dilema entre as equipes de desenvolvimento e operações: enquanto uma precisava de velocidade, a outra demandava confiabilidade e estabilidade nas implantações. Esse conflito resultou em falhas nos serviços, levando até mesmo ao surgimento e descontinuação de alguns produtos.
Para ilustrar o cenário, podemos observar o crescimento da receita do Google de 2000 a 2010, que reflete o impacto do aumento de usuários e sistemas criados. Entre 2009 e 2011, dois produtos foram criados e posteriormente descontinuados. Em 2009, surgiu o Google Wave, uma plataforma de conversação integrada a redes sociais e e-mail, que foi descontinuada em agosto de 2010 devido à complexidade das integrações e à baixa adoção pelo público.
Explorando o impacto da privacidade e segurança
Em fevereiro de 2010, o Google já planejava o Google Buzz, uma rede social integrada ao e-mail, que foi descontinuada em 2011 por conta de uma polêmica envolvendo a privacidade de dados. A viabilidade se tornou um pilar primordial, pois, à medida que um produto cresce e integrações aumentam, qualquer risco de segurança ou vazamento de dados pode comprometer a integridade e reputação da aplicação. Hoje, divulgamos amplamente qualquer risco de privacidade envolvido, e, nesse caso, isso levou ao encerramento das atividades da plataforma.
A confiabilidade é, portanto, essencial. Logo após, o Google enfrentou um problema de localização global que afetou a qualidade das buscas. A falha na escalabilidade geográfica resultou em resultados irrelevantes e em idiomas incorretos, afetando milhões de usuários. Diante disso, o Google começou a repensar seu modelo de operação, que até então apresentava conflitos entre as equipes de desenvolvimento e operações, resultando em incidentes constantes e uma postura reativa, ou seja, focada em resolver problemas momentâneos sem investigar suas causas.
Introduzindo o conceito de SRE
Falta de métricas e processos automatizados pode resultar em ausência de visualização e visibilidade do que ocorre no sistema, especialmente do lado do usuário. Quando não há automação, imagine ter que lidar com incidentes por meio de processos manuais repetidos inúmeras vezes. Esse era o cenário antes do surgimento do SRE (Site Reliability Engineering).
O SRE surge para aplicar a engenharia de software nas operações, trazendo automação e reduzindo erros humanos, ou pelo menos diminuindo significativamente sua ocorrência. Ele resolve a falta de métricas e processos automatizados, focando em melhorias contínuas. A melhoria contínua é essencial porque, mesmo com métricas e processos automatizados, é necessário revisá-los conforme o sistema cresce.
Explicando os pilares do SRE
Chegamos, então, a um ponto crucial: os pilares do SRE. Quais são eles? SLI, SLO, SLA e o Error Budget. Utilizando a analogia do farol, o SRE está sempre atento ao SLI, que é um indicador de disponibilidade. O SLO representa o objetivo de disponibilidade que desejamos alcançar. O SLA é um acordo formal de prestação de serviço, garantindo que o serviço estará disponível e atingirá o objetivo do SLO. Caso contrário, há penalidades, como multas, por não cumprimento. Esses acordos incluem prazos, como resolver um incidente em quatro horas para garantir que o SLI atinja o SLO.
O Error Budget refere-se ao tempo que o sistema pode ficar indisponível, permitindo investir em inovação e melhorias do produto. Vamos explorar isso mais a fundo.
Expandindo o SRE globalmente
Do Google para o mundo, o SRE se expande em escala global, com práticas de confiabilidade e estabilidade que se tornaram fundamentais. A confiabilidade é orientada ao usuário, que se torna peça central na visão do SRE. O serviço deve ser confiável e atender às necessidades do usuário, garantindo sua satisfação. A entrega rápida e focada no usuário é essencial.
Cloud DevOps também são pilares que se unem nessa entrega, pois precisamos de infraestrutura e colaboração. A confiabilidade na estrutura é crucial para impulsionar e escalar a tecnologia.
Propondo um exercício prático
Agora, proponho um exercício: pense como SRE. Escolha um serviço que utiliza diariamente e liste dois riscos de confiabilidade e estabilidade que podem ocorrer. Reflita sobre quais métricas podem ajudar a prever essas falhas.
Na próxima aula, discutiremos o que acontece na rotina de um SRE.