JuliaBox

Fonte: Wikiversidade

Introdução[editar | editar código-fonte]

Propósito[editar | editar código-fonte]

Este plano de gerência e configuração de software tem a finalidade de descrever os objetivos, ferramentas e práticas que serão utilizadas na contribuição do projeto JuliaBox, que contém algumas práticas a cerca do que se diz a gerência de configuração de software que podem ser melhoradas e adotada outras que não foram verificadas no projeto, o objetivo deste plano é contribuir com a integração contínua no que se diz respeito a build automatizada coma execução dos testes e configuração automatizada do ambiente de maneira mais eficiente e intuitiva que não seja somente através de shell scripts.

GCS atual[editar | editar código-fonte]

Atualmente o projeto contém alguns docker's containers para funcionar em qualquer ambiente linux que suporte o Docker, o projeto também conta com alguns scripts de para a preparação do ambiente e build, muitos deles estão relacionados com configuração e criação de imagens do Docker. Não foi verificado no projeto alguma prática de build automatizada.

Problema[editar | editar código-fonte]

A instalação tem muitos scripts isolados, exisitindo casos que os mesmos devem ser modificados se a instalação for para um propósito diferente, além do mais existem muitos scripts relacionados a build, o que é confuso até mesmo para um desenvolvedor iniciante. Atualmente a configuração do ambiente no projeto está sendo feita através de alguns scripts porém não é verificado se algumas dependências estão instaladas, como as ferramentas de instalação de pacote utilizadas.

Escopo[editar | editar código-fonte]

  • Adotar a integração contínua de maneira clara, com uma ferramenta específica no caso o Travis CI, tendo como objetivo principal a build automatizada realizando a execução dos testes.
  • Preparação do ambiente com a ferramenta Chef para tratar depedências que não são resolvidas com o Dockers, como algumas bibliotecas e o Docker. E também com os scripts atuais, podendo serem substituídos ao longo que somente as receitas do Chef suprirem o problema.

Definições e abreviações[editar | editar código-fonte]

Sigla Definição
GCS Gerência de Configuração de Software
Integração contínua Práticas de desenvolvimento e produção do software que envolve: automatização de builds, desenvolvimento com testes unitários, funcionais e de aceitação, deploy automático e outra práticas que garantem a qualidade de desenvolvimento e a facilidade de realizar ações necessárias para a produção.
Julia Linguagem de programação dinâmica de alto nível e alta perfomance voltada para finalidades numéricas e científicas
Sistema de controle de versão Ferramenta que permite controlar o desenvolvimento do que geralmente é um software através de versões, onde cada alteração realizada é controlada.

Repositórios[editar | editar código-fonte]

Repositório oficial: https://github.com/JuliaCloud/JuliaBox

Fork do repositório: https://github.com/mateus-andrade/JuliaBox

Ferramentas[editar | editar código-fonte]

Ferramentas Descrição
Git Sistema de controle de versão utilizado no projeto.
GitHub Ambiente web para gerenciamento de controle de versão.
Travis CI Ferramenta de intergração contínua
Chef Ferramenta para a instalação de depedências de maneira automatizada
Docker Ferramenta que possibilita executar aplicações em vários ambientes
Shell Script Linguagem de script

Cronograma[editar | editar código-fonte]

Período Atividade Situação
Criação do plano de GCS 26/09 ~ 03/10 Feito
Estudo da ferramenta Travis CI 24/10 ~ 30/10 A fazer
Implantar integração contínua de acordo com o plano coma ferramenta Travis CI 31/10 ~ 13/11 A fazer
Estudo e implementação da instalação do ambiente de maneira automatizada com a feramenta Chef 14/11 ~ 20/11 A fazer
Entrega final 21/11 -

Referências[editar | editar código-fonte]

https://en.wikipedia.org/wiki/Continuous_integration

http://julialang.org/