mudança do Parse para o Jelastic

O Parse é um BaaS (Backend as a Server) muito popular entre desenvolvedores de aplicativos mobile que não querem se preocupar em construir o backend para seus apps. Por ser muito fácil de usar e barato para começar, o Parse é bastante popular entre startups.

Quando foi comprado pelo Facebook, em 2013, muitos usuários comemoraram, pois a compra parecia garantir o endoço de uma empresa com muito capital para investir na expansão do serviço e a segurança de que ele teria uma vida longa e próspera.

Contudo, em 28 de Janeiro de 2016, o Facebook anunciou o término do serviço dentro de um ano, ou seja, em 28 de Janeiro de 2017, deixando aproximadamente 2,5 milhões de usuários à procura de uma nova opção. Para compensar essa notícia, o código fonte do serviço foi liberado, permitindo não apenas a migração dos dados para uma infraestrutura administrada pelo usuário, como seu uso por um público muito maior do que a empresa costumava ter.

Neste tutorial, demonstraremos como instalar um servidor Parse do zero, para que você finalmente coloque sua ideia em prática ou faça a migração do seu backend diretamente do Parse para o Jelastic Locaweb.

Para migrar sua aplicação, não deixe de consultar as informações adicionais no guia de migração disponibilizado pela própria Parse.

Instalação do ambiente

Começe selecionando um ambiente Node.js com, no mínimo, um nó com a versão 4.2 do Node e outro nó com o MongoDB 3.0. Selecione os limites mínimos e máximos de escalabilidade e adapte as configurações de acordo com o número de acessos que a sua aplicação possui.

Criação do ambiente para deploy do parse-server

Uma vez que o ambiente estiver disponível, vá até o repositório Github do Parse Server, copie o endpoint do servidor GIT, e faça o deploy da aplicação no painel do Jelastic. Se você ainda não sabe como fazer um deploy no Jelastic a partir de um servidor GIT, assista ao episódio com esse tema no TecnoPapo.

Fique tranquilo, pois o Jelastic irá sempre baixar automaticamente as depedências do NPM a partir do arquivo packages.json. :)

Configuração do servidor

Depois que tiver terminado o deploy do servidor do Parse, é necessário configurar o serviço. Você pode fazer isso via SSH ou através do painel. Na pasta root da aplicação, crie um arquivo chamado config.json e configure os dados da sua aplicação conforme o exemplo abaixo:

{    "appId": "seu_appId",
     "masterKey": "seu_secretKey",
     "databaseURI": "mongodb://usuario:senha@host.jelasticlw.com.br",
     "port": 8080,
}

Os atributos appId e masterKey são obrigatórios e aceitam qualquer string. Caso esteja migrando, há a necesside de utilizar os mesmos parâmetros utilizados anteriormente.

Já os dados necessários para o databaseURI, você receberá no seu email logo que a instância do MongoDB for criada.

No caso do Node.js no Jelastic, todo tráfego recebido na porta 80 é automaticamente redirecionado para a porta 8080. Por isso, na hora de acessar o serviço, faça requisições normalmente para a porta padrão (80).

Para testar se tudo está funcionando, inicie a aplicação manualmente através do SSH a partir da pasta root da aplicação, digitando:

./bin/parse-server config.json

Se tudo der certo, será possível ver a seguinte mensagem: parse-server running on http://localhost:8080/parse.

Agora é hora de automatizar o início da aplicação. Para isso, basta modificar o script de start no arquivo packages.json para incluir nosso arquivo de configuração config.json. Ao final, a linha deverá ficar desta forma:

"start": "node ./bin/parse-server config.json",

Salvando seu primeiro objeto

A fim de salvar nosso primeiro objeto, utilizaremos a API REST, mas também é possível utilizar algum dos SDKs.

Para isso é possível utilizar um cliente REST ou mesmo o CURL.

$ curl -X POST \
  -H "X-Parse-Application-Id: SEU_APP_ID" \
  -H "Content-Type: application/json" \
  -d '{"score":1337,"playerName":"Kemel Zaidan","cheatMode":false}' \
  http://seu_ambiente.jelasticlw.com.br/parse/classes/GameScore

Se tudo der certo, você receberá uma resposta como essa:

{
  "objectId": "vjzk6SiDIp",
  "createdAt": "2016-05-17T19:13:15.534Z"
}

Agora é possível recuperar o objeto diretamente (certifique-se de substituir o vjzk6SiDIp pelo objectId recebido quando o objeto foi criado).

$ curl -X GET \
  -H "X-Parse-Application-Id: SEU_APP_ID" \
  http://seu_ambiente.jelasticlw.com.br/parse/classes/GameScore/vjzk6SiDIp

Resposta:

{
"objectId": "vjzk6SiDIp",
"updatedAt": "2016-05-17T19:52:55.963Z",
"createdAt": "2016-05-17T19:13:15.534Z",
"score": 1337,
"playerName": "Kemel Zaidan",
"cheatMode": false
}

Conclusão

Minha impressão é de que o Parse ainda continuará seu desenvolvimento por um bom tempo, tendo ou não o investimento do Facebook. Embora as razões para isso ainda não estejam tão claras, parece inclusive que o Facebook continuará investindo no software, pelo menos por mais algum tempo.

Além disso, uma grande comunidade está se formando ao redor da abertura de seu código fonte, seja por empresas que estão querendo uma parcela dos atuais clientes, seja através de desenvolvedores que vêem na liberação do código uma oportunidade de tomar as rédeas do desenvolvimento e evoluí-lo conforme suas próprias necessidades. Será interessante assistir ao desenrolar dessa história.

Instalar o servidor do Parse não é tarefa das mais difíceis, mas há alguns detalhes que não podem ser esquecidos. Ter que migrar o serviço causa um certo desconforto, mas a vantagem é que você ainda poderá continuar a utilizá-lo e talvez economize alguns dólares com isso.

Para saber mais sobre o Jelastic Locaweb, visite a página do produto