O que é (e o que não é) DevOps para a Rivendel

Trabalhando com Cloud desde 2009, com Continuous Integration desde 2007 e Continuous Deploy há alguns anos, eu gostaria de compartilhar um pouco sobre o que é DevOps para a Rivendel. Em vez de definições genéricas, vamos na linha do Opinionated Software.

O que é DevOps:

  • É ter a certeza que os servidores criados automaticamente já nascerão monitorados
  • É utilizar provisionadores como Ansible, Chef ou Puppet para ter sua infraestrutura testável, como código
  • É ter o cuidado de versionar e testar suas receitas assim como seu código de aplicação
  • É conceber uma arquitetura já pensando nos componentes que irão falhar (todos) e como tolerar estas falhas
  • É pensar desde o começo em como aquele código vai sair do controle de versão e ser atualizado em dezenas/centenas de servidores
  • É pensar em todos os perfis de teste que podemos automatizar numa determinada aplicação
  • É implementar um deploy automatizado que te permite criar múltiplos servidores por dia sem intervenção manual
  • É monitorar não somente servidores e serviços, mas também a performance de aplicações e as métricas de negócio
  • É dimensionar os servidores de Produção após testes de carga iterativos com análise de métricas e rodadas de otimização
  • É dimensionar os servidores de Produção com tamanhos pequenos e explorar escalabilidade horizontal
  • É saber que sua arquitetura pode usar bastante mensageria e processamento assíncrono
  • É saber que temos centenas de Bancos de Dados à disposição, não somente aquele seu banco enterprise caro que não tolera particionamento

O que NÃO é DevOps:

  • Adicionar servidores manualmente no monitoramento
  • Falar que na minha máquina funciona
  • Editar arquivos diretamente no servidor de Produção: isso se chama Go Horse! 😃
  • Fazer backups manuais e só usando a funcionalidade automática de backup do seu provedor de infraestrutura
  • Fazer Backup e não validar o Restore!
  • Escrever logs no seu banco relacional
  • Ser avisado pela equipe de Marketing que sua aplicação caiu
  • Conectar individualmente em cada servidor para analisar logs visualmente

Eu poderia escrever centenas de itens em cada seção destas, mas que tal pedir a outros DevOps que contribuam com esta lista?

Vamos compilar novos itens e publicar uma versão desta lista com amigos da Rivendel! 😉

21