Os fundamentos de SRE Site Reliability Engineering, ou SRE, é um termo desenvolvido por Dan Trenors-Loss, vice-presidente de engenharia do Google, criado por volta de 2003. SRE é uma disciplina que incorpora aspectos de engenharia de software e os aplica a problemas de infraestrutura e operações. que os aplica a problemas de infraestrutura e operações. Enquanto o DevOps é uma filosofia sobre colaboração entre operações e desenvolvimento, o SRE é mais concreto como uma função, focando na criação de sistemas altamente confiáveis e escaláveis através de automação e engenharia de software. Assim, podemos dizer que a classe SRE implementa a interface DevOps. Assim, podemos dizer que a classe SRE implementa a interface DevOps. SRE foi amplamente difundido por meio dos livros e adoção de empresas como o próprio Google, Netflix e Spotify. O primeiro ponto que a gente precisa entender é que SRE a gente está falando de fato de um cargo diferente de DevOps, que é muito mais relacionado a uma cultura. O objetivo principal de um SRE é criar sistemas de software distribuídos, ultra escaláveis e altamente confiáveis. E diferente do manifesto DevOps, que se originou na colaboração entre líderes e profissionais de diversas empresas, o SRE foi desenvolvido principalmente no google e teve aí o apoio né de empresas como netflix spotify é além dos livros né a gente vai falar um pouquinho mais sobre eles para disseminar todo esse conhecimento legal olhando os dois livros principais aqui que falam sobre SRE, o primeiro deles, o Site Reliability Engineering, How Google Runs Production Systems, é focado principalmente em explicar a abordagem do Google para SRE, incluindo princípios, práticas e contexto histórico, fornecendo alguns insights de como o Google implantou o SRE em grande escala. Então, ele é um livro um pouco mais conceitual, incluindo ali como funciona o papel das equipes de SRE ou como deve funcionar, objetivos de nível de serviço, como SLOs, por exemplo, políticas de error budget, monitoramento e gerenciamento de incidente. Já o segundo livro, o The Google Reliability Workbook, Practical Ways to Implement SRE, ele é um livro mais prático e mais direto. Ele oferece uma série de use cases do mundo real, recomendações práticas e exercícios para ajudar na implementação dos princípios de SRE. Então, ele é um livro muito mais focado na prática. Então, ele pega toda aquela roupagem do primeiro livro e mergulha em estratégias de como a gente fazer a implantação de tudo isso na prática. fazer a implantação de tudo isso na prática. Por isso que inclui ali diversos use cases, exercícios e exemplos práticos para que a gente consiga exercitar e facilitar o entendimento de como a gente consegue fazer a implementação disso dentro do nosso ambiente, dentro da nossa empresa, dentro da nossa corporação, como enraizar todos esses princípios. Beleza. Vamos falar um pouquinho mais agora sobre quais são esses fundamentos de SRE. O primeiro deles é operações são um problema de software. Todo SRE tem que ter isso enraizado de que para a gente resolver problemas, ou que os problemas são de fato problemas de software. Então isso bate em diversas outras técnicas, como por exemplo infraestrutura como código, gestão de configuração, onde a gente faz toda a administração do ambiente da infraestrutura utilizando o código também. Então, quando a gente for subir alerta, tipo, todo o MyG7 de infraestrutura, a gente tem que ter um MyG7 de que, cara, como a gente consegue fazer com que isso seja administrável, por exemplo, dentro de um Git kit com automação para facilitar a replicação desses ambientes e tudo mais orientação a nível de serviço um nível de serviço ou um SLO é uma meta de disponibilidade de um produto ou de um serviço. Essa meta, ela nunca tem que ser 100%. A gente vai falar um pouquinho mais disso, um pouquinho mais para frente aqui dentro do nosso curso. Mas a operação, pegando um fundamento aqui de SRE, ela tem que ser pautada em níveis de serviço. Redução de TOEIL. TOEIL é uma tarefa repetitiva, uma tarefa manual, um processo que a gente consegue colocar algum nível de automação. Então, é um dos fundamentos de SRE com que a gente faça redução desse tipo de atividade, de atividades repetitivas. Automação. Está muito relacionado ali à redução de TOEI, mas aqui a gente pega principalmente de que SREs vão desprender 50% do seu tempo com atividades relacionadas à operação e 50% do seu tempo em atividades relacionadas a desenvolvimento. Então, diferente de um SISADMIM tradicional, o SRE vai muitas vezes pegar parte do seu tempo e de fato desprender ali com resolução de problema, on-call, intervenção manual mas também tem que ter uma porcentagem relevante do seu tempo para trabalhar em atividades como desenvolvimento, redução de TOEI, o que a gente acabou de comentar criar novas funcionalidades olhar para a observabilidade de forma geral reduzir o custo das falhas, aqui a gente fala muito em descoberta tardia de problema. Então, quando a gente descobre muito tarde um problema, tipo, a gente tem uma reação, uma monitoração reativa, isso custa muito caro. Então, a gente precisa fazer com que a gente melhore, por exemplo, o nosso MTTR, o tempo de resolução das nossas falhas, a gente precisa criar mecanismos para a gente fazer implantações pequenas e de forma gradual, a gente precisa criar mecanismos de adotar diferentes mecanismos de adotar diferentes mecanismos de estratégia de deployment por exemplo, tudo isso vai fazer com que a gente falhe menos ou que essa falha seja menor e a gente consiga corrigir de uma forma muito mais fácil. E por fim responsabilidade compartilhada então o SRE ele está muito preocupado em como a gente consegue, primeiro, fazer com que esse ambiente produtivo seja extremamente resiliente, que tenha uma alta tolerância à falha, mas também compartilhar todo esse conhecimento de operação com os desenvolvedores.