Closed JaTvoiRabotnik closed 7 years ago
Vou criar um servico basico usando GoLang, com hosting no Google Cloud. Passo o link uma vez que tenha criado algo que rode.
Hum... seria isso? https://godoc.org/github.com/GoogleCloudPlatform/go-endpoints/endpoints
Importante talvez nos adiantarmos com o planejamento para não perder trabalho prematuro que esteja realizando:
Podemos usar qualquer linguagem: se não for uma das eleitas pela comunidade OKBr (server-side aparentemente Python e NodeJS), precisa justificativa... Performance e simplicidade sempre são, me parece que GoLang iria nessa linha.
Está "previsto" (precisamos em algum momento discutir e bater martelo) o uso de PostgreSQL 9.6+ com todas as funcionalidades embutidas nele (exemplo do ISSN-L resolver), ou seja, precisamos apenas de um bypass no endpoint, tudo será feito pela stored procedure da base.
PS: "hospedagem grátis" nunca é 100% gratuita, há implícita uma troca mais cedo ou mais tarde... Damos preferência à hospedagem "barata porém somos donos"... DigitalOcean é uma das opções no momento.
A solução que eu prototipei é muito mais estruturada que isso. Usei um exemplo de um REST e JSON API pra GoLang que eu encontrei na net, combinado com os tutoriais do próprio Google. O resultado é que temos um roteador decente, e uma separação de interesses entre as funcionalidades (usando "decorators" para o logging, por exemplo). Dá uma olhada no código que já está no repositório, dentro de /src/webserver.
Acho que desde que nos continuemos escrevendo os scripts de modo que eles possam ser chamados tanto como funções internas dentro do próprio ambiente python quanto como stand-alone (ou seja, com um main bem definido, aceitando parâmetros, etc), nao tem problema a gente ir trabalhando no back-end e na funcionalidade que vai proporcionar a inteligência da solução.
Eu gosto de GoLang. Acho ela uma linguagem bastante elegante e funcional. Creio que conseguimos fazer um caso forte pra adotá-la. Mas pra ser sincero não importa muito desde que, como dito acima, nossos scripts sejam agnósticos e ortogonais a qualquer implementação de comunicação. Os scripts de tratamento de dados tem que continuar em Python, e quanto a isso a gente tem um caso bem forte: a comunidade de data science gosta de Python, e as ferramentas sao múltiplas.
Conforme discutido antes, preciso pensar ainda a respeito da base de dados. A princípio parece fazer sentido, mas na minha experiência esse tipo de decisão é irreversível (ou muito difícil de reverter, proporcional à complexidade do sistema), então tem que ser bem considerada. Uma vez que a gente criar a base de dados, se quiser mudar de ideia vai ser um trampo.
A infraestrutura de "cloud" da Google é boa, e não muito cara. Dependendo do acesso fica muito em conta. Mas tem que pegar um número (em termos de larjã), senão essa discussão é só hipotética.
Fazendo um "downgrade" desse issue pra que a gente possa ter alguma coisa rodando, mesmo que só no github mesmo. Acessar o index.html já soluciona esse issue e aí a gente cria outro pra criar o web server direitinho em um hosting (jets, Google cloud, etc)
Fechando esse issue, com o hosting no github mesmo para teste inicial da curadoria.
Criar hosting para o protótipo (e eventual go-live) do projeto.
Tem possibilidade de isso ser providenciado pelo Open Knowledge, ou talvez conseguir creditos em algum provedor Cloud? Idealmente gostaria de poder rodar uma imagem docker direto.