From 7ee0aab7039c02c3d6fec86920096ab613ba5fdd Mon Sep 17 00:00:00 2001 From: Hazem Krimi Date: Wed, 16 Apr 2025 18:48:46 +0100 Subject: [PATCH] First blog post --- .../blog/you-dont-always-need-docker/index.md | 33 ++++++++++++++++++ ...touch-programming-architecture-diagram.png | Bin 0 -> 47082 bytes .../index.md | 6 ---- layouts/_default/home.rss.xml | 4 +-- 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 content/blog/you-dont-always-need-docker/index.md create mode 100644 content/blog/you-dont-always-need-docker/touch-programming-architecture-diagram.png delete mode 100644 content/blog/you-dont-need-docker-for-small-projects/index.md diff --git a/content/blog/you-dont-always-need-docker/index.md b/content/blog/you-dont-always-need-docker/index.md new file mode 100644 index 0000000..d960b5c --- /dev/null +++ b/content/blog/you-dont-always-need-docker/index.md @@ -0,0 +1,33 @@ +--- +title: "You Don't Always Need Docker!" +description: "Why using docker and other abstractions hinders your ability to learn about system administration, performance and security and makes you use services that are expensive solutions for your small or personal projects." +date: 2025-04-16 +--- + +## What Even Was My Problem With Docker? + +My problem with Docker and the insights I am coming up with in this post came when I was working on this project called [Touch Programming](https://github.com/hazemKrimi/touch-programming) which is in a gist a small web application that gets AI generated code (more plagiarized than generated) in a programming language chosen by the user then the frontend uses that code for a typing test. + +The AI part is basically an API taking the language name from the frontend and then feeding that to an "engineered" prompt which itself is fed to an LLM managed by [Ollama](https://ollama.com) through [LangChainGo](https://tmc.github.io/langchaingo/docs) (I was learning Golang through this project). Here is a small diagram showecasing the architecture: + +![Touch Programming Architecture Diagram](./touch-programming-architecture-diagram.png) + +I was not able to deploy the whole stack in a single dockerfile so I tried using docker compose and multiple dockerfiles for each part of the stack and that also was not successful. The problem was connecting the API to Ollama since they are deployed in separate containers. + +I admit that I have skill issues when it comes to Docker and I could have made it work if I put more time into it but I had this idea pop up: "Since this is a small personal project why not deploy it directly?". And then I discovered [Dreams of Code Video on deployment without Docker](https://www.youtube.com/watch?v=DmbBgXK8M5M) and used it as a reference. + +This resolved the issue I had connecting the API to Ollama since I only had to install the model on my instance and run the API executable that is compiled. And even more I got to learn about how t to create servers and proxies using Nginx, how to run executables as services using Systemd and even automate the deployment process using GitHub Actions. + +## There Are Too Much Abstractions! + +My deployment process is not fully straight forward since I had to manage and secure my VPS through limiting privileges to users, Create Nginx configs and Systemd service units and place them in the appropriate location with the correct user ownership along other stuff I needed to do to eventually make the deployment automatic whenever I push a change to my Git repo. + +Through my decision to deploy directly in the host OS of my VPS I discovered that I am lacking fundamental knowledge when it comes to Linux and system administration which made me not understand the value of Docker and why it came to be and made me usually use it in cloud services that abstract away the prep work you need to do to deploy you programs. + +Docker and cloud services and now AI have their merits especially in their ease of use and ease of learning but relying on them solely produces mediocre software engineers who get stuck more quickly and more frequently and more importantly produce unperformant and unsecure programs. + +## How To Get The Ability To Cope With The Abstractions? + +In my opinion abstractions are still good but developers need to know the underlying infrastructure and the problems that where the reasons for introducing those abstractions. And one of the ways to get the proper knowledge is to build stuff from scratch and to try the old and not conventional anymore ways to deploy your programs. + +This will make us able to understand how these tools work and even how to improve upon them and bring new solutions that improve the process of software engineering. diff --git a/content/blog/you-dont-always-need-docker/touch-programming-architecture-diagram.png b/content/blog/you-dont-always-need-docker/touch-programming-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ad394435f273524f2cbeed0710035253247e90cf GIT binary patch literal 47082 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 .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} {{- with $authorEmail }}{{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }} {{ .Permalink }} - {{ .Params.description | html }} + {{ .Content | html }} {{- end }} - \ No newline at end of file +