37
©2019 Avanade Inc. All Rights Reserved. 1 DevOps: An Architect point of view TDC SP Julho 2019 Alexandre B. Daccas Mendonça

DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 1

DevOps: An Architect point of view

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 2: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

2©2019 Avanade Inc. All Rights Reserved.

Sobre mim

• Alexandre Bogiani Daccas de Mendonça (Aka Daccas)• 20 anos de experiência

• Pós graduado em Engenharia de software

• Especialista em arquiteturas web, Azure, Kubernetes, DevOps

• Atuação em várias áreas de negócio: finanças até aviação

• Apaixonado por tecnologia, ferramentas e hobby modelismo

Page 3: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 3

DevOps as part of modern ALM

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 4: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

4©2019 Avanade Inc. All Rights Reserved.Quem nunca…

Page 5: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

5©2019 Avanade Inc. All Rights Reserved.

Desenvolvimento ágil necessita de entrega rápida

Agile Development

Agile Delivery

Page 6: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

6©2019 Avanade Inc. All Rights Reserved.

Entrega e Monitoramento como parte de um processo infinito.

DEV OPS

Page 7: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

7©2019 Avanade Inc. All Rights Reserved.

Cadeia de valor (Value Stream)• Crie foco aonde realmente importa.

PlanejamentoVerificar

PermissõesDesenho

Criação de N Documentos

ConstruçãoBurocracia

de infra estrutura

Entrega

Page 8: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

8©2019 Avanade Inc. All Rights Reserved.

Framework ALM para DevOps

Configuration

Page 9: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 9

The three ways….

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 10: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

10©2019 Avanade Inc. All Rights Reserved.©2019 Avanade Inc. All Rights Reserved. 10

O Conceito de DevOps

Dev

Ops

Dev Ops Dev Ops

Flow Feedback Experimentation

Page 11: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 11

First way: Flow (Entrega)

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 12: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

12©2019 Avanade Inc. All Rights Reserved.©2019 Avanade Inc. All Rights Reserved. 12

Foco no tempo de execução (Lead Time)

Page 13: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

13©2019 Avanade Inc. All Rights Reserved.

Elementos chaves da prática do Flow

• Defina tamanho máximo do seu trabalho (WIP – Work in progress)

• Reduza o tamanho das suas tarefas.

• Reduza a quantidade de passagens de bastão.

• Crie as fundações de um pipeline de implantação (deployment pipeline)

• Crie e habilite testes automáticos rápidos e confiáveis

• Crie a prática de integração contínua

• Planeje e automatize entregas de baixo risco

Page 14: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

14©2019 Avanade Inc. All Rights Reserved.

CI/CD pipelines (Continuous Integration/Deployment)

• CI - Integração contínua é uma prática de desenvolvimento software em que os membros do time integram o seu código frequentemente. Normalmente cada pessoa integra um pedaço de código/funcionalidade no mínimo 1x ao dia, gerando múltiplas integrações por dia.

• Cada integração é verificada por um processo de build automatizado (que incluem testes), que detectam erros de integração rapidamente.

• CD - Implantação continua é a prática em adição com a integração contínua, em que você implanta funcionalidades de sua aplicação em produção frequentemente através de uma plataforma self-service.

Integração contínua + implantação contínua = Entrega contínua

Page 15: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

15©2019 Avanade Inc. All Rights Reserved.

Estratégias de implantação contínua – blue/green

BDAppWeb

Green

Blue

Green

Blue

Green

Blue

• 2 ambientes de produção – “Blue” e “Green”

• Somente 1 atendendo as requisições dos usuários, outro serve como distribuição antecipada de novos releases.

• Implantação para o ambiente inativo (Blue) e realização de testes de prontidão

• Liberação = redirecione o tráfego do ambiente Green para o ambiente Blue.

• Rollback = volte o tráfego para o ambiente Green

Gre

en =

ativo

Blu

e =

inativo

Usuários

Router

Page 16: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

16©2019 Avanade Inc. All Rights Reserved.

Estratégias de implantação contínua – canary

• Implantação = promova aos poucos para um número menor de usuários e vá aumentando aos poucos.

