DevOps vs SRE vs Platform Engineering

Engenharia DevOps, Engenharia de Confiabilidade de Sites (SRE) e Engenharia de Plataformas são sinônimos com diferenças mínimas entre funções e responsabilidades.

DevOps

 

DevOps

DevOps é uma metodologia de desenvolvimento de software que combina as disciplinas de desenvolvimento de software (Dev) e operações de TI (Ops) para otimizar e acelerar a entrega de aplicativos de software. As origens do DevOps podem ser rastreadas até o movimento de desenvolvimento de software ágil no início dos anos 2000, que enfatizava a colaboração, flexibilidade e iteração rápida.

DevOps também enfatiza a colaboração próxima entre desenvolvedores de software, equipe de operações de TI e outros interessados, com foco na entrega de aplicativos de software de alta qualidade que atendam às necessidades dos clientes e usuários finais.

Engenharia de Confiabilidade de Sites (SRE)

Engenharia de Confiabilidade de Sites (SRE) é uma abordagem de engenharia de software que se concentra na confiabilidade e disponibilidade de sistemas de software. Foi introduzida pela primeira vez pelo Google em 2003 para gerenciar e manter os sistemas complexos que alimentam seus serviços. SRE é diferente do DevOps no sentido de que coloca maior ênfase na confiabilidade e disponibilidade, enquanto o DevOps está mais focado na colaboração e agilidade no desenvolvimento e implantação de software.

 

Engenheiros SRE são responsáveis por construir e manter sistemas altamente confiáveis e escaláveis, por meio do uso de automação, ferramentas de monitoramento e alerta. Eles trabalham em estreita colaboração com desenvolvedores de software, engenheiros de infraestrutura e outros interessados para garantir que os sistemas sejam projetados e operados para serem altamente disponíveis e confiáveis.

 

Ao contrário do DevOps, equipes SRE são tipicamente responsáveis pelo ciclo de vida completo de um sistema, incluindo design, desenvolvimento, teste, implantação e operação contínua. SRE e DevOps compartilham muitos princípios, como automação, melhoria contínua e uma cultura de colaboração e transparência, mas seu foco e escopo são diferentes, com SRE colocando maior ênfase na confiabilidade e disponibilidade.

Engenharia de Plataformas

Engenharia de Plataformas é uma abordagem de engenharia de software que se concentra na construção e manutenção da infraestrutura e plataformas subjacentes que suportam aplicativos de software. Engenheiros de plataformas são responsáveis por projetar e construir a infraestrutura de software e plataformas que permitem aos desenvolvedores de software construir, testar e implantar seus aplicativos. Eles também garantem que as plataformas e infraestrutura sejam escaláveis, confiáveis e seguras.

A engenharia de plataformas é semelhante à SRE e DevOps, pois todas as três abordagens enfatizam automação, monitoramento e melhoria contínua. No entanto, a engenharia de plataformas difere de SRE e DevOps em seu foco e escopo. Enquanto SRE se concentra em garantir a confiabilidade e disponibilidade de sistemas, e DevOps se concentra na colaboração e agilidade no desenvolvimento e implantação de software, a engenharia de plataformas se concentra na construção e manutenção da infraestrutura e plataformas subjacentes que suportam aplicativos de software.

Engenheiros de plataformas trabalham em estreita colaboração com desenvolvedores de software, engenheiros de infraestrutura e outros interessados para garantir que as plataformas e infraestrutura sejam projetadas e operadas para atender às necessidades da organização e de seus clientes.

 

A realidade das Operações de TI Modernas

Não se preocupe com os detalhes desses três frameworks gerenciais e tente seguir qualquer um desses guias ao pé da letra pelo texto fundamental (Projeto Fênix, Engenharia de Confiabilidade de Sites: Como o Google Executa Sistemas de Produção, etc). Em minha década de experiência em tecnologia da informação, as organizações mais disfuncionais eram as empresas que seguiram uma interpretação dogmática de frameworks de TI e não permitiram espaço para situações ambíguas. O que funciona para o Google pode não funcionar para sua empresa com base em seu orçamento, habilidade, produto e indústria.

Um Engenheiro DevOps é um oximoro na literatura filosófica do DevOps porque o DevOps não é suposto ser o trabalho de uma pessoa, mas sim uma filosofia que remove silos e incentiva a colaboração entre equipes de Tecnologia da Informação e Engenharia de Software. DevOps é suposto ser um esforço de equipe e não uma posição.

No entanto, na prática, fazer com que todos os engenheiros de software aprendam pipeline CICD, conceitos avançados de segurança, infraestrutura como código, monitoramento e alerta, tende a sobrecarregar a maioria dos engenheiros, há simplesmente muito a aprender. É difícil ser um excelente desenvolvedor de front-end e também ser um especialista em Azure, Terraform, Ansible, Kubernetes e Prometheus não é pragmático. No momento em que o desenvolvedor de front-end aprende até metade do conjunto de ferramentas DevOps comum, ele estará desatualizado com os avanços em React e desenvolvimento front-end a menos que sacrifique toda a sua vida pessoal por uma corrente interminável de cursos online massivos e abertos (MOOC).

Há simplesmente muito a aprender de cada engenheiro para ser um especialista em DevOps e um excelente engenheiro de software. Em organizações maiores, pode haver papéis e divisões separadas entre Engenheiros de Plataforma, DevOps e SRE, mas em startups menores, os papéis frequentemente se fundem em um único papel que também abrange cibersegurança.

Gerenciar infraestrutura na nuvem, implantações, cibersegurança e confiabilidade geralmente é uma única função em organizações menores. Engenheiro de infraestrutura, engenheiro DevSecOps, Arquiteto de Nuvem, SRE, engenheiro de plataforma. Honestamente, o título não importa, o que importa é que haja uma função dedicada para criar plataformas na nuvem em empresas menores e inovadoras.

Cursos e treinamentos

 

Compartilhe esse conteúdo

Posts Relacionados

O que é DevOps?

DevOps é uma cultura, filosofia ou prática que busca a colaboração e a comunicação entre os times de desenvolvimento (Dev)

LER MAIS