Saltar para o conteúdo

ELugar

Fonte: Wikiversidade

Grupo:

Geison de Souza - 10/0029990

Jhonathan

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

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.

O escopo deste plano abrange:

  • Integração contínua
  • Controle de versão
  • Ambiente virtual para desenvolvimento
  • Automatização de tarefas
  • Hospedagem na nuvem

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

O Travis-CI é um serviço de Integração Contínua na nuvem que pode ser conectado a repositórios no GitHub.

O Vagrant é uma ferramenta que criar rapidamente ambientes virtuais para testes, desenvolvimento.

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).

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.

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