software open source e integração · svn repo servidor ci • versionamento • gera binários...
TRANSCRIPT
![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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/1.jpg)
![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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/4.jpg)
![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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/7.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/9.jpg)
![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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/18.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/19.jpg)
![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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/27.jpg)
• 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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/28.jpg)
![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](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec577d4342d7c604e107aa6/html5/thumbnails/29.jpg)
Av. Prof. Dr. Cavaco Silva, nº 17 Edifício Ciência 1 – Taguspark2740-120 Porto Salvo Telf. 214230000