ELugar
Grupo:
Geison de Souza - 10/0029990
Jhonathan
Introdução
editarEste documento tem como finalidade descrever o plano de gerência de configurações a ser aplicado no software eLugar, um software open-source que tem como objetivo permitir que os usuários possam obter informações sobre uma determinada cidade ou compara-la com outra. Nosso público-alvo são pessoas que possuem o desejo de viverem em uma outra cidade, e o eLugar pretende ajuda-lo na escolha.
O Repositório no GitHub
editarO repositório para o projeto usado na disciplina pode ser encontrado no seguinte link: GitHub - eLugar
Visão geral
editarEsse plano de Gerenciamento de configuração de software possui como diretrizes uma melhor organização e responsabilidade para o projeto, as ferramentas utilizadas, e por fim resultados da implantação do gerenciamento.
Escopo
editarO escopo deste plano abrange:
- Integração contínua
- Controle de versão
- Ambiente virtual para desenvolvimento
- Automatização de tarefas
- Hospedagem na nuvem
Finalidade
editarEste plano tem como propósito guiar e especificar ações que resultem na melhoria dos processos de Gerência de Configuração do software eLugar.
Gerenciamento de configuração de software
editarOrganização, Responsabilidades e Interfaces
editarA equipe é formada pelos alunos Geison e Jhonatan. Ambos os integrantes terão responsabilidade de gerente de controle mudança e gerente de configuração, papeis previstos na gerência e configuração de software.
Ferramentas, Ambiente e Infra-estrutura
editarPara executar a gerência de configuração, as seguintes ferramentas serão utilizadas:
Ferramentas de controle de versão
editarFerramenta | Descrição |
---|---|
Git | O projeto continuará utilizando o sistema de controle de versão git a fim de controlar e gerenciar as mudanças ocorridas no projeto. |
GitHub | Repositório online que utiliza o Git para armazenamento do projeto |
Travis-CI
editarO Travis-CI é um serviço de Integração Contínua na nuvem que pode ser conectado a repositórios no GitHub.
Vagrant
editarO Vagrant é uma ferramenta que criar rapidamente ambientes virtuais para testes, desenvolvimento.
Shell script
editarProcessador de comandos que interage com os comandos do script do Unix. Foi utilizado na automatização de partes do projeto que eram repetitivas e necessárias, podendo dessa forma ser automatizada. Apresenta a vantagem de não ser necessária qualquer configuração (desde que o ambiente seja Unix).
Heroku
editarhttps://www.heroku.com/ é uma plataforma de serviço em nuvem (PaaS) suportando várias linguagens de programação.
O programa de Gerência de configuração
editarControle de Configuração e mudança
editarCom o que iremos contribuir
editarAtividades a serem desenvolvidas
- Integração contínua
- Criação de infra-estrutura padrão para o desenvolvimento
- Automatização de tarefas
- Deploy automatizado
- Hospedagem no servidor online
- Empacotamento Debian
Relatório de Acompanhamento
editarIntegração Contínua - Travis-CI
editarlanguage: ruby rvm:
- 2.2.0
script: bundle exec rake test
Ambiente de Desenvolvimento - Vagrant
editarVagrant.configure(2) do |config|
config.vm.box = "ubuntu/precise64"
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
v.name = "eLugar_vm"
end
config.vm.provision "shell", path: "script.sh"
end
Automatização - Shell script
editar!/bin/bash
# enable console colors
sed -i '1iforce_color_prompt=yes' ~/.bashrc
# disable docs during gem install
echo 'gem: --no-rdoc --no-ri' >> ~/.gemrc
# essentials
sudo apt-get update
sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6 libreadline6-dev zlib1g zlib1g-dev libcurl4-openssl-dev curl wget
# SQLite, Git and Node.js
sudo apt-get install -y libsqlite3-dev git nodejs
# setup rbenv and ruby-build
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# Install ruby 2.3.3 and bundler
export RBENV_ROOT="${HOME}/.rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
export PATH="${RBENV_ROOT}/shims:${PATH}"
rbenv install -l
rbenv install 2.3.3
rbenv global 2.3.3
gem install bundler
gem env home
#install rails
gem install rails
git clone https://github.com/Geisonszo/eLugar.git
Hospedagem - Heroku
editarNa pasta do seu projeto, digite:
$ heroku create
Este comando definirá referências ao repositório remoto heroku.
Para o Heroku funcionar propriamente, o banco de dados default do Rails deve ser trocado. Modifique sua GemFile
de
gem 'sqlite3'
Para
gem 'pg'
Execute
bundle install
para instalar as dependências.
modifique o Arquivo config/database.yml para indicar a troca no db:
default: &default
adapter: sqlite3
Para
default: &default
adapter: postgresql
Se seu db possuir path's para arquivos arquivo.sqlite3 substitua-os por novos nomes
development:
<<: *default
database: db/development.sqlite3
Novo nome:
development:
<<: *default
database: db/development
Agora atualize seu db:
$ rake db:create
$ rake db:migrate
Após tudo isso,commite suas alterações para o remoto Heroku:
# e dê push para o remoto
$ git push heroku master
Se tudo ocorrer bem, o deploy ocorrerá dentro de alguns minutos.
Após o Sucesso, o heroku dará um link de acesso à aplicação.
Cronogramas
editarReferências
editarPeríodo | Objetivo |
---|---|
19/09 a 26/09 | Escolha do projeto / Plano de GCS |
26/09 a 03/10 | Estudo da ferramenta de integração contínua Travis-CI |
03/10 a 10/10 | Configuração de integração contínua Travis-CI |
10/10 a 17/10 | Estudo da ferramenta Vagrant |
17/10 a 24/10 | Configurar o Ambiente de Desenvolvimento utilizando a Ferramenta Vagrant |
24/10 a 31/10 | Estudo da ferramenta Heroku |
31/10 a 07/11 | Configurar heroku |