Professional Documents
Culture Documents
Três maneiras:
Fluxo, Feedback, Aprendizado contínuo.
Manifesto ágil
4 valores:
-Indivíduos e interações entre eles mais que processos e ferramentas
-Software em funcionamento mais que documentação abrangente
-Colaboração com o cliente mais que negociação de contratos
-Responder a mudanças mais que seguir um plano
12 princípios:
1 Nossa maior prioridade é satisfazer o cliente através da entrega contínua e
adiantada de software com valor agregado
2 Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis
se adequam a mudanças, para que o cliente possa tirar vantagens competitivas
3 Entregar frequentemente software funcionando, de poucas semanas a poucos meses,
com preferencia a menor escala de tempo4
4 Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por
todo o projeto
5 Construir projetos em torno de indivíduos motivados. Dando a eles o ambiente e o
suporte necessário, e confiando neles para fazer o trabalho
6 O método mais eficiente e eficaz de transmitir informações para e entre uma
equipe de desenvolvimento é através de conversa face a face
7 Software funcionando é a medida primária de progesso
8 Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores,
desenvolvedores e usuários devem ser capazes de manter um ritmo constante
indefinidamente
9 Contínua atenção a excelencia técnica e bom design aumenta a agilidade
10 Simplicidade: A arte de maximizar a quantidade de trabalho não realizado é
essencial
11 As melhores arquiteturas, requisitos e designs emergem de times auto
organizáveis
12 Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e
então refina e ajusta seu comportamento de acordo
Infraestrutura ágil
Pipeline de implantação
É a sequencia de atividades automatizadas para levar o código da máquina do
desenvolvedor para o ambiente de produção. Essa expressão é uma abstração que
envolve os processos de:
Integração contínua
Entrega contínua
Implantação contínua
Controle de qualidade:
Aplicar Peer Reviews em mudanças
Automação de todo o trabalho possível
Testes sob demanda
Blameless Post-Mortem*
-Institucionalizar a melhoria do trabalho diário
Kaizen Blitzes - Foco em solução de débito técnico
-Transformar descobertas locais em melhorias globais
Tornar relatorios de Blameless Post-Mortem acessivel a todos
KBs e repositorios compartilhados
-Adicionar testes de resiliencia no trabalho diario
Game days: Simular falhas em larga escala
Injetar problemas na infraestrutura para avaliar o comportamento, vizando melhorias
Adicionar resiliencia ao trabalho diário
-Líderes devem reforçar uma cultura de Aprendizado
Recomendação para adoção DevOps - Começar com times mais bem dispostos e inovadores
(early adopters)
Identifique o time que suportará seu fluxo de valor
-Product Owners
-Development
-QA
-Operations
-Infosec
-Release managers
-Technology executives or value stream managers
*Criar um time 100% dedicado a transformação
Crie um espaço separado para este time (junto e isolado, livre de algumas regras e
políticas)
Arquétipos organizacionais
-Organizacao orientadas por funcao
-Organizacao orientadas por mercado ou Produto
-Organizacao matricial
Perfis de profissionais
I-Shaped - Especialista
T-Shaped - Generalista
E-Shaped - Alem de experiencia em varias areas tem especialidade em mais de
uma área (Maior aderencia com DevOps)
Pipeline de implantação
Ambientes identicos ao de produção
Ambientes Self-Service
Recursos para automatização:
Vmware, EC2, vagrant
Bare metal - PXE
Puppet, Ansible, Chef, Salt..
Containers
Nuvem publica, privada ou paas
Elinine ou automatize:
Comunicacoes
Aprovacoes
Colaboracao
Trabalhe com Containers
Trabalhe IaaC
Use repositorios compartilhados
Adapte o DoD
De muita atencao ao %C/A no fluxo de valor
Use ferramental para construcao de Ambientes
Automação de Testes
Integraçao contínua
CI -> CDelivery -> CD
É a primeira etapa do pipeline CI/CD, ou seja, interaçao do desenvolvedor com
o repositorio
Maior quantidade de Branches, mais dificil a Integracao
Estrategias de branch:
Otimizadas para produtividade individual
Muitas branches - Perda de Produtividade
Otimizadas para produtividade do time
Sem branches - Trunk-Based
Andon cord
Deployment lead time
Framework de monitoramento
Coleta de dados
Eventos, logs, metricas..
Devem ser enviados para um serviço comum
Ferramentas que coletam informaçõesde desempenho: Dynatrace,
AppDynamics, NewRellic, DataDog.....
Roteador de eventos
Armazena dados
Toma ação em cima dos dados armazenados
Telemetria Self-Service
Importante usar a telemetria em produção, pré-produção e pipeline
Ter condições de propagar informação para todos os envolvidos no fluxo de
valor
Senso de responsabilidade compartilhada
Garantir o fácil acesso aos dados coletados, preferencialmente através de API
´s self-service
Níveis de logs
Debug level - monitora tudo e gera bastante log
Info level - monitora ações específicas
Warn level - monitora condição que pode gerar erros
Error level - informações sobre condições de erros
Fatal level - ultimo status do erro
UX como feedback
Ajuda a criar requisitos não funcionais codificados para atendimento de
backlog
Criação de qualidade e resulta em empatia
Testes A/B
EX.: Com base em análise estatística, é possível medir a experiencia do
usuario com duas versoes diferentes de página
Para termos testes A/B rápidos e iterativo precisamos ter:
-Implantação em produção sob demanda
-Feature Toggles
-Poder entregar varias versoes de codigo simultaneas a segmentos de clientes
-Telemetria de produção em todos os niveis da stack de aplicação
Revisão de código
Peer Review
Pull request (GitHub foi pioneiro)
Inspeção aumentando a qualidade
Bom PR
Detalhes sobre o motivo da mudança
Como a mudança foi feita
Quais os riscos e contramedidas
Ruim PR
Sem documentação ou informação
O objetivo é ter colegas proximo, examinando as mudanças, gerando
melhor qualidade e aprendizado entre o time
Pair programming - programação por dois programadores aleatoriamente
Sem metricas de melhorias
Revisão contínua de código
Eficaz para encontrar bugs
Não funciona com desenvolvedores remotos e não possui metricas de
melhoria no processo
Over-the-shoulder
Informal e fácil de ser implementada
Pode funcionar com trabalho remoto
Sem verificação de correção
Sem métricas de melhoria de processo
Preparation > Inspection meeting > Rework > Complete
E-mail pass-around
Autor ou sistema SCM (sistema de gerenciamento de código) envia código
por e-mail para os revisores
Discução para sugestão de alterações
Pode ser feito remotamente
Sem interrupção dos revisores
Bastante ineficiente
Sem verificação de correção de bugs
Sem métricas de melhoria
Revisão de código assistida por ferramentas
Uso de ferramentas especializadas
Coletar arquivos, transmitir, exibir arquivos, comentários e
problemas entre os participantes
Possui metricas
Maior controle no fluxo de trabalho
Terceira maneira
Aprendizagem
Organizações resilientes
Habeis em detectar problemas, resolver, multiplicar os efeitos,
tornando as soluções disponiveis em toda a organização
Chaos Monkey
Injeção de falha no ambiente de produção (Netflix)
Oportunidade de aprendizado
Simian Army Monkey
Suite criada pela netflix para simulação de falha
Teste de resiliencia
Game Day
Engenharia de resiliencia / Teste de injeção de falhas
Expor defeitos latentes no sistema
Ajuda a criar manuais
Compartilhamento de conhecimento
Compartilhar bibliotecas permite a propagação de conhecimentos e melhorias
Manter bibliotecas atualizadas e completas
Grupos de discursão ou salas de bate-papo
Segurança da informação
Adicionar ao repositorio compartilhado, mecanismos ou ferramentas que
garantam a segurança no ambiente
Utilizar bibliotecas pré-validadas pela equipe de segurança
Bibliotecas de serviço de autenticação e criptografia
Controle de versão para mecanismo de comunicação sobre como as coisas estão
sendo feitas
Manter equipes de projetos envolvidas com a segurança da informação
Integrar equipe de InfoSec no projeto, o mais cedo possível (no final de cada
sprint)
Integração da segurança no pipeline de implantação
Automatizar ao máximo testes de secinfo
Feedback rápido sobre seu trabalho
Detectar e corrigir problemas de segurança com mais rapidez
Telemetria de segurança na aplicação
Logins de usuários (bem e mau sucedidos)
Redefinições de senha
Alteração de end. de e-mail
Alteração de cartão de crédito
Criar alertas sobre eventos importantes para detectar e corrigir mais
rapidamente
Effective Patching
Gerenciamento de Mudanças
Principais controles para reduzir os riscos de segurança na operação
REVISÃO
Telemetria
Informação rápida
Alertas pro-ativos
Framework de monitoramento:
Coletor de dados
Camada do logica de negocios
Camada de aplicacao
Sistema operacional
Roteador de eventos
Armazena eventos e metricas
Threshoulds
Telemetria self-service
Qualquer pessoa pode ter acesso as informações relevantes
Senso de responsabilidade compartilhada / Cultura sem culpa