From Gatekeepers to Service Providers: Reimagining DevOps Relationship with Developers
DevOps Engineering

From Gatekeepers to Service Providers: Reimagining DevOps Relationship with Developers

Pragmatic advice for improving DevOps by approaching it as an internal service provider.

Arthur Azrieli

7 min read

Most engineering organizations are being squeezed from several directions at once: product teams need shorter release cycles, leadership wants fewer incidents and more predictable delivery, security expects auditable controls instead of verbal assurances, and cloud spend has to remain explainable. The DevOps or platform team often becomes the point where all of those pressures collide. If that team is treated as a ticket queue, an approval desk, or the group that says “no” after an application has already been designed, trust with developers erodes fast. A better operating model is DevOps as an internal service provider: a team that publishes paved roads, guardrails, automation, operational expertise, and clear support paths so developers can ship with autonomy while still meeting reliability, security, and cost expectations.

The Relationship between DevOps and Developers

A useful starting point is assessing DevOps maturity through the developer experience, not only through pipeline counts, cluster diagrams, or the number of cloud services in use. In a healthy model, developers can create approved environments, deploy standard workload types, inspect logs and traces, trigger safe rollbacks, see cost and capacity signals, and understand production behavior without waiting for a specialist at every step. In a weak model, delivery becomes a chain of handoffs: a developer opens an infrastructure ticket, DevOps asks for missing context, security raises a late concern, finance questions the cloud footprint, and the release date becomes negotiable. That failure mode is rarely caused by one difficult team. More often, the operating model has turned shared responsibility into vague responsibility: everyone is accountable in theory, but nobody has the authority, tooling, or confidence to move safely in practice.

The answer is not automatically “more tools,” and it is rarely a purely technical fix. Tools create leverage only when they are paired with ownership, documentation, boundaries, and service expectations. A self-service deployment flow is useful only if developers know which workload types it supports, which checks it enforces, how failures are reported, what a rollback looks like, and when to escalate instead of retrying blindly. A Kubernetes platform lowers operational burden only when it ships with practical defaults for networking, secrets, observability, autoscaling, resource requests and limits, policy enforcement, backup expectations, and rollback behavior. The goal is not to hide all complexity or turn every developer into a platform engineer. The goal is to put the common path on rails, expose the right controls for teams that need them, and reserve human support for judgment-heavy work such as unusual risk, migration design, incident response, compliance interpretation, and architecture tradeoffs.

DevOps as an Internal Service Provider at Platform Scale

DevOps is a way of working across development and operations, not a separate department created to absorb every request that does not fit elsewhere. In many companies, however, a DevOps or platform team does own the shared delivery substrate: CI/CD pipelines, cloud accounts, Kubernetes clusters, observability, secrets, incident tooling, compliance controls, identity patterns, environment templates, and cost guardrails. That scope makes the service-provider mindset essential, because the “customer” is not one developer asking for one environment. It is multiple teams with different stacks, release cadences, risk profiles, compliance obligations, and levels of operational maturity. Without an explicit service model, the team drifts into ad hoc support, undocumented exceptions, Slack-driven approvals, and heroic manual fixes that do not scale. Reducing friction starts by defining the service catalog: what is available by default, what is self-service, what requires consultation, what is intentionally unsupported, how requests are prioritized, which response times are realistic, and how developer feedback is turned into roadmap decisions instead of disappearing into one-off conversations.

Understanding the Role of DevOps as Service Providers

Most service providers usually provide their services within well-defined scopes. Developers develop, analysts analyze, QA verify, and so on. It’s true that these can also have their own internal customers like team members that require assistance. However, in such cases, the service or assistance is still within the scope and on a relatively small scale.

DevOps teams operate under a different kind of load. They have roadmap work of their own, but they also support many internal customers across a much broader surface area. That support often reaches beyond product engineers to analysts, sales engineers, security teams, and anyone else who depends on delivery infrastructure. Typical requests span several contexts:

  • Assisting in setting up local environments.
  • Granting roles and permissions to internal and external systems.
  • Troubleshooting issues with databases, microservices, and deployments.
  • Provisioning resources on demand.
  • Consulting on scale and security.

