JuliaBox
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 | - |