O documento descreve os princípios e práticas do DevOps. Ele explica que DevOps é uma abordagem cultural que une as equipes de desenvolvimento, garantia de qualidade e operações. Algumas práticas importantes incluem testes automatizados, gestão de builds e releases, monitoramento de aplicações e uso de ferramentas como ChatOps.
2. O QUE É?
● Abordagem cultural
● Conjunto de práticas e ferramentas para unificar
DEV, QA e OPS
3.
4. PESSOAS
● Coloca pessoas no mesmo compasso
● Garante ritmo nas entregas
● Aumenta fluxo de TI para as áreas de negócio
5. PRÁTICAS
● Devem preceder os produtos / tecnologia
● Endereçam melhoria nos atributos arquiteturais
de qualidade interna
○ Testabilidade
○ Manutenibilidade
○ Implantabilidade
6. PRÁTICAS
● Objetivos:
○ Maior garantia que a arquitetura definida será
transformada em código executável
○ Minimização de débitos técnicos
7. PRODUTOS
● Usa ferramentas de ciclo de vida para enlaçar
disciplinas importantes dentro de processos
simples e acionáveis
8.
9. ChatOPS
● Busca aproximar pessoas das equipes
● Alarmes técnicos automatizados
● Chat bots
● RocketChat, Slack, HipChat
10. Qualidade contínua do código
● Automatiza a avaliação da verificação da
qualidade do código por ferramentas
● Code Metrics Tools: avaliam o uso das melhores
práticas de programação no seu ambiente
● Architectural Analysis Tools: avaliam a aderência
do código com uma arquitetura de referência
11. Qualidade contínua do código
● Conceito de débito técnico
● Revisão em pares
● Ferramentas:
− CodeClimate
− SonarQube, SonarLint
− PMD, PHPMd
12. Testes automatizados
● Testes unitários
● Testes de integração
● Testes funcionais em telas - Selenium
● Aspectos não-funcionais - carga, segurança,
performance
● Podem rodar a cada build ou serem programados
13. Gestão dos Builds
● Executáveis gerados de forma consistente
● Base diária
● “Funciona na minha máquina”
● Utiliza repositórios de dependências
14. Gestão dos Builds
● Externaliza dependências e configurações para
um script específico e que possa ser movido
entre máquinas com consistência
● Conjunto mínimo de testes automatizados
● Confiabilidade no build gerado
15. Gestão de Release
● Automatiza o processo de promoção entre os
ambientes, de forma consistente
● Reduz tempo de entrega
● Reduz erros de implantação causadas por
parâmetros não configurados
● Minimiza atrito entre DEV, QA e OPS
16. Automação do Monitoramento de Aplicações
● Consiste de agentes que monitoram a aplicação
em produção
● Alarmes podem ser configurados se certas
condições forem alcançadas ou erros inesperados
surgirem
● Alarmes podem ser enviados para ferramentas -
RocketChat, Slack, HipChat