JuliaBox
Introdução
editarPropósito
editarEste 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
editarAtualmente 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
editarA 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- 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
editarSigla | 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
editarRepositório oficial: https://github.com/JuliaCloud/JuliaBox
Fork do repositório: https://github.com/mateus-andrade/JuliaBox
Ferramentas
editarFerramentas | 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
editarPerí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 | - |