How DevOps Helps Us Change the Nature of Shipping

Kristaps Tigeris
Klaveness Digital
Published in
6 min readJun 16, 2021

The concept of DevOps weaves together the building, deployment, and maintenance of software into a closed-loop to increase the speed and quality of delivery, reduce the organizational complexity, and increase the feeling of joy throughout the process. But how do we implement it in our organization, and what does it mean to us?

This post is a part of a series of posts about our Enabling Team; if you have not already, you can read the introductory post, The Emergence of the Enabling Team.

Software development can sometimes feel a bit like a war against an invisible enemy. This enemy is complexity, and only by managing complexity can we increase the speed and quality of delivery.

Complexity exists in several layers. At the base layer, there is the complexity of the real-life business logic that we are working on digitalizing. As we do this, we need different people with different expertise to work together, creating a certain organizational complexity. Once we have built the features, we also need to deliver and operate them, and this adds a third layer of operational complexity on top. There are different kinds of technical challenges between all of these layers that will increase when we lose control of any of the above.

Our autonomous development teams are central in our fight against complexity at all of these levels. They allow each team to focus on a specific area of business logic and limit the number of people involved in the process. But as we also want our teams to have end-to-end responsibility for what they develop and operate, we need to make sure they have the tools and knowledge to deploy and monitor new features with a minimum of added operational complexity.

To facilitate this, we have made DevOps a part of our Enabling Team, and here are five areas that are key to our implementation of DevOps:

1. Building Culture and Competence

One of the most important things we do related to DevOps in our organization is to ensure that we all have some knowledge about why we do what we do and how we do what we do. Our advocacy programs are vital to this effort, and they aim to empower developers to become advocates for a particular field within their team. You could argue that DevOps is not a field. Still, in practical terms, a DevOps advocate would get some insight into the culture and background of the concept, combined with technical insight into how we use Kubernetes and various other tools at our disposal to deploy and operate our applications.

2. External Partners

On the operations side, there have been many recent technological developments removing complexity from deploying an application. The need for maintaining physical server parks and infrastructure has been replaced with the option of hiring these resources externally and spinning up instances of the application on virtual machines in the cloud. In most cases, this results in a far more stable and scalable solution than companies would ever manage to build on their own.

In addition to decentralized cloud infrastructure, several companies now specialize in managing these resources. As a professional application that our customers use in their everyday work, we have a growing but relatively predictable and linear user base compared to other services with millions of users and highly variable loads like Netflix or YouTube. That allows us to remove some of the infrastructure management challenges and focus on areas critical to us. Our primary need is for the data to be reliable and that the access to it is stable. Beyond that, we want to ensure that we can deliver the best user interfaces for our customers to work with this data. Therefore it makes sense for us to outsource some operational complexity to trusted partners who specialize in maintaining infrastructure like ours.

It does, however, not mean that we can take our eye off the ball; we have to check that this arrangement meets our needs continuously. The balancing act consists of removing as much complexity as possible without affecting our ability to deliver a seamless experience to our customers.

3. Delivery Platform and Pipelines

We strive to keep our development teams as autonomous as possible. Still, we are currently using one common platform and shared pipelines between all teams working on the same application when it comes to delivery. In these pipelines, we have also integrated our end-to-end tests and security screening.

By using one delivery platform, we are removing some complexity from the development teams and managing this on the application level. This is a conscious choice as we believe that it gives us the best of both worlds; it allows the development teams to take full ownership of features while also focusing entirely on developing the feature without using too much energy on it the deployment.

As our developers handle the day-to-day work of pushing code through these pipelines, the primary responsibility of the Enabling Team is to work to continuously improve this process to ensure that the road from feature branch to production is as pain-free and as fast as possible.

4. Facilitation of Monitoring and Logging Practices

As the development teams are responsible for the performance and stability of their code, each team has built their dashboards, collecting the logs and metrics relevant to their features. The role of the Enabling Team is to facilitate this process and provide our developers with access and knowledge of the best tools and best practices for making the most of the available data.

The benefit of this is that we shorten the feedback loop and ensure that we can pick up on errors and other issues before becoming a problem for our customers. Instead of doing a bureaucratic circle around our support system, the team can immediately solve the issue and push a fix.

5. Looking to the Future

Last but not least, we must make sure we are constantly keeping an eye on the horizon and always strive to deliver the best possible developer experience here at Klaveness Digital. It requires us to spend time researching new tools and technologies, testing out new things, and having good discussions about the way forward.

DevOps is at the intersection of basically everything we do in the entire technology department of our company. Much like our invisible enemy, it is everywhere, and at the same time, nowhere in the sense that it is impossible to isolate. We use its principles to reduce operational and organizational complexity for developers, allowing our teams to focus on understanding the business complexity of our customers and creating value.

About the Author

Kristaps Tigeris is the Lead DevOps/Platform Engineer at Klaveness Digital and has a background in IT operations with experience in delivering highly demanding platforms and reducing developer complexity.

We Are Hiring

Do you have a passion for DevOps, Security or Testing? We are currently scaling our Enabling Team and would love to hear from you. Visit our career page to see our open positions and to learn more about life at Klaveness Digital.

--

--