ELugar

Fonte: Wikiversidade

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