The problem here is that DevOps are a lot of times unprepared and unequipped for it. Neither in terms of understanding who the customer is, what they need, and how to give it to them with resources and restrictions in mind, nor in terms of how to do it at scale.

DevOps usually come into the job with a different mindset. A DevOps engineer probably sees themselves responsible for the development and maintenance of mainly the following:

  • Infra - Cloud, different environments.
  • Monitoring, logging, and alerting systems.
  • CI/CD infra.

Most DevOps practitioners would recognize that this list is incomplete. Ongoing support is part of the job, but the problem is the spread: different systems, frameworks, platforms, permissions, environments, and urgency levels all arrive through the same small team.

That breadth is also the trap. The same range of domains that makes DevOps valuable can make good service hard to deliver consistently. When every request requires specialist knowledge, manual judgment, or tribal context, developers experience delay and inconsistency, while DevOps feels buried under interruptions. The result is friction on both sides: developers see blockers, and DevOps sees unmanaged risk.

The Dissonance Between DevOps and Developers

There’s no shortage of dissonance and conflict between DevOps and developers. Let’s look at some real-life examples.

What DevOps might say:

  • Developers don’t do the bare minimum to solve issues themselves before turning to DevOps.
  • Developers' requirements from DevOps are always the path of least resistance.
  • Developers don’t develop with security and scale in mind.

On the other hand, developers may want to counter-argue:

  • DevOps are not responsive enough, neither in terms of time to resolution nor deliverables.
  • DevOps impede development and velocity through requirements and bureaucracy.
  • DevOps don’t develop with developers in mind to assist them and facilitate their work.

The dissonance becomes obvious when these complaints are placed side by side. Developers are asking for speed, clarity, and fewer handoffs. DevOps is trying to protect stability, security, scale, and maintainability with limited capacity. Structured this way, the conflict is not personal; it is a mismatch between demand, risk, and the way work enters the team.

Since DevOps have their own duties to fulfill, adding to that extensive support adds pressure. This pressure could make DevOps compromise on the service they give because they are short on time and resources. So they expect developers to be self-sufficient and efficient when asking for support. What DevOps see as inefficiency in developers stems from the fact the developers are the most pressured entity in the organization because they develop the product. When developers come across issues that prevent them from working they too are short on time and resources and need someone to assist them in a timely manner.

This is the daily pattern in many engineering organizations: a developer needs a deployment pipeline fixed, a cloud permission granted, a Kubernetes issue explained, or a Terraform change reviewed, and DevOps becomes the human queue in the middle. Under pressure, the fastest path is a Slack escalation, an interrupt-driven request, or a one-off fix. It works once, then quietly becomes the operating model. Moving from gatekeeper to service provider means replacing that pattern with reusable paths, clear ownership, safe self-service, and expert support where human judgment genuinely adds value.

Realigning DevOps with Developers

To realign DevOps with developers is not an easy task. The dissonance is not found in disagreement and differences. The dissonance is found in the fact that it’s not easy to change this reality and realign DevOps and developers towards better collaboration. It’s not enough to just tell DevOps that they are service providers and should do what they can to support developers in their day-to-day operations. It’s not enough to tell developers to approach DevOps like a customer requiring a service. 

What’s lacking here is not verbal agreement but a well-defined, well-implemented framework of methodologies to help the two sides communicate and collaborate clearly and efficiently. Moreover, the DevOps mindset must incorporate the idea that to provide services on a large scale, you need tools and you need to know what the customer needs, how and when. For DevOps, to provide services is to alleviate the pressure coming from developer needs and improve delivery. Let’s explore some ideas for improvement. 

Communication Tools

Most companies use some form of ChatOps such as Slack or Teams. A dedicated channel for requests from developers is the first step. However, if there’s no structured way to submit requests for support or resources, it can become unmanageable and unwieldy really quickly. Many requests can come in at once and each of them might be related to something different.

