Giter Site home page Giter Site logo

projcloud's Introduction

Projeto Computação em Núvem - 2018/2

Engenharia da Computação - Insper 6º Semestre

Por Pedro de la Peña

Requisitos

1.Utilizar uma máquina UNIX para realização do SSH (dá para fazer com putty em Windows mas não garanto que funciona)

2.Configurar a AWS Key e Secret Key utilizando o comando aws configure. Caso não tenha o aplicativo, instale-o com sudo snap install aws-cli --classic

Como utilizar

Baixar o repositório e com as credenciais da Amazon já configuradas, rodar o script instance_launcher.py. Dentro do código, há variáveis "ownerName", "keyPair", "secGroupName" e "loadBalancerTag" que podem ser alteradas, caso o usuário deseje. Também é preciso ter um arquivo id_rsa.pub no diretório.

Após rodar o arquivo, o usuário pode escolher quantas instâncias serão criadas. O número é sempre +1 em relação ao input do usuário, pois uma máquina load balancer também é criada.

Após o código terminar de rodar, o usuário deve esperar as instâncias terminarem de iniciar, e isso pode ser acompanhado no dashboard da AWS -> EC2 -> Instances. Lá o usuário deve procurar por uma instância com a tag "pedro_lb" por default, e deve realizar uma conexão SSH com esta máquina.

Na máquina, o usuário deve configurar novamente as suas credenciais da Amazon, utilizando o mesmo comando anteriormente descrito. Com isto feito, o usuário deve ir até o diretório /projcloud e rodar o arquivo lb.py para ativar o monitoramento e gerenciamento de isntâncias. A partir deste ponto, caso uma instância pare de funcionar (timeout de 7 segundos), o código automaticamente deleta a instância e a substitui com uma nova.

Por fim, a aplicação consiste em rodar localmente o arquivo firebase_tasks.py, contudo, antes deve alterar o endpoint do arquivo para o IP da máquina loadbalancer. O usuário pode então realizar o comando "python3 firebase_tasks 'tarefa listar'" para conseguir se conectar a uma das instancias disponíveis (aleatoriamente) e receber as informações do servidor Firebase conectado à cada uma delas (stateless).

Bugs conhecidos

A aplicação do Firebase deveria permitir que o usuário conseguisse realizar um "tarefa adicionar 'arg1' 'arg2'", porém isso não está funcionando como o devido (migué do "get only" but using a Firebase database instead).

O loadbalancer precisa ficar aberto no terminal para funcionar.

Firebase - Totalmente não stateful

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.