29

Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site
Page 2: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Software Open Source e Integração Contínua no Instituto de InformáticaFerramentas de Integração ContínuaJaneiro 2015

Área de DesenvolvimentoDepartamento de Arquitetura e Desenvolvimento

Page 3: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Agenda

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

• Processo de desenvolvimento no Instituto de Informática

• Ferramentas Open Source Software/Free Software

• Integração Contínua, Entrega Contínua e Deployment Contínuo

Page 4: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site
Page 5: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Cadeia de Valor – Processo de Gestão de Entregas

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 6: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Metodologia UP

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 7: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

• Casos de Uso• Requisitos de Negócio• Storyboard• Requisitos Não Funcionais

• Pedido de Serviços• Relatórios e Ofícios• Documentos VIE’s• Modelo de Análise e

Desenho• Modelo Dados Lógico• Protótipo Arquitetura• Plano de Testes

Elaboração

• Visão• Lista de Riscos• Documento Arquitetura• Modelo Casos de Uso• Plano de Projeto

• Manual de Deployment• Manual Operaçao Batches• Queries aplicacionais• Modelo Dados Físico• Binários, Javadocs …

Fases e artefactos

Conceção

Construção

Transição

• Release Notes• Relatório Final de Testes

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 8: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Departamento de Arquitetura e Desenvolvimento

(DEV)

Departamento de Arquitetura e Desenvolvimento

(DEV)

DESENVOLVIMENTO

QUALIDADE

Departamento de Administração de Sistemas

(OPS)

Departamento de Administração de Sistemas

(OPS)

PRODUÇÃO

PRÉ-PRODUÇÃO

Departamentos e Ambientes

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 9: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site
Page 10: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Ferramentas - Overview

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 11: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

SVN – O que é?

• SCM – Software Configuration Management/Version Control• Client Web based• Permite versionar artefatos e controlar quem fez o quê e quando

Onde aplicamos

• Guardar em todas as versões os artefactos produzidos• Disponibilizar informação não desmaterializada

Grau de integração

• Transversal a todas as outras ferramentas

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 12: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

O que é?

• Wiki 2ª geração – classes + objetos + scripting• Guarda informação de forma estruturada• Conteúdo colaborativo• Web based

Onde aplicamos

• Construção e disponibilização de artefactos (UC’s, Visão, etc)• Publicação de informação de interesse para a organização • Desmaterialização de documentação

Grau de integração

• SVN – Documentos ou espaços exportados da xWiki são colocados no SVN

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 13: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

O que é?

• Sistema de Gestão de Erros/Bugs• Web based• Colaborativo

Onde aplicamos

• Reporte de não conformidades• Gestão de tarefas

Grau de integração

• Jenkins – Solicita o ID da tarefa associada à entrega• IDE (plugin SVN) – Código commited associado a uma tarefa ou não conformidade• Tortoise (cliente SVN) – Cada artefacto comitted deve incluir o ID de uma tarefa

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 14: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

O que é?

• Ferramenta de gestão para a construção de projetos de software• Baseia-se no conceito de Project Object Model (POM)• Permite centralizar a produção de binários, relatórios e documentação

Onde aplicamos

• Em todos os projetos / subsistemas novos• Em alguns projetos migrados

Grau de integração

• Utilizado em modo stand-alone numa linha de comandos• Integrado no IDE (Eclipse, NetBeans, etc)• Integrado no Jenkins

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 15: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

O que é?

• Repositório que armazena e organiza os binários de software para uso nos vários ambientes

• Ponto central

Onde aplicamos

• Partilhar / disponibilizar binários a ser instalados nos vários ambientes• Repositório único de third-party jars• Repositório fidedigno de snapshots e releases

Grau de integração

• Populado pelo Jenkins / Maven

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 16: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

O que é?

• Plataforma para gerir a qualidade do código• Apresenta gráficos com métricas e estatísticas• Guarda histórico e evolução da qualidade de código

Onde aplicamos

• No processo de entrega contínua

Grau de integração

• Jenkins – invoca o Sonar via plugin para validar código• IDE – Via plugin do IDE pode ser invocado

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 17: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

O que é?

• Orquestrador de tarefas repetitivas• Compilador e executor de testes de projetos contínuos • Monitorização de tarefas externas

Onde aplicamos

• Na produção de daily-builds e deliveries

Grau de integração

