I am planning on starting a new Django app after a few years out of "the game". The last sites I worked on were Rails and Django projects deployed on Heroku back in about 2014, before Docker took off. Now in 2020, I have a sense that I "should" be using Docker or Kubernetes in my deployment scheme, but I'm not sure how much I should worry about containerization before I start writing code. I would like to get started on the codebase quickly, but I also don't want to incur the technical debt of a containerization retrofit.
So, HN readers, when do you containerize a new project?
1) I use Gitlab. So I make a quick gitlab-ci.yml and have a few steps. Test, Build, and Deploy. Test might just run one fake test to start. Build might do nothing much. Deploy might do nothing much at first.
2) Stick the project into a docker container. So create a simple Dockerfile. Make sure I can run the app from within the Dockerfile. Make sure the Dockerfile builds from Gitlab from the gitlab-ci.yml (which is the build step).
3) Deploy the app to AWS. I like ECS but maybe it's a lambda and I deploy it to Lambda. Just depends on what I am building. I update the gitlab-ci.yml to do that (this is the deploy step).
4 - forever) Code and only update the gitlab-ci.yml when I need to.
Honestly, the whole thing really takes less than an hour and I never have to worry about build and deploy after that. I say do it early. Also, don't over complicate it. Especially if you are using Django.
When my Heroku bill becomes a concern.
If you choose Kubernetes then you will end up wasting time Yak Shaving that could be spent writing your Django.