Post on 17-Mar-2020
Globalcode – Open4education
https://br.linkedin.com/in/matsumota
http://leonardo-matsumota.com/
https://imasters.com.br/perfil/leonardomatsumota
Trilha DevOps
Leonardo Matsumota
Habilitando o Continuous Deployment em empresas regidas por compliance
Globalcode – Open4education
Livro Jornada DevOps
Livro Jornada DevOps – 33 colaboradores
Globalcode – Open4education
Se você não sabe
para onde ir,
qualquer caminho
serve.
Lewis Carroll
Globalcode – Open4education
O problema a ser resolvido
Globalcode – Open4education
O problema a ser resolvido
Estratégicos
Globalcode – Open4education
O problema a ser resolvido
Operacionais
> Defeitos são liberados a produção, causando interrupções
> Incapacidade de diagnosticar problemas em produção rapidamente
> Problemas aparecem somente em um ambiente específico
> Blame shifting / finger pointing
> Dificuldade em colocar novas releases em produção
> Erro Manual é comumente identificado com causa raiz
Globalcode – Open4education
O problema a ser resolvido
> As recomendações são mesmo aplicáveis ao seu ambiente?
Globalcode – Open4education
O problema a ser resolvido
> Existe silo entre Dev e Ops?
Dev
Precisa responder
rapidamente às
necessidades do
negócio
Ops
Precisa manter os
ambientes estáveis e
resilientes (qualquer
alteração deve ser feita
com muito cuidado)
Globalcode – Open4education
O problema a ser resolvido
> Verifique seus dados
Machine Learning Service DeskOpinião de
especialistas
Globalcode – Open4education
O problema a ser resolvido
> Throughput e Stability
T
H
R
O
U
G
H
P
U
T
S
T
A
B
I
L
I
T
Y
Globalcode – Open4education
O problema a ser resolvido
> Alavancagem estratégica
MVPs (minimum viable product)
Build-Measure-Learn-Loop
Time to market
Testes A/B
Globalcode – Open4education
O problema a ser resolvido
> Assessment
Possui questões em áreas chaves:
- Processo- Tecnologia e automação- Cultura- Monitoramento- Resultados
Ajudam no direcionamento dodesenvolvimento e entrega de sw
Globalcode – Open4education
O problema a ser resolvido
Doc teste técnico
Doc homologação
Doc publicação 17% 33%50%
Problema: Alto tempo em Change Management - SOX
(em documentações manuais e aprovações)
Globalcode – Open4education
O que é SOX?Sarbanes-Oxley (SOX)
É uma Lei Norte Americana sancionada
em 2002 em resposta aos escândalos
financeiros americanos (Xerox, Bristol,
Parmalat e outras).
SOX é uma forma encontrada pelo
governo para estabelecer recursos legais
nos preceitos básicos da governança
corporativa e das práticas empresariais
éticas.
O que é auditado?
• ITGC (IT General Control)
• Contas genéricas
• Senha
• Acesso privilegiado
• Revisão de acesso
• Backup, etc.
RDM (Requisição da mudança)
• Evidência do Teste Técnico
• Homologação
• Procedimento de publicação
Globalcode – Open4education
O que é SOX?Frases comuns nestes ambientes:
Desafiando o status quo...
• DevOps não é aplicável a organizações de capital aberto
• Não é compliance!
• Isso não pode, pois vai dar problema na auditoria
• Cloud não é seguro
Trabalhe junto com Controles Internos e Segurança da Informação para aplicar
Kaizen, afim de trazer melhorias ao processo organizacional
Globalcode – Open4education
Problem
Solving
Globalcode – Open4education
Os pilares da mudança
• Cross Functional Team
• Sem pessoas não há processo
• Engajamento com CI
• Comunicação
• Patrocinio
• Conhecimento
• Meetups
• Hackatons
• Tecnologia Social
(Slack, Wiki, etc.)
Processos Pessoas Ferramentas
• Boas práticas de desenvolvimento
• Processo de CI/CD
• Governança Ágil
• Arquitetura, Microserviços e APIs
• Containers, Infra as Code e Cloud
Globalcode – Open4education
Cadência Ágil
· Visibilidade nas tarefas que estão sendo
concluídas
· Adaptabilidade à mudança de requisitos
ou estratégia
· Alinhamento c/ prioridades do negócio
· Previsibilidade em time boxes menores
· Gerenciamento de dependência
· Os built-in controls minimizam o risco de
produzir desperdício e falta de progresso:
Eventos, Inspeções, Guardião e DoD
Gestão Ágil e DevOps
Globalcode – Open4education
Gestão Ágil e DevOps
Processos & Cultura
· Times multifuncionais
· Gamification em CI/CD: testes
unitários e qualidade do código
· Tecnologia social: tomada de
decisões e formação de ideias
· “Built-in quality”: qualidade
desde o início; o time é
responsável pela qualidade
· Boas práticas desenvolvimento
Globalcode – Open4education
Gestão Ágil e DevOps
Tecnologia
· Controle de versionamento fontes
· Revisão de código - SonarQube e
pair programming
· CI/CD - processo de build e release
· Gestão da configuração
· The Testing Manifesto
· Ciclo de vida da aplicação
Globalcode – Open4education
Azure PipelinesAzure Boards Azure Repos
Azure ArtifactsAzure Test Plans Marketplace de extensões
ALM (Ciclo de vida da aplicação)
Globalcode – Open4education
BoardsEstruturar os times de projeto.... .... e o template do processo Scrum
Agile
CMMI
Globalcode – Open4education
BoardsDefinir a cadência dos times Backlog: Epic - Feature - User Story - Task
Grandes iniciativas para entrega de novos produtos.Compreende uma grande quantidade de features
EPIC
FEATURE
USER STORY
Provém valor para os usuários. Realizado por estórias. Sãocapabilities que o PO está interessado
Representa a necessidade do usuário. Possui três aspectoscríticos 3 C’s (Cartão/Conversa/Confirmação)
Globalcode – Open4education
Continuous Delivery
“Perhaps the most important practice that
makes continuous integration possible is
that everybody checks in to mainline at least
once a day. If you’re not doing that, you’re
not doing continuous integration”.
Jez Humble, David Farley
Globalcode – Open4education
ReposConfiguration Management – Estratégia de fontes
As práticas de Continuous Integrationencorajam os Devs a integrar o seutrabalho continuamente - um novo códigofonte (branch ou trunk) ao principal(main).
Permite ajustes frequentes nos códigos,entregas rápidas e com menos bug.
Globalcode – Open4education
ReposConfiguration Management – Estratégia de fontes
ALM (Application Lifecycle Management)
• Developers: TDD, BDD and Unit Tests
• QA: manual, exploratory, load, security and performance test
Três aspectos importantes de CI:1) Controle de versão2) Build automatizado3) Acordo do time
Alguns pré-requisitos da CI:• Check in frequente• Suíte de testes abrangente• Processo de Build e Teste curto• Gerenciar o workspace de desenv.
Globalcode – Open4education
PipelineDefinições de Build
✓ Qualidade - análise de código
✓ Versionamento
✓ Definição de tarefas
✓ Compilação do código-fonte
✓ Cobertura de testes
Globalcode – Open4education
PipelineDefinições de Release
✓ Promoção de novas releases em ambientes
✓ Gatilho de testes automatizados (serviços, APIs)
✓ Assegurar que as necessidades do usuário
tenham sido atendidas
Globalcode – Open4education
Integração contínua
Algumas práticas recomendadas para as equipes:
• Builds devem passar no coffee test (< 5 minutos)
• Não fazer check in de build com falha
• Não vá embora com um build quebrado
• Esteja sempre preparado para reverter a revisão anterior
• Defina um time box antes de reverter• Ex: em 10 minutos se não obtiver a solução, reverter a revisão
anterior
• TDD (Test Driven Development)
Jez Humble: “The goal of continuous integration is that
software is in a working state all the time”.
Globalcode – Open4education
PipelineGerenciamento de Configuração e Orquestração
Apoiam a automação da infraestrutura na
organização. A gestão eficiente considera:
• Operação em larga escala
• Configuração e orquestração
• Provisionamento de ambientes
• Distribuição de recursos
• Desempenho e confiabilidade
• Integrado ao pipeline de CI/CD
Globalcode – Open4education
Testes
Agile Testing Quadrants
• Q1: TDD is the main technique. Not visible to customers. Usually in CI process. Includes code quality (SonarQube, etc.)
• Q2: BDD is the main technique. More related to external quality in application (visible to customers). Automated functional tests (Services, API and webservices) and record playback
• Q3: ensure customers needs have been met. Customer is involved in the execution.
• Q4: technical evaluation (load, security and performance test)
Unit Tests
Q1
Functional / BDD /
Record playback
Q2 Q3
Exploratory /
UsabilityLoad /
Performance /
Security
Q4
Globalcode – Open4education
Traditional x Agile
Symbio Test Automation
• Traditional: “find bugs” - manual tests are the greatest effort
• Agile: “prevent bugs” - unit tests are automated and represent 70% in application tests
Testes
Globalcode – Open4education
Change Management
Azure DevOps
Ciclo de vida da aplicação.
• Boards: gestão das tasks e recursos
• Repos: código-fonte e versionamento
• Pipeline: build e release
• Test Plans: plano de testes
ServiceNow
A solução de IT Service Management utilizada
na empresa - Incident Management, Problem
Management, e Request Management
Globalcode – Open4education
Change Management
Azure DevOps
Work items preenchidos
c/ os campos necessários
na gestão da mudança
Abertura de ticket e envio
dos campos Service Now
Sprint Planning
1
Desenvolvimento
2
Azure DevOps e .Net
Desenvolvimento do
backlog da Sprint.
Check-ins associados
ao WI
Teste Técnico
3
Azure DevOps
Evidência do teste
técnico no processo de
CI (SonarQube, testes
automatizado, etc.)
Homologação
4
Azure DevOps
Validação do usuário
(formalização via request
feedback)
Envio das evidências e
solicita a aprovação da
RDM no Service Now
5
Aprovação
e Deploy
Service Now
Aprovação GMUD
Azure DevOps
Deploy da aplicação
Globalcode – Open4education
Change Management1 Evidência do Teste Técnico
ANTES
▪ Execução de script manual
▪ Evidência do funcionamento
DEPOIS
▪ Quality Gates
– SonarQube
(Aplica política
de qualidade
na empresa)
▪ Cobertura de
código (testes
unitários)
Globalcode – Open4education
Change Management
DEPOIS
2 Homologação
ANTES
▪ Etapas manuais
▪ Sem integração com ferramenta
✓ Planos de Teste (vinculado ao Work Item) e automação
✓ Request feedback
✓ Com gravação ou screenshot
✓ Abertura de bug
Globalcode – Open4education
Change Management
DEPOIS
3 Procedimento de publicação
ANTES
▪ Passo-a-passo da publicação
▪ Todas etapas feitas manualmente
✓ Controle de releases
✓ Integração e aprovação na ferramenta para publicação
Globalcode – Open4education
Ferramentas
✓ Compartilhar e documentar info
✓ Automatizar KPIs e monitoramento
✓ ALM e segurança
✓ Infra as Code
✓ Versionamento e qualidade de código
✓ Automação de testes, build e release
Collaborative Tools
Wiki VSTS
Data Analysis Project Portfolio Hosting
Test Manager Automation Quality Version Control
Release Automation
Security
Development
Globalcode – Open4education
MonitoramentoMonitoramento da Sprint
Como está o progresso da Sprint?
(Burndown e Burnup)
Há bloqueios?
A velocidade do time
Distribuição das tarefas
Vazão x capacidade
Globalcode – Open4education
Monitoramento1. Service performance e uptime
2. Performance
3. Segurança
4. App metrics
5. Componentes da aplicação
6. CI/CD Process
1. Status da aplicação: verifica se o funcionamento dos serviços2. Checa tags e funções que os usuários terão experiência de uso3. Bad TLS, TLS settings, reset de senha, IPs de faixa inválida, erro 401, etc.
4. Telemetria da aplicação (checa o comportamento). Ex: número de logins na última hora
5. APIs – transações, throughput, error rate, etc.6. Pipeline de build e release
Globalcode – Open4education
Inscrição – Jornada DevOps 17/08
OBRIGADO!!!!!!Leituras recomendadas