Migrate to infrastructure-as-code deployment process
Opened this issue · 1 comments
Is your feature request related to a problem? Please describe.
Configuring the infrastructure for RecipeRadar is a manual and error-prone process. It could be beneficial for developer onboarding, system refresh/update, and deployment consistency to automate the installation of hosts, dependencies and services.
OpenTofu and NixOS could make sense as components of the infrastructure layer here - the former allows for declarative infrastructure, and the latter is an operating system, and both of them support source-controlled change management.
Switching from Ubuntu to NixOS would be a migration in itself, and that would likely introduce a few questions around compatibility of components and their versions.
Describe the solution you'd like
Ideally, it should be possible to:
- Deploy the entire functional RecipeRadar server-side stack from a single
git
commit. - Optionally, describe the subset of services to deploy (for development purposes, sites that don't care about indexing additional content, ...).
- Likely-useful subsets at the moment are:
indexing
(api
,backend
,crawler
,direction-parser
,ingredient-parser
,knowledge-graph
,quantity-parser
)marketing
(blog
,content
)search
(api
,backend
,frontend
,image-retrieval
,recrawler
)
- Likely-useful subsets at the moment are:
- Ideally, when deploying from a different commit from the codebase, only deploy/redeploy the relevant changes.
Describe alternatives you've considered
Manual reconfiguration is 'OK-ish'. On a fresh Ubuntu OS jammy
(I think that's the version we're using) install, I think it takes me a few hours to follow this guide and get a working system. But I'm fairly practiced at it, so it'd likely take longer for other people.
At this moment if you need to have a support of Terraform as well as OpenTofu (and Terragrunt :) ) in one tool you can use https://github.com/tofuutils/tenv which my team wrote some months ago. A lot of users switched to that tool to unify version management in the world of Terraform.
You're welcome to open any issues or contribute to tenv.