SisGP

Fonte: Wikiversidade
Saltar para a navegação Saltar para a pesquisa

Introdução[editar | editar código-fonte]

Este documento provê a visão geral do Gerenciamento e configuração, com finalidades, escopos e definições do projeto SisGP - Sistema Gerenciador de Processos, executado na disciplina de Gerência de Configuração de Software.

Finalidade[editar | editar código-fonte]

A finalidade deste documento é criar um gerênciamento e configuração para o Software denomidado SisGP, o qual possui a licença AGPL v3, e portanto, facilitar a vida de todos os outros usuários que venham a usufruir da ferramenta, ou que até mesmo desejam colaborar com a mesma.

Visão Geral do Projeto[editar | editar código-fonte]

SisGP: Sistema gerenciador de Processos no qual o usuário poderá administrar todos os seus processos, delimitar atividades e responsáveis, colocar o processo em um projeto e alocar vários projetos à um portfólio. É possivel também, adicionar vários donos ao seu projeto, fazendo assim um sub-time, ou seja, é uma aplicação de gerenciamento de afazeres com suas relações principais, como data limite, dono de atividade, etc.

A url do repositório oficial do SisGP: https://github.com/DesenhoDeSofwareUNB/SisGP

A URL que está sendo aplicada o GCS é o próprio repositório oficial, pois possuímos total acesso.

Planejamento de GCS[editar | editar código-fonte]

Papeis e responsabilidades[editar | editar código-fonte]

Papel Nome Responsabilidade
Gerente de Configuração Rafael Akiyoshi Assegurar todos as competências em escopo, previstas neste plano, sejam realizadas, Garantir o cumprimento das atividades previstas para a realização da gerência de configuração.

Escopo[editar | editar código-fonte]

Como objetivos deste trabalho, foram definidas as seguintes contribuições:

  • Realização de integração contínua
  • Realização de deploy contínuo
  • dockerfile para conteinirização
  • Empacotamento .deb


Ferramentas e Infraestrutura[editar | editar código-fonte]

Ferramenta Objetivo Disponível em
Heroku Ferramenta na qual é possível fazer o deploy automatizado. https://www.heroku.com/
GitHub Sistema para realização do controle de versão https://github.com/
Travis CI Serviço gratuito de integração contínua que será integrado ao GitHub https://travis-ci.org/
Docker Servico de conteinirização de aplicações https://docker.com

Cronograma / Marcos do Projeto[editar | editar código-fonte]

Data Atividade
26/09 Plano de GCS
27/09 - 03/10 Configuração do ambiente para projeto
04/10 - 10/10 Realizar integração contínua com travis Primeira Baseline
11/10 - 17/10 Iniciar configurações de Deploy
18/10 - 24/10 Realizar deploy automatizado com Heroku e docker Segunda Baseline
25/10 - 31/10 Iniciar Apresentação do projeto
1/11 - 15/11 Realizar empacotamento .deb Terceira Baseline
16/11 - 20/11 Revisar estrutura do plano de GCS e entregáveis (integração contínua, deploy automatizado, empacotamento)
21/11 Apresentação final do Projeto


Gerência de Configuração[editar | editar código-fonte]

Gerando e rodando o Container com Docker[editar | editar código-fonte]

