DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2...

32
DevOps para Sistemas Embarcados Eduardo Witter Diego Garcia

Transcript of DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2...

Page 1: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

DevOps para Sistemas

Embarcados

Eduardo WitterDiego Garcia

Page 2: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

2

Sobre nós

• Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)• Mestrando INF/UFRGS• Na Datacom desde 2007. Nestes 11

anos:• Desenvolvedor C/C++, Python• Scrum Master; Product Owner• Gerente Técnico• DevOps

linkedin.com/in/[email protected]@gmail.com

• Engenharia de Computação (IPA), Especialização em Engenharia de Software (UFRGS)• Na Datacom desde 2009. Nestes 9

anos:• Desenvolvedor Ruby, Python• Scrum Master• DevOps

linkedin.com/in/[email protected]

@diego_cgarcia

Page 3: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

3

Bem-vindos ao nosso mundo•Switches, roteadores, ...•Maior P&D de Telecom da América

Latina•Hardware e Software feitos

integralmente no Brasil•Principais clientes: operadoras,

provedores, governo e redes corporativas

Page 4: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

4

Como é o software?• Linha de Produtos de Software, muito modular. Diversos

benefícios, mas tem um custo•O mesmo OS em todos os equipamentos•Objetivos: plataforma para novos produtos por décadas.

Crescer não pode significar o colapso

Page 5: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

5

Separação em repositóriosRepositórios:• DmOS: 304• Testes: 41• Testbed: 117• DevOps: 43

Tudo está sob controle de versão. Documentação, Testes, Ambientes de teste

Cada repositório tem alguns metadados:• Tipo: testbed, doc, test,

dmos, devops, etc• Maintainer: responsável

pelo módulo• Manager: consolidação

administrativa

Page 6: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

6

Desenvolvimento

Page 7: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

7

Ok, vamos fazer um commit?

Page 8: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

8

Page 9: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

9

Page 10: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

10

Page 11: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

11

Page 12: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

12

Page 13: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

13

O que aconteceu por baixo dos panos?• Cada critério de qualidade é um job do Jenkins• Cada job:

• Sobe uma máquina virtual ou container, efêmeros• Configura o ambiente, idêntico ao do

desenvolvedor e roda o teste• Envia o voto para o Gerrit

• Critérios de qualidade são project wide, adoção não é voluntária.

Page 14: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

14

Que tipo de testes são rodados?• Testes de unidade• Testes de módulo• Coverage• Valgrind, Callgrind• Sanitizers• Documentação: do

módulo, do código do módulo e para usuário

• Linters/checkers: yang, json, lua, python, shell/bash

• Coding standards• Complexidade

ciclomática• Funções inseguras /

obsoletasQuebra de dependentes!• APIs• Comportamentos

Page 15: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

15

Integração Contínua e Testes

Page 16: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)
Page 17: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

17

Versionando os ambientes

Page 18: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

18

Como é um ambiente de testes na integração?

• DUT – Device Under Test

• Host – PC que dispara o sequenciamento de testes

• Softlink – equipamento de apoio, responsável por eventuais conexões entre os elementos

Page 19: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

19

Como se parece um teste?

Page 20: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)
Page 21: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

21

If it hurts, do it more often: cuide de seus testes

• A gestão de testes é, e deve ser, uma rotina

• Testes instáveis devem ser corrigidos

• Features instáveis devem reportar defeito

• Testes ruins ou mal gerenciados estrangulam projetos (criam gargalos)

Page 22: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

22

Page 23: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

23

Monitore seus ambientes de teste

Page 24: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)
Page 25: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

Obrigado!Dúvidas?

linkedin.com/in/[email protected]@gmail.com

linkedin.com/in/[email protected]

@diego_cgarcia

www.datacom.com.br

Page 26: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

Rua América, 1000 | Eldorado do

Sul | RS | Brasil

+55 51 3933 3000

www.datacom.com.br

Page 27: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

27

Backup slides

Page 28: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

28

Page 29: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

29

Então, porque desacoplar as coisas•Plataformas de Software e Hardware são projetos de

natureza diferentes• Plataformas de Software são projetos contínuos, sem fim –

tipicamente Ágil• Plataformas de Hardware são projetos preditivos, bem

definidos, repetitivos – tipicamente Waterfall

•Produto Datacom: uma Plataforma de Software vs Múltiplas Plataformas de Hardware• Matriz multidimensional de plataforma de software,

plataformas de hardware e funcionalidades

Page 30: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

30

Sincronização de Plataformas

PLATFORMAS2016.1

2016.2

2016.3

2016.4

2017.1

2017.2

2017.3

2017.4

2018.1

2018.2

2018.3

2018.4

OS – Software Platform

Hardware Platform A

Hardware Platform B

Hardware Platform C

Hardware Platform D

Hardware Platform E

Camada de Abstração ProntaIntegração

Page 31: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

31

Integração de Funcionalidades

PLATFORMS2016.1

2016.2

2016.3

2016.4

2017.1

2017.2

2017.3

2017.4

2018.1

2018.2

2018.3

2018.4

OS – Software Platform

OS Services

Layer 2 Protocols

Layer 3 Protocols

MPLS Protocols

Interfaces

Integração de Componentes

Page 32: DevOps para Sistemas Embarcados...2018/12/06  · Sistemas Embarcados Eduardo Witter Diego Garcia 2 Sobre nós •Engenharia Elétrica (UFRGS), MBA em Gestão e Liderança (Unisinos)

32