Grupo:

Geison de Souza - 10/0029990

Jhonathan

Introdução

editar

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

O repositório para o projeto usado na disciplina pode ser encontrado no seguinte link: GitHub - eLugar

Visão geral

editar

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

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

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

Organização, Responsabilidades e Interfaces

editar

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

Para executar a gerência de configuração, as seguintes ferramentas serão utilizadas:

Ferramentas de controle de versão

editar
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

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

Vagrant

editar

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

Shell script

editar

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

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

Controle de Configuração e mudança

editar

Com o que iremos contribuir

editar

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

Integração Contínua - Travis-CI

editar

language: ruby rvm:

 - 2.2.0

script: bundle exec rake test

Ambiente de Desenvolvimento - Vagrant

editar
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
!/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

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

Referências

editar
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