• SVN – Checkout das sources e commit de tags• MVN – Execução de vários comandos• Nexus – Upload dos artefactos gerados• Sonar – Invocado para validação do código fonte• Bugzilla – Regista informação em tarefa de preparação de build

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 18: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

• Casos de Uso• Requisitos de Negócio• Storyboard• Requisitos Não Funcionais

• Pedido de Serviços• Relatórios e Ofícios• Documentos VIE’s• Modelo de Análise e

Desenho• Modelo Dados Lógico• Protótipo Arquitetura• Plano de Testes

Elaboração

• Visão• Lista de Riscos• Documento Arquitetura• Modelo Casos de Uso• Plano de Projeto

• Manual de Deployment• Manual Operaçao Batches• Queries aplicacionais• Modelo Dados Físico• Binários, Javadocs …

Onde moram os nossos artefactos

Conceção

Construção

Transição

• Release Notes• Relatório Final de Testes

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 19: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site
Page 20: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Nova Funcionalidade ou Correção

Tarefa atribuída

Artefactos

Obtém artefactosInsere tagsCó d i g o F ont e p ar a aná l i se

ou

Programadores, Testers, Responsáveis de Projeto

Equipa Projeto

Ferramentas

SVN Repo

Processo de desenvolvimento

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Lança Job

Binários e outros artefactos

Page 21: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Integração Contínua

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

• Rentabilizar as maiores potencialidades de cada uma das ferramentas, garantindo uma visão integrada e atualizada de toda a informação relevante dos projetos

• Permitir e facilitar uma maior paralelização de trabalhos

• Percepcionar e evitar problemas de integração de código fonte e de outros artefactos, desenvolvidos em simultâneo por diferentes elementos da equipa

Porquê?

• Reduzir o risco ► garantindo que a build compila sempre ► caso de falha notifica a respetiva equipa – rápido feedback para a equipa

• Bugs/defeitos detetados mais cedo ► Permitindo correção imediata dos bugs introduzidos no processo de desenvolvimento

• Torna mais fácil gerir várias linhas de desenvolvimento

Benefícios

Page 22: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Integração Contínua - Build Diária

svn commit

Lança maven

Programadores SVN Repo

svn checkout

Servidor CI

• Versionamento• Gera binários• Executa testes unitários• Empacota os binários

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 23: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Entrega Contínua

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

• Necessidade de disponibilizar automaticamente uma entrega

Porquê?

• Permite reduzir riscos em torno nas releases

• Beneficia os gestores do negócio pois há sempre uma release candidata

• Possibilita rápido feedback sobre os produtos e estratégias desenvolvidas

Benefícios

Page 24: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Entrega contínua – Delivery Build

ProgramadoresSVN Repo Servidor CI

• Versionamento• Gera binários• Executa testes unitários• Empacota os binários• Cria tag• Cria site c/ resources• Arquiva artefactos

Invoca Sonar

mvn release

mvn site deploy

svn commit svn checkout

Lança mav en

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 25: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Deployment Contínuo

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

• Permitir com um simples pressionar do botão produzir uma nova versão do produto e instala-la no ambiente de produção, disponibilizando-a rapidamente ao cliente.

Porquê?

• Reduzir o tempo entre o levantamento de um requisito e a sua disponibilização para o cliente, permitindo:

• Ter mais cedo o retorno do que foi investido (Return On Investment)• Feedback dos end users

Benefícios

• Montar infraestrutura baseada em automatismos e instrumentação

• Capacidade de efectuar um rollback rapidamente caso surja um problema com a nova release

Dificuldades

Page 26: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Roadmap – Onde nos encontramos

Integração ContínuaIntegração Contínua Deployment ContínuoDeployment ContínuoEntrega Contínua

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Page 27: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

• Investir no processo de deployment contínuo

• Continuar a aposta em ferramentas OSS

• Alargar utilização a todos os projetos dentro processo de gestão de

entregas mas também a outros processos da cadeia de valor

• Contribuir para a consolidação, evolução e melhoria contínua das

ferramentas de desenvolvimento OSS

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Conclusão

Page 28: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site
Page 29: Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários • Executa testes unitários • Empacota os binários • Cria tag • Cria site

Av. Prof. Dr. Cavaco Silva, nº 17 Edifício Ciência 1 – Taguspark2740-120 Porto Salvo Telf. 214230000

[email protected]