• Monitore o andamento e o comportamento da aplicação e realize ações para continuar ou rollback

Usuários

Internos

A1

Novo pacote

A2 A3

A2 ok

Usuários

Conjunto pequeno Todos os usuários

Router/Balancer

Page 17: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 17

Second way: Feedback (Monitoramento)

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 18: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

18©2019 Avanade Inc. All Rights Reserved.

A importância do monitoramento…

Page 19: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

19©2019 Avanade Inc. All Rights Reserved.

Um cenário muito comum…

Culpe os

desenvol-

vedores

Reinicie

todos os

servidores

Reinicie o

próximo

servidor

Reinicie o

Servidor

Produção

fora do ar

Empresas desorganizadas usam táticas não

disciplinadas e reiniciam servidores

indiscriminadamente

Page 20: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

20©2019 Avanade Inc. All Rights Reserved.

Elementos chaves da prática do Feedback

• Crie telemetria do seu produto

• Tenha dados imediatamente que te informem o que está ocorrendo.

• Analise a telemetria

• Antecipe problemas e otimize para atingir seus objetivos

• Habilite a prática do retorno ao time

• Para que cada vez mais o time (dev e ops) trabalhem juntos para entregar códigos com maior qualidade

• Desenvolvimento baseado em hipótese ou teste A/B

• Através do feedback descubra se seus clientes gostam de uma nova funcionalidade.

Page 21: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

21©2019 Avanade Inc. All Rights Reserved.

O que devemos monitorar?

Page 22: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

22©2019 Avanade Inc. All Rights Reserved.

Framework de monitoramento

Regras de negócio

Aplicação

Infraestrutura Lo

gs,

Even

tos,

Métr

icas

Roteador

Destinos:

BDs,

Painel de

controle

Alertas

Page 23: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

23©2019 Avanade Inc. All Rights Reserved.

Exemplos de dados para telemetria

número de vendas,

receitas, qtde novos

usuários, taxa de

conversão, resultados

de teste A/B.

Tempo de resposta,

erros do sistema,

tempos de

transações…

BD, Sistema

operacional, rede,

discos,

Trafego web, CPU,

memória, …

Erros, Falhas, dados

estatísticos de uso,…

Resultados dos

pipelines, taxa de

entrega, lead time,

resultado dos testes, …

Negócios Aplicação Infraestrutura Software no

cliente

Pipelines

CI/CD

Use dados ao invés de rumores, culpa, etc…

Page 24: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

24©2019 Avanade Inc. All Rights Reserved.

Painéis de controle• Central de controle de telemetria

• Aplicação de limites para identificar a saúde das aplicações

• Crie alertas para antecipar problemas.

• Analise tendências para prever falhas ou

• maior demanda.

Page 25: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 25

Third way: Experimentation

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 26: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

26©2019 Avanade Inc. All Rights Reserved.

Práticas chaves da experimentação

• Estabeleça uma cultura de aprendizado…

• …seja transparente e aberto quando as coisas saem erradas.

• Injete falhas controladas nas aplicações…

• …para criar resiliência no seu software

• De melhorias pequenas para grandes melhorias…

• …faça pequenas melhorias em avanços globais

• Separe um tempo…

• …para criar melhorias organizacionais e aprendizado

• Crie processos de revisão para melhoria da qualidade do código

• Foco em peer reviews e pair programming

Page 27: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

27©2019 Avanade Inc. All Rights Reserved.

Reuniões de post mortem

Erro humano não é a causa de problemas;

em vez disso, o erro humano é a

consequência das falha de desenho,

processos e/ou instrução que recebemos.

Page 28: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

28©2019 Avanade Inc. All Rights Reserved.

Reuniões de post mortem

• Construa uma linha do tempo e obtenha todos os detalhes de várias perspectivas sobre a falha, sem punições as pessoas envolvidas.

• Empodere todos os desenvolvedores permitindo que eles contribuam com todas as informações possíveis para evitar novas falhas que já ocorreram.

• Encoraje as pessoas que causaram uma falha que seja porta vozes para educar o restante da organização a como não causá-los no futuro, eles são as melhores pessoas para faze-lo.

• Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação e julgamento dessas decisões.

• Proponha contramedidas para prevenção de acidentes similares no future. Garanta que essas contramedidas sejam documentadas, que todos saibam e prazos para resolução.

Page 29: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

29©2019 Avanade Inc. All Rights Reserved.

Injeção de falhas controladas.

• A construção de aplicações resilientes necessitam de experiência com falhas.

• Não espere que as coisas parem em produção

• Insira falhas de modo controlado e planejado

• Use as ferramentas de monitoramento para detecção de falhas/comportamento

• Comece pequeno e de forma inteligente

• Tipos comum de falhas

• Rede

• Hardware

• Banco de dados

• Sistema operacional

• …

Application

A

Application

B

Database

Sua aplicação está preparada?

Page 30: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

30©2019 Avanade Inc. All Rights Reserved.

Crie um product backlog para Operações

• Automatize o máximo possível…

• … tarefas não automatizáveis devem ser representadas como user stories no product backlog

• Coloque as tarefas de operações junto com as de desenvolvimento

• Um único product backlog

• Melhor planejamento e entregas mais confiáveis

Page 31: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

31©2019 Avanade Inc. All Rights Reserved.

Reserve tempo para criar uma cultura de aprendizado e melhorias (Aka improvement blitzes)

• Todos do time devem focar em resolução de problemas ocorridos

• Nenhuma nova funcionalidade é permitida

• Foco em resolver problemas corrigidos através de soluções alternativas

• Pode ser relacionado a código, ambiente, arquitetura, etc…

• Deve abranger pessoas de todo a cadeia de valor

• Apresente os resultados para todos os envolvidos.

Page 32: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 32

Considerações finais

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 33: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

33©2019 Avanade Inc. All Rights Reserved.

Não esqueça dos ´ilities´• Security

• Faça com que Infosec seja parte da sprint review

• Inclua Infosec na analise de defeitos e nas reuniões de post mortem

• Configure segurança no seus pipelines (configure acessos, esconda dados protegidos como senhas etc…)

• Inclua testes de segurança na sua aplicação

• Garanta a segurança dos ambientes.

• Integre segurança na telemetria

• Repeatability• Reuse tarefas comuns

• Crie templates de pipelines para aplicações similares

• Crie templates para workflows de aprovação

• Performance• Crie cache de dependências nos pipelines.

• Paralelize tarefas quando possível

• Use o mínimo necessário para montagem de ambientes/pipelines

• Reliability• Use repositórios de dependências locais ao invés de externos.

• Reduza a quantidade de tecnologias/arquiteturas para não aumentar complexidade.

• Use a mesma abordagem/tecnologias para todas as aplicações quando possível

Page 34: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

34©2019 Avanade Inc. All Rights Reserved.

Don´t forget the ´ilities´• Recoverability

• Adicione telemetria e monitore seus pipelines

• Crie tarefas de rollback

• Interoperability• Use ferramentas que tenham fácil integração com outras

• Desenhe e orquestre seu workflow para diminuir quantidade de integrações

• Testability• Teste seus scripts de tempos e tempos

• Recrie ambientes e check se seus scripts estão atualizados.

• Modifiability• Garanta que se uma mudança ocorrer, seu pipeline não será impactado.

• Teste seu sistema para novas variáveis de ambiente

Page 35: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

©2019 Avanade Inc. All Rights Reserved. 35

Referências

TDC SP Julho 2019Alexandre B. Daccas Mendonça

Page 36: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

36©2019 Avanade Inc. All Rights Reserved.

References

• The Phoenix Project• Gene Kim, Kevin Behr and George Spafford

• DevOps Handbook • Gene Kim, Jez Humble, Patrick Debois and John Willis

• DevOps: A Software Architect Perspective• Len Bass, Ingo Weber and Liming Zhu

• And some Avanade´s materials…

Page 37: DevOps: An Architect point of view - Amazon S3 · • Aceite que sempre há um espaço ilimitado onde as pessoas podem tomar ação ou não, e que houveram um argumento para fundamentação

37©2019 Avanade Inc. All Rights Reserved