I’m on an open source project that will make use of Wikidata API. It will provide some small tools based on forms and SPARQL queries made on Wikidata and will also run a blog.
1/ The website
- The blog’s trafic is currently 500~1000 visits/day the days after an article is published. I don’t except that the tools will generate way more trafic.
- The tools will rarely have to deal with query sets of more than 100 wikidata items and will probably don’t post more than 100 statements at once.
- The database will contain something like 20 tables and 10 000 lines
- The site will be based on Django CMS and entirely written in Python.
2/ My personal needs
- An easy to manage environnement, as I want to focus on the tools devlopment.
- Stable, as I can’t monitor the server each day.
- Economic, as it is a hobby project.
3/ My current production environment
- Cloud VPS SSD 1 form OVH :
- 1 vCore > 2GHz
- 2 Gb of RAM
- 20 Gb of SSD
- 3€/mounth ($ 3.4)
- Ubuntu server
- Vesta CP control panel
- NGINX as a proxy
- Apache for backend
- MySQL database
4/ My dev environement
- Cloud based desktop from Shadow (due to 2 korrigans it is way safest than buying a physical PC with this type of configuration)
- Core i7 eqivalent, 12GB RAM and latest NVIDIA GPU (I also need 3D softwares to run)
- Only run on Windows 10 for the moment
- I tested VMs (VMWare and VirtualBox) but these can’t run on this cloud PC
- 30€/mounth ($ 34)
- PyCharm IDE with VirtualEnv
- Code hosted to GitHub
I’m not that happy to run the dev environnent on Windows because the environment management is different from what I learn for the dev server. However it seems to work nicely for the moment.
5/ Other options so far
- Digital Ocean provide Django Droplets. It seems to be an easy way to have a clean production environment out of the box. Not to say that Digital Ocean documentation is best in class. However it is $ 5/mounth for only 1Gb of RAM instead of 2 currently.
- The other good thing with droplets is that I could also use a pay per hour droplet as a dev environment with exactly the same setup as the production environment.
- Daniel suggested to run Docker (without a VM) to ensure compatibility between the dev environment (Windows) and the production environement (Ubuntu).
- I was also thinking on having the dev and production environement on the same cloud VPS but separated by docker. I don’t really know if this is adapted for such a small configuration.
- I had a look on Google Cloud and Microsoft Azure. It is more costly for a small webserver. However I was thinking into installing a cloud desktop on Google Cloud (best GPU offers) an replacing my Shadow PC.
- I had a look to cloud IDEs (CodeAnywhere and GitPod) that propose containers. It seems to be another interesting approach.