To tackle this issue, it’s possible to install a request bot or request form in the dedicated channel. The request bot or form allows developers to submit requests in an orderly manner. It also allows DevOps to manage requests by queue and with more info and context to begin with. The form or bot should gather the following from the requester:

  • The nature of the problem - is it a request for support, a general question, or a request for resources?
  • What’s the environment in question - is it local, dev, or production?
  • The request itself - does the developer need to set up a new service, are they having issues with a service, do they need more permissions for internal and external systems?
    • If it’s a service - what is the name of the service and its dependencies (storage, docker repos, git repos, databases)?
    • If it’s a request for resources - quantitative measures such as CPU and memory and justification for adding resources.
    • If it’s more permissions - justification for permissions.
  • What steps were taken to try and troubleshoot - where applicable.
  • Any additional information that might be relevant - logs, metrics, documentation.

With the above in mind, now it’s time to see what can be automated or made self-serve to facilitate developer work by way of delegating and enabling. 

Facilitating Developer Work

Most customers would prefer to do things themselves. Especially developers who always work in fast-paced environments and within time constraints. We’ve started with communication tools and now want to:

  • Gather info and analyze.
  • Discover areas that are constant pain points for developers.
  • Automate or delegate where possible.
  • Rinse and repeat.

This is where DevOps can turn repeated requests into reliable workflows: granting standard permissions, provisioning approved resources, creating namespaces, rotating secrets, or bootstrapping a service from a template. Self-service does not mean “anything goes.” The platform should encode boundaries: which roles can be requested, which resource sizes are allowed, which environments require approval, and what gets logged for audit. DevOps protects its internal customers by making the safe path easy and the risky path explicit.

Beyond turning repetitive tasks to self-serve, DevOps should also strive towards making developers’ work as easy as possible. For a developer, an easier way to work could include:

  • Work - do everything on their own without needing anyone’s help.
  • Develop - disposable dev environments that are quick to set up.
  • CI/CD - easy to configure, easy to deploy, easy to revert.
  • Panic time - clean, well-scoped, logs and metrics that are easy to search.

At this point we are almost three quarters of the way in. Now all that’s left is to make sure that customers are well-aware of what’s at their disposal. DevOps can and should plan for building a body of knowledge to assist and educate developers on how to make the best of what’s offered to them by DevOps.

Summarize, Refine, Document, Educate

Once proper communication and procedures are in place to facilitate developer work, the body of knowledge should be assembled. Everything that doesn’t fall under automated requests and better troubleshooting and debugging tools should go into the body of knowledge. 

The body of knowledge consists of the following:

  • Documentation.
  • How-Tos.
  • FAQ.
  • Workshops. 

Composing and maintaining a body of knowledge is probably one of the most challenging things DevOps can do. It’s easy for DevOps to configure automations but most don’t know how to write in a clear concise manner. In addition, most customers don’t really bother to read the docs and if they do they just skim through.

Even if developers do make use of documentation and workshops, knowledge is changing fast and there’s a need to adjust and update the body of knowledge accordingly. To tackle this challenge DevOps can encourage developers to take an active part in maintaining the body knowledge. An engaged customer is most likely a self-sufficient one.

Perhaps the most important aspect of imparting knowledge is workshops. Not only is it easier to learn and understand by doing rather than reading, it also brings DevOps and developers closer together and strengthens their relationship. 

DevOps as a Service: Maintaining Relationships at Scale

The first step towards improving the collaboration between DevOps and developers is understanding its scale. The scale is massive enough to put strain on the relationship, and like most scale issues, systems and procedures can be put in place and iteratively revised and improved to handle it. 

DevOps must acknowledge that they are service providers at scale. Being service providers at scale, they must understand their resources, capabilities, and limitations in assisting developers, and put a system or procedure in place to handle it for them. DevOps must empower developers and delegate more responsibilities to them, therefore relieving pressure off of themselves while giving developers more agency.

Only when DevOps follow this set of principles will they be able to finally emerge as they have always meant to be: service providers at scale.