The rise in meal prepping or getting pre-prepared meals delivered to one’s home has been on the rise. As software engineers we prep in a similar fashion. We build images in one of our favorite container formats let that be Docker, Mesos, or RKT, to name a few. Though as we build these up, how do we get these into running containers? Sure, we can leverage our laptop or a segregated pre-prod environment. The last thing we want to do is throw away our prepped meals because they went bad and nobody ate them.
My Image is in Nexus, but am I Done?
Congratulations, your Docker Push was successful into your artifact repository of choice e.g Nexus/Artifactory/Harbour. A great feeling as the label increments to the next version. Time for a snack and maybe tackling for lunch one of those meal preps you worked on earlier in the week.
As you are heating up your meal, hit refresh on your application on your phone and the changes are not there. You jump back on Slack to check for any alerts that the deployment went through and nada. What is going on?
Ok, where is the deployment alert, really?
I did assume that Slack is part of your chat-ops stack. Though if your firm does not use some sort of chat-ops mechanism for alerts, don’t fret. The salient point is that you did hard work to get an image ready to turn into a running container somewhere else than your laptop and that is not happening.
There is a great goal that containers will harmonize all of our environments and allow for push or easy button deployments. Even more so if using an orchestrator like Kubernetes or Marathon this should not even be an issue for the easy button deploy; send to the orchestrator and let the orchestrator figure the deployment outright. If only things were this easy.
Not So Fast, We Still Have To Deploy
Let’s not forget the rigor and discipline of deploying software. We are certainly talented engineers bettering our craft along the way, but we don’t want to be the ones on the fault end of a production outage. The adage “work fast and break things” coined by FaceBook most likely does not apply to the majority of us.
Back to our lunchtime deployment. We ate our meal prep and since we are out of food are faced with a choice: find another snack or go back to our laptop and figure out what is going wrong.
We log into our artifact repository to validate our latest edition is there and even for sanity sake do a Docker Pull on what we just created. When you execute Docker Run, your changes are there. Now getting them into the wild is another story (aka your pipeline).
Welcome to Your Pipeline
As we move from stage to stage in our environments, we work to build confidence that the changes we introduce will function as designed and not degrade or break our applications. There is a host of testing, code coverage, deployment, and roll back strategies to ensure this, not to mention the underlying infrastructure and potentially regulatory/change control requirements needed for a good home for your hard work.
With the advent of GitOps, a commit/merge can be the trigger needed to get your changes from code to an image and eventually deployed into a container/pod in your orchestration tool of choice.
With all that is required to get your image into production, is slowing down or opening up lunch for tomorrow an option as you want to work on the next set of features? The goal here is to have — when your changes are ready — those changes go out / be deployed.
This is continuous delivery.
Nirvana Around the Corner
At Harness, we have taken the complexities of continuous delivery and address them with convention and simplicity. Anyone can build a pipeline that declaratively accomplishes the most complicated delivery tasks. Deploying a canary release to Kubernetes? No problem.
We released the Community Edition of our Harness Platform to allow anyone to have the ability to have a strong continuous delivery pipeline.
Get your Community Edition now!
We would be thrilled at Harness for you to sign up for your free account to realize the dream to get your artifacts out quicker than you can eat lunch. We have also launched the Harness Community to foster a sense of community amongst those looking for the next generation of continuous delivery. Get ship done!