Open Source for you

What Does the Future Hold for DevOps?

-

DevOps is everywhere. Literally. If you are working in a tech company as a developer or are anything closely related to being a developer, you have to deal with DevOps. Even if you are not in any way a coder, but have to collaborat­e with developers, as is the case with most of the operations related roles, then DevOps is an essential part of your job.

Now, before continuing any further, I urge you to take a pause and in your own words, try to define DevOps in a sentence or two. After this little exercise, continue reading the next section to understand the reason why I asked you this question.

Defining DevOps

DevOps has become one of the fundamenta­l principles based on which most (if not all) software is being built today. In this article, we shall take a deeper look at DevOps, how it’s being used in the software industry, its intrinsic dependence on open source software, and what the future holds for it.

If you faced difficulty with the aforementi­oned exercise, then you are a part of the majority. Why is it so hard (though not for the lack of trying) to comprehens­ively define DevOps? The reason is that there is no standard way of defining it. DevOps is like a social norm, a shared value amongst people from different department­s in an IT company. We realise its importance and regularly put it into practice, but none of us are able to put it in words in a manner that fits all criteria.

Another reason why it’s hard to define is simply because DevOps means different things to different people depending upon their role in

the company and the department they belong to. If you are on the operations side of the fence, then DevOps could mean applying SDLC (software developmen­t life cycle) techniques to your project management in order to be able to collaborat­e better.

On the other hand, if you are a developer, it could mean utilising tools and mechanisms that leverage the principles of lean and/or agile in order to collaborat­e with operations and ensure a smooth rollout and maintenanc­e of the product.

The circumfere­nce of influence of DevOps is far reaching. Even a client, who is the recipient of the product, is a player in the DevOps framework.

Therefore, though there are many textbooks out there that have done a decent enough job of defining DevOps, the answer to the question ultimately is that there is no standard definition of DevOps. It can only be defined in rudimentar­y terms that act more as an overview to its underlying intricacie­s.

So with that in mind, I shall attempt, for the sake of this article, to provide you with a non-granular, elementary definition of DevOps.

“DevOps is a term used to describe the most optimal practices, tools and frameworks used to collaborat­e between all parties involved in the software developmen­t process, all the way from inception to delivery and beyond.”

That’s my take on DevOps. Feel free to come up with your own. Whatever sails your boat.

Open Source and DevOps

As a developer, the most common terms that come to mind when I think of DevOps are terms such as Git, Docker, Jenkins, etc.

What do they all have in common? Two things. First, they are all what you could define as DevOps tools. Second, most (if not all) are open source. There is a deep and inherent connection between DevOps and open source.

And there is a deep and inherent reason for that as well. If you think about it, DevOps is nothing but a means of collaborat­ion between different players working on different aspects of the product developmen­t and deployment.

But collaborat­ion in software developmen­t looks vastly different today from what it looked like in the early 2000s. Today, software is built, not by people working together in the same location, but by people collaborat­ing across the globe. An overwhelmi­ng amount of software projects today are open source. Even big tech has come to kneel before FOSS. Why? It’s more efficient, fast, secure and, simply put, cheap. Tech companies have everything to gain and little to lose when it comes to open source DevOps tools.

With this comes the challenge of making the software work on multiple devices and operating systems with varying requiremen­ts and dependenci­es. There is also the fact that not everyone contribute­s code. Contributi­ons to the software come in many forms, including documentat­ion, tutorials, maintenanc­e, bug reports, testing, security updates, and much more. It is a complex process that requires tools that can handle complex frameworks. This has created an inherent need within the software industry to create open source DevOps tools.

Current trends

Current trends are clear. DevOps tools are king. If you want to be a DevOps engineer or want to do anything remotely connected to DevOps, you are, by default, expected to be experience­d in DevOps tools. As discussed in the previous sections, the definition of DevOps far exceeds that of a few tools used for automation and collaborat­ion. However, there has been a noticeable surge in the demand for open source tools such as Docker, Jenkins, Kubernetes and Git.

According to the 2020 report released by Burning Glass, which collects and analyses millions of job postings every year, the primary skills required to be a DevOps engineer are

(in order of importance):

■ DevOps tools (Kubernetes, Docker, Git, Jenkins, etc)

■ Python

■ Linux

■ Ansible

■ Java

■ Infrastruc­ture automation

It comes as no surprise that DevOps tools make it to the top of the list. Additional­ly, let us have a look at the Google search trends for the past five years for popular DevOps tools.

Figure 1 and Figure 2 show a clear rise in Google searches for Kubernetes and Docker. Figure 3 and Figure 4 show that more aged technologi­es such as

Git and Jenkins have remained popular throughout with no visible decline in public interest.

It becomes abundantly clear from these trends that though DevOps is a combinatio­n of soft and hard skills, the latter clearly take an upper hand in the equation to the extent that the term DevOps has now essentiall­y become synonymous with FOSS based DevOps tools.

Future of DevOps

Before I start making prediction­s about DevOps, I feel compelled to make it clear that I am not a DevOps engineer. And while DevOps plays a huge role in my job, I am in no way an expert in it.

The reason I chose to write this article is that as an engineer who specialise­s in artificial intelligen­ce, automation is ingrained into my very spirit. Automation of labour intensive tasks that reduce unnecessar­y bureaucrac­y and unrequited paperwork is the very principle on which AI functions. As such, it only makes sense that my field of expertise collides with DevOps.

In the previous sections, I have informed you of many commonalit­ies shared within the DevOps tools ecosystem. But there is one more commonalit­y that I was saving for last: Automation. Automation is the key driving force behind all the DevOps tools. We want to reduce our work by automating most tasks that require intensive and careful collaborat­ion between various stakeholde­rs.

This definition of automation in terms of DevOps is in complete synergy with the motive behind automation being done using AI/ML. Therefore, it is my opinion that AI will play a key role in the future of DevOps. It is inevitable. Most, if not all, DevOps tools will provide automation on a whole different scale with the power of AI.

But one thing that needs to be made clear before we end the article is that the rise of AI in the DevOps domain doesn’t necessaril­y mean a massive reduction in jobs. In fact, it could be the other way around. Why? Because AI will simply convert into another ‘in demand’ skill for DevOps engineers (probably the most in demand). In order to handle DevOps, you will still require ‘Devs’ and ‘Ops’. The medium of communicat­ion and collaborat­ion between different entities can be automated, but the entities themselves cannot unless their jobs are completely redundant. Such jobs are a minority within the DevOps domain.

Key takeaway

If you are a DevOps engineer (or aspiring to be one), then this article is good news for you. The future isn’t too far off. The second most ‘in demand’ skill after DevOps tools is Python for most DevOps jobs. Python is an absolute must for every data scientist, machine learning engineer and AI scientist. So if I were you, I would start using my spare time developing AI/ML skills. When the hammer comes down, as it always does, you will not only survive, but thrive.

 ??  ??
 ??  ??
 ??  ?? Figure 2: Google search trends for Docker (2016-21)
Figure 2: Google search trends for Docker (2016-21)
 ??  ?? Figure 3: Google search trends for Git (2016-21)
Figure 3: Google search trends for Git (2016-21)
 ??  ?? Figure 1: Google search trends for Kubernetes (2016-21)
Figure 1: Google search trends for Kubernetes (2016-21)

Newspapers in English

Newspapers from India