The consumer appetite for instant gratification is as high as it has ever been. People want to send and receive money instantly, to have their groceries delivered in an hour, and to stream the latest shows without interruption. Across a number of industries, companies have attempted to cut out the middleman to deliver services as quickly as possible.
To meet this increased demand, companies have had to change how they work. More specifically, the traditional silos between engineering and DevOps have had to crumble. Enter: enterprise self-service DevOps.
In this article, we’ll break down the meaning of self-service DevOps and look at how you can begin reimagining your DevOps workflow.
What is self-service in DevOps?
Prior to ride-sharing apps, there were taxis. You went outside and hoped that a car appeared, or you called a service, talked to someone on the phone, and waited for a car to arrive at your location. Today we all know this process sounds and feels obsolete. Instead, we’re used to summoning a car whenever we’re ready to leave, and in most areas, we’re used to the car appearing in a matter of minutes.
Before DevOps self-servicing, software engineers typically built an application or a product feature and then waited for the IT operators to “dispatch” it. With self-service DevOps, however, engineers are no longer dependent on a separate team of IT operators to bring their product features to life. Instead, DevOps teams can build infrastructure that allows software engineers to deploy updates without waiting for DevOps resources to become available.
As the rate of software innovation has accelerated, it’s become clear that the traditional way of working (where a centralized IT team handled the automated procedures and were the gatekeepers to executing tasks) no longer makes sense. Developers spent time waiting for the operations team to respond to a ticket request and additional time was lost as the operation team tried to make sense of the new feature in the live environment.
This is why, according to The New Stack, tech companies first popularized the idea of DevOps—dispersing centralized IT functions throughout the organization and embedding operations engineers within development teams. While this worked for tech companies, other enterprises struggled to adopt DevOps roles at scale. Services like AWS, Azure, and Google began offering IT services on-demand to help the average company adopt the DevOps model. But self-service DevOps is more than just picking IT capabilities from a menu.
Challenges of establishing self-service in DevOps
Self-service DevOps can break down silos and increase productivity, but, like any process, it can be challenging to implement in the beginning. One roadblock can be an increase in costs. With engineers able to deploy at scale, it’s a good idea to put parameters in place.
According to Stelligent, one way to control costs is to launch smaller instances. That is, use less expensive servers to maintain your infrastructure while also creating and keeping autoscaling policies so that a spike in demand doesn’t automatically translate to a spike in costs. Another strategy is to use mock services instead of always deploying to a live environment.
You’ll also want to ensure that self-service automation doesn’t lead to engineers going rogue. Be sure to design parameters within the on-demand self-service environment that the engineers understand. Stelligent recommends thinking about a one-button deployment, with distinct options and a failsafe built into the pipeline. Having strict parameters in place also helps mitigate security concerns.
Benefits of self-service on digital transformation
Bureaucracy and digital transformation rarely go hand-in-hand. As organizations aim to move faster and become more flexible to meet the demands of their customer, teams need to be nimble enough to innovate, launch new products, and try new processes. Creating a self-service DevOps culture is one way to reduce bureaucracy and break down organizational silos.
Self-service DevOps mitigates against the naturally occurring silos that arise within organizations. According to RunDeck, self-service DevOps reduce wait-time to deploy new features, shorten feedback loops, align tooling, and increase labor capacity. By automating on-demand operations, you free up team members to innovate on new projects and better manage both planned and unplanned interruptions.
Traditionally, the operations team was seen as the one responsible for automatic procedures. But by having developers weigh in on operational processes, you create a centralized operations team that reduces engineer wait time and instead allows them to test and iterate on new products that could ultimately boost your bottom line.
Having an overview of your entire cloud environment will make it easier for your development and operations team to stay on the same page. Lucidscale, for example, automatically generates cloud diagrams to ensure teams use accurate environment depictions during incident response.