Software Open Source e Integração · SVN Repo Servidor CI • Versionamento • Gera binários...

Preview:

Citation preview

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

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

Cadeia de Valor – Processo de Gestão de Entregas

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

Metodologia UP

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

• 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

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

Ferramentas - Overview

FERRAMENTAS OPEN SOURCE NO INSTITUTO DE INFORMÁTICA

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

• 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

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

II@seg-social.pt