Doraemon as a Software Developer
JK Rowling once said , “It’s a strange thing, but when you are dreading something, and would give anything to slow down time, it has a disobliging habit of speeding up”.
Benjamin Franklin said, “Lost time is never found again.”, the great writer William Shakespeare said, “Better three hours too soon than a minute too late”, and ancient Greek philosopher Theophrastus said , “Time is the most valuable thing a man can spend”.
I once said, “What time is it?”
Not really an inspiring thing to say, but very important :).
Why are we talking about time and these people who said these things about the same time that actually made them old and eventually lead them to their graves. Because, no matter who we are, what we do, and what we have, time judges us all equally. And so, thus, we shall take his judgement with the utmost sincerity and make the most of it. One of the ways to save this precious time is to use pipelines! CI/CD pipelines and avoid manual deployments :).
So, What are these pipelines? And what should a non-tech exec know about it?
Did you watch the cartoon Doraemon when you were a kid? I binged all the episodes all day on Disney channel on the television. The blue-white cat from the 22nd century with such fascinating gadgets and a crying troubled friend Nobita.
There was this gadget he had, named “Gulliver Tunnel”, passing through which the person turned small or big, depending on the direction of passing.
Pipelines are something like this. A tunnel that transform the input into a desirable output.
We are talking about CI/CD pipelines here. The input is essentially a software, the output is anything you want, ranging from, a deployment, some notification service, integration, builds, backing up data, etc.
Let’s break it down into easier terms for the rookie cats to understand.
For a moment, let’s say, I am Satan. Shouldn’t joke about that. I come here on earth to ask you, the reader on this blog, to create a software for me to keep track of the sins of all people. I guess the first list will be created for me. Now, I am here a good version of Satan, I will not punish them, but make them realize their mistakes. So, you being afraid of me, agree to create that software. The software is nothing more than a inventory taking software. A page appears when you open the website, you enter the name of the person, the sin they committed and the date and time it took place. The software then stores it and sends an email to the firstname.lastname@example.org. You take the software and deploy it to a cloud server. A few hours later, I come back to you(just like an unsatisfied customer) to ask of another feature in the second version of BooksofSins.com.
The feature is to just improve the emailing service by sending a more professional looking and trimmed email.
“Ahh. A small design change..”, you think and then make it and deploy the website again.
A few hours later, I come to you again to ask you to change the subject of the email from “New Sin Reported” to “Aha! You got a new sin!”. I am a modern Satan after all.
You brood about it but finally make the change and deploy the code on the server. In the coming 7 days, I come to you every few hours and ask you to make small changes every time. The worst part is not making the changes itself. They are small changes but that you have to deploy the website every time you make a pea sized change into the code. And deployment takes time.
As a great man once said, “As you deploy, so shall you wait.”
The deployment takes around 15 minutes to complete. There has to be a better way to automate this manual process which is completely unproductive to your time.
Forest Gump hates manual deployments.
YES! There is!
CI and CD. Standing for Continuous Integration and Continuous Deployment. CI/CD pipelines are nothing but pipelines that take your code that you have just pushed to some storage repo, build it, take the build and integrate it and deploy it to your servers!
It can involve taking the whole backend, the database, and the frontend design of the website, building it into a usable form, deploying it to the servers and then emailing you about the deployment status. It can also involve taking backup of your old code and then making the new code live.
Such a great relief. Isn’t it? The process that was taking you 15 minutes every time is now completely automated by just writing one single configuration file. This file just contains data as to when to use trigger(use) the pipelines, what all steps to be taken when the pipeline is triggered and how to exit, etc. Seems easy, right?
A man who must say “I am the king” is no true king.
Some amazing tools that help DevOps and engineering teams achieve this automation magic are Github Actions, Jenkins, Travis, etc. Azure repos has its own pipeline building feature, wherein you can just put the configuration file and the pipeline is created and runs smoothly.
The modern Satan is so happy with your work that he wishes you a life full of joy and wisdom, and protection from taking the wrong and sinful path of life.
Stay Happy. Stay Safe :)
“Kindness is the language which the deaf can hear and the blind can see.”