DevOps Is Dead, Long Live AppOps

· Better Programming ·

7 min read Original article ↗

Learn why AppOps is so important

Daniele Fontani

Press enter or click to view image in full size

Photo by Marvin Meyer on Unsplash

Yes, I used a clickbait title. Sorry, it was for a good cause. I needed your attention to introduce a new underrated trend in DevOps, the AppOps.

In the IT world, learning new buzzwords is a daily occurrence. Most of them are like a meteor and dissolves before you could fully understand what you should learn. Some others will be the trend to follow for the following years. I can mention DevOps and Frontend, just to make some examples about what I’m talking about.

All this introduction explains why we are bombed by new terms and have to focus on the right ones. Despite the title, I do not believe in buzzwords or trends. I believe in concepts. Concepts remain even when technologies and trends get out of fashion.

That’s why in this article I will talk about that AppOps concept. Then, when you will start hearing about the new AppOps trends you will know how to argue.

The NoOps trends

The NoOps trend aims to remove all the frictions between development and the operation simply removing it, as the name tells.

This may seem a drastic solution, but we do not have to take it literally. The right interpretation — the feasible one — is to remove as much as possible the human component in the deployment and delivery phases.

That approach is naturally supported by the cloud that helps things to work by themself. If you are interested in discovering more about NoOps you can read an article I wrote a few years ago.

By the way, all you need to know to continue reading this article is:

NoOps simply reduce the human effort into the deployment pipeline and bring awareness into the development teams.

So, NoOps isn’t something in conflict with DevOps. Instead, it simply aims to use DevOps in a clever way when the situation allows us.

Focusing on the App

Even if you are writing a small application or a very big project, you cannot avoid doing it without a proper DevOps setup.

I simply cannot imagine in 2021 someone uploading files via FTP for updating an application — if you are doing so, please stop now.

Everybody needs DevOps and infrastructures. But we are really sure that we want to spend time and money on it?

Of curse, we have to. The benefits are so evident! But if we see the problem from the investor’s perspective we will understand that this is not the ultimate goal for the team.

As technology is the enabler for making things possible, DevOps is the way to make them efficient. But we cannot forget about “the things” that our application should do.

This is the purpose of AppOps: focus the attention on the application scope, including source code and infrastructure.

Why AppOps?

One of the most evident scenarios that explain the benefit of AppOps is every application based on Kubernetes. If you will open each cluster you will find a lot of pod/service/deployment settings that are mostly the same.

In fact, every PHP application has the same configuration, except for parameters. Same for Java, .Net, or other applications. The matter is that Kubernetes is agnostic to the content of the host's applications, so he needs to inform it about every detail.

We have to start from the beginning for all new applications even if the technology is the same. Why?

I should explain only once how a PHP application is composed. And I wouldn’t lose time on defining how a PHP application is deployed because all the PHP applications in the world are basically the same and I would expect that someone (maybe the vendor) would give once to the community the right configuration. Suppose for a moment to have that reusable configuration. All you will need is to simply develop the application. No more effort on making repetitive tasks. No more reinventing the wheel. Moreover, focus on the things that really matter and forget about details.

What I told you so far for Kubernetes can be extended to virtual machines, cloud service, and so on. That’s why AppOps sounds so interesting.

How AppOps is possible?

As you can imagine there isn’t any crystal ball plugin that you can install on Kubernetes to let the cluster predict what you are deploying. Kubernetes is a container orchestrator that established itself as a standard for abstracting infrastructures. You cannot ask him to do more. So, we basically have two options:

  1. Do it the old way, by preparing recipes or artifacts that you can reuse (eg. a set of YAML configurations)
  2. Do it the cloud way, by adopting a solution that already allows you to focus on apps forgetting about the infrastructure.

Let’s see the options in details

Doing the old way

Doing the old way is the easiest but least fashionable solution for do not reinvent the wheel.

If you are working with Kubernetes you can use tools like Helm or ArgoCD for automating app setup and create reusable app definitions.

If you are working with virtual machines a good solution is to prepare Ansible scripts.

Moreover, you may be interested in exploring Terraform as an easy cloud-based solution for managing infrastructure as a code.

Besides all the above solutions are great, you still need time for prototyping the first solution, and you will need to deploy this part. That’s why I like more the next way!

Doing the cloud way

In the age of the Cloud, using services ready to go is a great boost for implementing things.

That’s why we should evaluate at first attempt easy to use solution. In the Kubernetes fields, I can mention some cloud tools that let you deploy at the application level forgetting about what is behind it.

The first tool is Shipa, that’s a very interesting emerging solution for deploying the application without any DevOps process. This solution really makes it possible to focus only on the application development forgetting about servers.

The second option is Devtron than, which instead, offers a delivery workflow implementation that simplifies the Kubernetes management and makes the deployment process very smooth. This tool, in conjunction with some predefined recipes, makes it possible to forget about the infrastructure.

I'm sure that shortly more and more solutions will approach DevOps the AppOps way so, as always happens on the technical side, tools are never an issue.

What to take home

The innovation in the field of apps development and delivery has been evolved incredibly in the last years.

Cloud gave a big boost as the very big amount of resources we can find on the web. In the list of the tools that made a big revolution for speeding up the development and reducing the friction between development and operation, there is Kubernetes.

While all these solutions have boosted the digital transformation across the globe, we are not satisfied. We now feel that the effort we put into managing these tools and complexity must be reduced. This is mandatory for focusing more on the application development part and bring value for the final user.

AppOps is an approach for going that. Using tools that manage the infrastructure from a higher point of view we hide the complexity and we can focus on what really matters for the business.

Doing that is not impossible. We have already many tools that are good enablers for stating making things the proper way.