ELugar
Grupo:
Geison de Souza - 10/0029990
Jhonathan
Introdução
[editar | editar código-fonte]Este 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
[editar | editar código-fonte]O repositório para o projeto usado na disciplina pode ser encontrado no seguinte link: GitHub - eLugar
Visão geral
[editar | editar código-fonte]Esse 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
[editar | editar código-fonte]O escopo deste plano abrange:
- Integração contínua
- Controle de versão
- Ambiente virtual para desenvolvimento
- Automatização de tarefas
- Hospedagem na nuvem
Finalidade
[editar | editar código-fonte]Este 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
[editar | editar código-fonte]Organização, Responsabilidades e Interfaces
[editar | editar código-fonte]A 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
[editar | editar código-fonte]Para executar a gerência de configuração, as seguintes ferramentas serão utilizadas:
Ferramentas de controle de versão
[editar | editar código-fonte]Ferramenta | 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
[editar | editar código-fonte]O Travis-CI é um serviço de Integração Contínua na nuvem que pode ser conectado a repositórios no GitHub.
Vagrant
[editar | editar código-fonte]O Vagrant é uma ferramenta que criar rapidamente ambientes virtuais para testes, desenvolvimento.
Shell script
[editar | editar código-fonte]Processador 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
[editar | editar código-fonte]https://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
[editar | editar código-fonte]Controle de Configuração e mudança
[editar | editar código-fonte]Com o que iremos contribuir
[editar | editar código-fonte]Atividades 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
[editar | editar código-fonte]Integração Contínua - Travis-CI
[editar | editar código-fonte]language: ruby rvm:
- 2.2.0
script: bundle exec rake test
Ambiente de Desenvolvimento - Vagrant
[editar | editar código-fonte]Vagrant.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 | editar código-fonte]!/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
[editar | editar código-fonte]Na 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
[editar | editar código-fonte]Referências
[editar | editar código-fonte]Perí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 |