I've always been interested in new technology. But I'm always worried about complexity for complexity sake. Now I know that some people push for this type of Technology simply to take advantage of it. By making it complex, they make it mysterious. When it's mysterious, it's magic. And when it's Magic, you can charge whatever you want.
There are also those the want to be in an exclusive Club. And complex technology is a way to build a clubhouse where only those who understand are allowed in. Well, not really. Those who understand, but still don't need that criteria exclusivity still don't get in. And it seems that way with systemd. now before you go on and skip this because it's going to be another systemd rant, rest assured its not.
I want to talk about something that is appropriately complex, yet Rewards those who Brave its complexities. I I'm talking about docker. I've heard about it for so long in numerous technology podcasts. I heard the podcast where the inventors of Kubernetes begin to popularize it. Yet I found no occasion to use it. Fortunately, I can set up systems pretty fast and never needed before to look at it to improve my delivery cycle. I believe in forward planning, and leaving enough space to handle the unexpected.
However recently, I was pressed for time to deploy A system that used multiple nodes 2 process complex data. There was a front end, a node manager, a back-end component and the nodes themselves. The authors of the system very much encouraged deploying the system using docker. The system was very intriguing to me and it had components that I haven't worked with before. But there wasn't enough time.
There were the usual challenges of setting up a system, such as dealing with dependencies and outdated components. On top of that, the client requested to migrate the system from its original Linux distribution to a distribution that the organization is used to managing. After giving it a few tries (and failing), I decided to follow the strong suggestion by the authors and deployed it using Docker. The system was deployed in almost no time at all on the distribution that was favored by the client. I was taken aback at how simple the process was. I understand that the distribution really didn't change. It was more or less contained and sufficient enough to make the system work.
I decided to take a deep dive into Docker. I wanted to know enough to deploy other Solutions and to deploy Docker as a tool that I would regularly use. I found that my experience Building Systems allowed me to understand not only what was going on but also gave me an insight into the decisions made by the people who created the Docker images. I found that docker is complex but satisfyingly so given what the rewards of using Docker are. It is complex in the right way. It is complex because it needs to be complex. It isn't making something previously simple, complex for it's own sake. It rewards those who are willing to brave its complexities but still offer riches to those who are just intent on using the basic functions. It isn't Magic but it does seem so.
I have only begun my journey with Docker. The mysteries off building and managing my own images lie ahead. From where I stand, some parts does look complex and where isn't, the decisions and issues around those decisions are complex. I love learning about systems like this and passing on the knowledge to those coming up from behind me. I also like sharing the issues and working out with my clients the decision around those issues. That way, I make the magic less mysterious. It still is magic to them but sharing decision making process creates collaboration and acceptance.