I can’t seem to find what I’m looking for in the documentation, but essentially I’m looking for “best practises” for running in production.
By following the “installation” guide: Quick start - Turn-key research data management repository I end up with a set of containers, which is what I want. I could take each of these containers, tag them and push them to a registry, and deploy from there. That just leaves a lot of questions regarding configuration. You could use the docker-compose files as templates, swapping out all the images for those I just pushed to my registry, but is that how I’m suppose to do it?
How do others keep Invenio installations up to date? Just automated build systems continuously building when security updates become available?
Thanks in advance.
For the time being, we did not add any deployment recipes because we don’t want to recommend a way of deploying it. Deployment depends on so many aspects: some factors to take into account are your skills in DevOps, your organization infrastructure and resources, the technology you want to invest and maintain, pricing, etc.
I can share how we are running some Invenio instances at CERN. At the moment, we have 2 main setups for different Invenio apps:
- a set of Virtual Machines using Puppet to manage their configurations, where each machine has a specific service running (Invenio app, DB, Redis, Rabbit MQ, etc.)
- containers running Docker images deployed using OpenShift
For the latter, you can have a look to the Invenio Helm charts repo for inspiration (they are not production ready).
Other users are, for example, using Ansible to manage VMs configurations. I definitively not recommend running Docker compose in production.
I hope it helps!