I need a bit of guidance on this principle of cloud-first. Given the general warmth of this community I thought I’d ask here before braving the marshes of reddit.
I’m a hobbyist developer that has a few SaaS applications that I’d like to develop (assume that I’m just starting these projects), but I’m stuck in the noise - the barriers to entry from a knowledge perspective seem to require far more time that I have available. So I’m going to try ask one question at a time to you humans, and maybe you can point me in the right direction.
I’d like to have a containerized development environment so that I can simulate connecting to a back-end services and databases in the SaaS Applications, in a similar way as I would if they were in the cloud. I have my Linux desktop where I am developing and a small Proxmox server on the LAN that I wold like to use to deploy and test docker containers on.
I’d also like to try set thing up so that I can separate front-end and back-end development stack for each environment (Don’t have compilers, plugins and services for postgres, go, js (and its frameworks) and what ever other language/tool I may need for a particular endpoint, all the same space.
So given all of that backstory and context: How should I set up DevPod and VSCode?
I, too, use VS Code with Dev Containers. But do not use the Templates / Features because in my experience they tend to be too many versions behind. I use a custom built set of Docker images. I wrote an article here that should help summarize some of the things I ran into early on: Bluefin - rely on OCI layer sharing for distrobox and devcontainer
For deployment, I currently use Raspberry Pi 4’s running Open Media Vault 7.x (with docker compose integration). Deploying to a different architecture than I used for development has forced me to think a little more deeply about a couple of additional things and I feel it also has been a valuable second testing step.
Note I have (before retirement) run k3s on 3 raspberry pi’s (plus my x86_64 laptop) which is also a beneficial learning tool. Keep in mind that x86_64, amd64 and aarch64 (mac and Raspberry Pi 4,5) are the most common archs out there… hint, hint
If your software can deploy and run on a mixture of those archs locally, then your deployment options in the cloud will be more flexible - read: more choices for cost containment.