Mantenha o foco em entregar valor com DevOps, SRE e FinOps

mantenha-o-foco-em-entregar-valor-com-devops,-sre-e-finops

Nesse texto irei trazer algumas coisas que demorei a aprender na trilha que segui de desenvolvimento de software, talvez por nรฃo ter seguido um caminho mais โ€œtradicionalโ€, ou talvez porque nรฃo se vรช tantos holofotes/clickbaits sobre esses assuntos para quem escolheu o caminho de transformar cafรฉ em cรณdigo.

Quantos blogs sobre a melhor forma de usar a memรณria na tecnologia X vocรช jรก viu? Um vรญdeo sobre melhor estrutura de dados para o problema Y? Alguรฉm falando no passarinho azul que vocรช deveria prestar atenรงรฃo nas melhorias assintรณticas?

Mas quantos falam sobre confiabilidade? Ou sobre maximizar o retorno sobre o investimento? Que te ensinam a transformar o seu ambiente para que todos trabalhem focados em entregar valor?

Talvez o que tenha me levado a ser um programador um cado melhor nรฃo foi saber extrair atรฉ a รบltima gota de suco que um framewok pode dar, talvez tenha sido algo mais simples, talvez atรฉ mais obvio, talvez tenha sido o fato de eu ter aprendido que devemos resolver o problema considerando a perspectiva do usuรกrio/cliente e a perspectiva de quem paga para manter o sistema de pรฉ.

Aqui entra o kit de ferramentas que no inรญcio costumamos deixar para trรกs, e, estranhamente, depois temos um certa resistรชncia em voltar para buscar esse tal kit, ou simplesmente, talvez por conta de como a mรญdia/mercado lida com ele, nรฃo damos a devida atenรงรฃo, apesar disso, esse kit รฉ o que traz aย transformaรงรฃo. Aqui entram as ferramentas que vem com a cultura DevOps, as prรกticas de SRE e os princรญpios do FinOps.

A cultura DevOps

Muito se fala em DevOps, mas colocar toda a teoria em pratica nรฃo รฉ trivial. Vocรช facilmente verรก vagas DevOps que estarรฃo pedindo conhecimentos em alguma FERRAMENTA de CI/CD, FERRAMENTA disso e FERRAMENTA daquilo. Talvez por isso que essa โ€œculturaโ€, quase que ironicamente, tem ficado distante do mundinho das pessoas desenvolvedoras, onde muitas vezes ainda se joga o pacotinho por cima do muro, onde o detentor do conhecimento sobre a FERRAMENTA de sustentaรงรฃo que acaba ficando com a carga da operaรงรฃo.

O DevOps atรฉ pode ser isso sim, todavia, como cultura, deve ajudar a alinhar pessoas, processos e ferramentas para um foco mais direcionado ao cliente. Como cultura, nรฃo deve ser de um time, nรฃo deve ser de uma pessoa. Vocรช, todos os dias, pode praticar essa cultura, vocรช pode ser a pessoa que estรก em busca de aumentar a transparรชncia, a comunicaรงรฃo e a colaboraรงรฃo.

Algumas das principais prรกticas de DevOps incluem:

  1. Colaboraรงรฃo: DevOps enfatiza a necessidade de as equipes trabalharem juntas de forma integrada, quebrando silos e promovendo uma cultura de colaboraรงรฃo entre os departamentos.
  2. Integraรงรฃo: DevOps incentiva a integraรงรฃo das equipes de desenvolvimento e operaรงรตes, permitindo uma comunicaรงรฃo e coordenaรงรฃo mais suaves durante todo o ciclo de vida do desenvolvimento de software.
  3. Automaรงรฃo: DevOps enfatiza o uso de ferramentas e processos de automaรงรฃo para agilizar o desenvolvimento, teste e implantaรงรฃo, reduzindo a probabilidade de erro humano e melhorando a eficiรชncia.
  4. Integraรงรฃo Contรญnua: DevOps promove a integraรงรฃo contรญnua de alteraรงรตes de cรณdigo, permitindo que as equipes detectem e resolvam problemas no inรญcio do processo de desenvolvimento.
  5. Entrega contรญnua: o DevOps enfatiza a importรขncia da entrega contรญnua, permitindo que as equipes lancem software com rapidez e confianรงa.
  6. Continuous Deployment: DevOps promove o uso de continuous deploy, permitindo que as equipes liberem alteraรงรตes de cรณdigo de forma automรกtica e contรญnua, sem a necessidade de intervenรงรฃo humana.
  7. Teste: DevOps enfatiza a necessidade de testes completos durante todo o ciclo de vida do desenvolvimento de software, garantindo que o software seja confiรกvel, seguro e de alta qualidade.
  8. Monitoramento: o DevOps enfatiza a importรขncia do monitoramento de software na produรงรฃo, permitindo que as equipes detectem e resolvam rapidamente os problemas ร  medida que surgem.
  9. Seguranรงa: DevOps coloca uma forte รชnfase na seguranรงa em todo o ciclo de vida do desenvolvimento de software, garantindo que o software esteja seguro e protegido contra ameaรงas potenciais.
  10. Aprendendo com as falhas: DevOps promove uma cultura de aprendizado e melhoria contรญnua, incentivando as equipes a aprender com as falhas e fazer melhorias iterativas ao longo do tempo.
  11. Melhoria do trabalho diรกrio: DevOps incentiva as equipes a melhorar continuamente seus processos de trabalho diรกrios, buscando maior eficiรชncia e eficรกcia em todos os aspectos do ciclo de vida do desenvolvimento de software.