Para gerar o container do projeto, basta acessar o repositório em: https://github.com/DaniloBarros/SisGP e baixá-lo. Irá conter o arquivo Dockerfile.


 1 FROM ruby:2.3
 2 
 3 RUN apt-get update \
 4     && apt-get install -y --no-install-recommends \
 5             postgresql-client \
 6                 && rm -rf /var/lib/apt/lists/*
 7 
 8 RUN mkdir /sisgp
 9 WORKDIR /sisgp
10 COPY Gemfile /sisgp/Gemfile
11 COPY Gemfile.lock /sisgp/Gemfile.lock
12 RUN bundle install
13 ADD . /sisgp

Agora, deve-se rodar o container com o comando abaixo: PS: é necessario ter permissão (root)

1 $ docker build -t my-rails-app .

Após bem sucedido, aparecerá o seguinte:

 1 ending build context to Docker daemon 23.17 MB
 2 Step 1 : FROM ruby:2.3
 3  ---> d0f948bdaa95
 4 Step 2 : RUN apt-get update     && apt-get install -y --no-install-recommends             postgresql-client                 && rm -rf /var/lib/apt/lists/*
 5  ---> Using cache
 6  ---> e87136d26c0f
 7 Step 3 : RUN mkdir /sisgp
 8  ---> Using cache
 9  ---> 191f2ca3bbbd
10 Step 4 : WORKDIR /sisgp
11  ---> Using cache
12  ---> cf89aa4de4f2
13 Step 5 : COPY Gemfile /sisgp/Gemfile
14  ---> Using cache
15  ---> eb9187ed2905
16 Step 6 : COPY Gemfile.lock /sisgp/Gemfile.lock
17  ---> Using cache
18  ---> de7cda5d0002
19 Step 7 : RUN bundle install
20  ---> Using cache
21  ---> ec4704647fee
22 Step 8 : ADD . /sisgp
23  ---> 3e99d74db0b5
24 Removing intermediate container 86ee83d68a60
25 Successfully built 3e99d74db0b5

Agora, é necessário rodar o comando abaixo:

1 $ docker run --name some-rails-app -d my-rails-app

Tratando outras dependencias da aplicação com Docker[editar | editar código-fonte]

Após isso, caso seja necessário gerenciar outras dependencias, como por exemplo postgres, basta gerar o arquivo docker-compose.yml

 1 version: '2'
 2 services:
 3   db:
 4     image: postgres:9.4.1
 5     ports:
 6       - "5432:5432"
 7 
 8   web:
 9     build: .
10     command: bin/rails server --port 3000 --binding 0.0.0.0
11     ports:
12       - "3000:3000"
13     links:
14       - db
15     volumes:
16       - .:/myapp

e para rodar, use o comando:

1 $ docker-compose build

Travis[editar | editar código-fonte]

O travis CI é uma aplicação web que possibilida geral builds estáveis do seu software, mantendo o sua build o mais estável possivel. É possível alterar o comportamente esperado do travis através do arquivo denominado "travis.yml" que se encontra no repositório do projeto.

Passo-a-passo[editar | editar código-fonte]

  1. Registre-se no Travis CI sincronizando a conta do GitHub e o Travis receberá as informações dos seus repositórios.
  2. Acesse a página https://travis-ci.org/profile/;
  3. Selecione o seu repositório;
  4. Adicione um arquivo .travis.yml ao repositório. Este arquivo contém as informações sobre como realizar a build. É preciso commitar e dar push para que o Travis CI realize o build;

Travis.yml do Projeto[editar | editar código-fonte]

 1 language: ruby
 2 services:
 3 - postgresql
 4 before_install:
 5 - psql -c 'create database travis_ci_test;' -U postgres
 6 script:
 7 - bundle exec spring binstub --all
 8 - bundle install
 9 - bundle exec rake spec
10 rvm:
11 - 2.2.3
12 notifications:
13   email:
14     recipients:
15     - dan.b412@gmail.com
16     - rafael.akiyoshi@gmail.com
17 branches:
18   only:
19   - master
20 after_success:
21 - coveralls
22 deploy:
23   provider: heroku
24   api_key:
25     secure: GfbjMSOBWQNfW35sJW7XM/SR/98SXmlV6jHKipGgKvcE4LBe0ODLa8C7emm/URdxMPC3YFm341M+dddcz3P6/6GGG/6/Ispxt5G8PmKjQyrDgsLG/nNl+fDLsFgQI7r4L55xHm6mBdf4sf58rylaCLh+l26R2uD1/npcaRPRnp8UjjE8wykbqWT7dpZlcHIqDdG2c5PeLxjPgNgdibeWkJFtKY6dSqLczGENwkqwIDYstNoGgKtMOojRLnD3PMC/g5pHeKhSPSShX3IqF+fLBAvSV+CTGGrPG793yk35Dwb6hHaBplEdfyNXig2NzLhluss1b89KJ5ZR0LfLsDA5zT/EudpXuWJSGdxWYfWdKHONuTDlOV6PNPnAKUZoxqhmvLfb+bqz9Y2VSXU3aNvMDtt+m/N1Xv1v/oTcLX4F9XuK6AKfRuOthmWb3XmlhcU5uuiFI5MBBpvK3UxwarOd22q+N/gksmo8lT0cOIJ8clA4qDqa/rZu1052guqkvRkrJDRXDd8011Hkoo3RyNcd2gonEOtcZE/QqAmwWmYVDZLCAd/YNKqagj8MBMvsTDhJrieJetBl4eNMkuE4SKHVEYzoh0S9eLYiakrrVzGLnQJ15bCOnkAI77B4MLjCW6+ZIMSiwMYv8DUXnMz2hdENJoO75eoBSDNYkgctoYX42xk=
26   app: sisgp2
27   on:
28 repo: DaniloBarros/SisGP

Deploy com Heroku[editar | editar código-fonte]

Heroku é uma plataforma em nuvem baseada em containers, com serviço de implantação e execução de aplicações web.

O deploy do projeto se encontra no endereço: https://sisgp2.herokuapp.com/

  1. Instale o Heroku
1  $ wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh
  1. Faça Login
1 $  heroku login
2 Enter your Heroku credentials.
3 Email: adam@example.com
4 Password (typing will be hidden):
5 Authentication successful.
  1. Crie o aplicativo
1 $  heroku create
2 Creating app... done, ⬢ sleepy-meadow-81798
3 https://sleepy-meadow-81798.herokuapp.com/ | https://git.heroku.com/sleepy-meadow-81798.git
  1. Deploy
1 $ git push heroku master
2 Initializing repository, done.
3 updating 'refs/heads/master'
4 ...

Deploy Contínuo Travis + Heroku[editar | editar código-fonte]

O Travis CI pode ser sincronizado com o Heroku, podendo resultar em um deploy a cada build sucedida.

para realizar tal procedimento, é necessário configurar o travis.yml para reconhecer o Heroku.

  1. Instale o TravisCI na sua máquina
1 $ gem install travis
  1. Rode o comando para gerar a chave de segurança do git:
1 $ travis encrypt $(heroku auth:token) --add deploy.api_key
  1. No travis.yml serão geradas automaticamente as linhas ao final do arquivo, como as mostradas acima, referentes ao projeto:
deploy:
  api_key:
    secure: K53yiEGH+8BXGTA1J8hZzb7U1fhinTiVt3Pi+ebRTHHq2nwzKd3/c1fB6szC64xTmRW3kFDjndWIBhTUopyl+lB+jowp3QA7GngTZDAQxT0wByMiXNd4yB4b0YKMuCzqVV/dz+UgONtV2Udq2F8if2HSAtHxn2VSFitBcDk2hLuWy3KpXF1x3+5sqgYGOVcVtjB5o5B8qKDa+hGzy0ncjFRgYygMkRd32tzSieHWJcyCAeQutfyZTa5wZqXhIRXn3T4EduJi1gJA1eS6BzycjduyagXOzK7bh0/Zx6XlsUkfvoqG/u71esQSk4TwGOsR35EFU/UxIVKUI+Teqqveo8A6qxOmtj2qcfg7VK/34maRUOzK+mTVTmlpQqPmhjgXpdYA9maTIx1wXm33r4WFybR1BC7DtnSoSus19MATiLxMX/hqpLlk5Ik1eMHc1RM+sTV7BFfUh6vcetjuFlUmaweb2oJG8510en7ajXBECp6t+lpWmXTSY8YsdEbmDeNaKzGdqEFW2iwlc17KSBs2XGkyoSRMBwu164JgI0Pw6qG68dhnmo6RRi7cuzUzsEAG2EF7kW8tS3rISigMbEcwEXyZ3s3fb26aD3YGhj9H/IkuW/X/0OCDIwAUePftzAxhNNW3R5RHZnKTz7I8tFgRp/C4dkeGOQVHoAfi+3v4TLk=