Referรชncias:

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

The Phoenix Project: A Novel about It, Devops, and Helping Your Business Win

The Unicorn Project

As prรกticas de SRE

SRE vai no mesmo caminho de DevOps, dado que o prรณprio Google inicia o livro comย class SRE implements interface DevOpsย nรฃo seria surpresa esse caminho, contudo nรฃo se trata de manter FERRAMENTAS de observabilidade ou FERRAMENTA XPTO, tampouco pra ser a operaรงรฃo com uma nova roupagem. SRE emerge das prรกticas de engenharia para mudar todo o ciclo de vida de desenvolvimento de sistemas (SDLC). No kit de ferramentas de SRE vocรช vai ter o seu usuรกrio/cliente no centro da discussรฃo. Vocรช vai aprender que a esperanรงa nรฃo รฉ uma estratรฉgia, entรฃo, com isso, vocรช precisa responder a seguinte pergunta: com que seus usuรกrios/clientes se importam? Se vocรช nรฃo tem esse resposta, nรฃo adianta nenhum cรณdigo, nรฃo adianta nenhuma metodologia รกgil hypada. Sem essa resposta รฉ tiro no escuro. Em suma, aqui vocรช vai adquirir ferramentas para construir o projeto confiรกvel e manter-lo saudรกvel em produรงรฃo.

SLA

Se alguma demanda chegou para ser feita sem que fique claro a volumetria, tempo mรกximo que uma operaรงรฃo pode ser executada e quantidade de erros mรกximos tolerados (existem muitos outros SLIs, mas nรฃo รฉ o foco aqui), provavelmente nรฃo estamos com um SLA bem definido, ou seja, provavelmente nรฃo estamos nos esforรงando para ter uma mรฉtrica que corresponda, mesmo que de forma imprecisa, a satisfaรงรฃo do nosso usuรกrio/cliente. Sem SLA nรฃo estaremos prontos para criar mecanismos de defesa(SLO) para que os problemas nรฃo impactem negativamente a receita.

Algumas das principais prรกticas do SRE incluem:

  • Objetivos de nรญvel de serviรงo (SLOs): defina objetivos claros e mensurรกveis para a disponibilidade, latรชncia e desempenho de seus sistemas.
  • Orรงamentos de erro: Use SLOs para definir orรงamentos de erro, que definem o nรญvel aceitรกvel de degradaรงรฃo do serviรงo que pode ocorrer sem afetar os usuรกrios.
  • Automaรงรฃo: Automatize o mรกximo possรญvel para reduzir o risco de erro humano e melhorar a confiabilidade.
  • Monitoramento: Monitore seus sistemas continuamente para detectar e diagnosticar problemas rapidamente.
  • Resposta a incidentes: Desenvolva um processo de resposta a incidentes claro e bem documentado para minimizar o tempo de inatividade e mitigar o impacto das falhas.
  • Revisรฃo pรณs-incidente: Conduza revisรตes completas pรณs-incidente para identificar as causas principais das falhas e evitar que elas ocorram novamente no futuro.

Referรชncias:

Engenharia de Confiabilidade do Google: Como o Google Administra Seus Sistemas de Produรงรฃo

The Site Reliability Workbook: Practical Ways to Implement SRE

Seeking Sre: Conversations about Running Production Systems at Scale

Database Reliability Engineering: Designing and Operating Resilient Database Systems

Microsserviรงos Prontos Para a Produรงรฃo: Construindo Sistemas Padronizados em uma Organizaรงรฃo de Engenharia de Software

Os princรญpios do FinOps

ร‰ uma prรกtica comum no mercado que a gestรฃo do custo da nuvem seja centralizada em uma รกrea. Essas informaรงรตes de custo sรฃo passadas ao setor financeiro, que tenta se manter atualizado sobre o custo dos prรณximos meses da nuvem.

Assim como na era Dev vs Ops, jรก ficou claro que essa fluxo nรฃo รฉ sustentรกvel, precisamos nos conscientizar que nossas aplicaรงรตes sรฃo (ou deveriam ser) da responsabilidade de quem constrรณi, lembra โ€œyou build it, you run itโ€?,ย entรฃo por que a responsabilidade sobre custos e de como maximizar o retorno sobre o investimento nรฃo deveria ficar com quem desenvolve?

Mudanรงa cultural

Existe toda uma jornada FinOps para ser aplicada, e assim como DevOps, tambรฉm hรก uma barreira cultural. FinOps trata de remover silos e bloqueadores, capacitar os times de engenharia para fornecer melhores recursos, aplicativos e migraรงรตes com mais eficiรชncia; tambรฉm traz uma conversa multifuncional sobre onde e quando investir, deixando claro para todos porque estรฃo tomando essas decisรตes.

Aqui estรฃo alguns dos princรญpios-chave do FinOps:

  • Responsabilidade: Cada equipe e indivรญduo deve ser responsรกvel pelos custos que incorrer.
  • Responsabilidade: Equipes e indivรญduos devem ser responsabilizados por seus gastos e devem ter visibilidade do impacto de suas decisรตes no orรงamento geral.
  • Proatividade: รฉ importante identificar e resolver possรญveis problemas de custo antes que eles se tornem um problema.
  • Eficiรชncia: Otimize os gastos usando os recursos mais econรดmicos e eliminando o desperdรญcio.
  • Transparรชncia: tornar os custos visรญveis e compreensรญveis para todos na organizaรงรฃo.
  • Colaboraรงรฃo: promova a colaboraรงรฃo entre as equipes para garantir que os custos sejam gerenciados de forma eficaz em toda a organizaรงรฃo.

Referรชncias:

FinOps Foundation โ€” What is FinOps?

AWS Cloud Financial Management

Cost Optimization Pillar โ€” AWS Well-Architected Framework

Conclusรฃo:

Devemos lembrar que a programaรงรฃo รฉ uma forma de resolver problemas, e nรฃo um fim em si. Se ficarmos presos na obsessรฃo pela otimizaรงรฃo prematura e pelo conhecimento tรฉcnico detalhado, podemos perder de vista o objetivo principal: entregar valor para o usuรกrio/cliente. As prรกticas DevOps, SRE e FinOps podem nos ajudar a manter o foco nesse objetivo, trabalhando em equipe, criando soluรงรตes eficientes e com custos controlados.

Por fim, gostaria de deixar um รบltimo pensamento:

โ€œO software รฉ uma arte. ร‰ algo que requer habilidade, paciรชncia e dedicaรงรฃo. ร‰ um processo contรญnuo de aprendizado, erro e correรงรฃo. E acima de tudo, รฉ um processo colaborativo, que exige a contribuiรงรฃo de muitos para alcanรงar o sucesso.โ€ โ€” Linus Torvalds

Espero ter contribuรญdo com algumas ideias para a sua jornada como pessoa desenvolvedora. Lembre-se sempre de manter o foco no usuรกrio/cliente, trabalhar em equipe e buscar o aprendizado constante. E acima de tudo, nรฃo se esqueรงa de tomar um cafรฉ de vez em quando para manter as ideias fluindo!

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
build-a-crud-rest-api-in-go-using-mux,-postgres,-docker-and-docker-compose

Build a CRUD Rest API in Go using Mux, Postgres, Docker and Docker Compose

Next Post
build-a-responsive-modal-using-css-

Build a Responsive Modal using CSS ๐Ÿš€

Related Posts