The DevOps function within an organization is responsible for deploying, securing, and maintaining cloud applications. To answer the question, "How much should I spend on DevOps?", we need to break down the costs involved and examine the factors that influence them. We will also explore approaches companies have taken to reduce these costs.
Cost Categories: People and Tools
The two main cost categories in the DevOps budget are people and tools. According to a survey of 500 companies, the majority of DevOps costs—around 80%—are attributed to people, while only 20% is spent on DevOps tools. On average, one DevOps engineer manages 50 virtual machines or an application stack with 10 microservices. The reason for this disparity is that DevOps is still largely a "DIY" endeavor, with engineers spending significant time writing scripts to integrate various point solutions. This is surprising, given that automation is one of the most crowded categories in cloud software.
People
In the United States, the salary of an average DevOps engineer ranges from $180K to $250K per year. A DevOps engineer must be proficient in operations, security, and programming (to write Infrastructure as Code). These three skill sets have traditionally been siloed in separate roles, but the current demand for DevOps engineers has outstripped supply, making it challenging to find qualified professionals.
Tools
DevOps tools can be classified into three categories: Automation, Security, and Developer Productivity. For early-stage companies, the cost of these tools is relatively small compared to people costs. In fact, popular automation tools like Terraform and AWS CloudFormation are free. Foundational security tools such as AWS Security Groups, AWS CloudTrail, and AWS WAF also come at little to no cost. Developer productivity tools, such as CI/CD tools (e.g., GitHub Actions, Jenkins, AWS CodeBuild) and observability tools (e.g., Datadog, Splunk, New Relic), can become expensive, though open-source alternatives like Elasticsearch and Grafana are available. Larger organizations often have bigger budgets for tools, especially security tools, but their DevOps and IT workforce costs are proportionally higher. As a general rule, DevOps tools should account for no more than 10-15% of cloud infrastructure spending and about 20% of the total DevOps budget.
Factors That Influence DevOps Spend
The complexity of DevOps varies significantly from one organization to another. Several key factors affect DevOps spending:
Compliance Standards: Operating in regulated industries requires additional resources to meet compliance standards. For example, meeting standards like PCI-DSS or HIPAA demands specialized roles focused on security and compliance, often referred to as SecOps. For organizations that need to comply with FedRAMP, the process is a multi-year endeavor that may involve third-party services, costing hundreds of thousands of dollars.
Microservices and Kubernetes: Modern application stacks often utilize microservices, which improve product quality but add complexity to DevOps efforts. Kubernetes, the dominant container orchestration tool, requires specialized expertise. Organizations with Kubernetes-heavy stacks should expect to pay an additional 30% for DevOps engineers.
Developer Self-Service: Some organizations enable developers to manage their cloud infrastructure, aiming for high agility while ensuring security and operational best practices. This requires fast response times to developers' requests, either by increasing automation or adding more DevOps engineers. More automation typically necessitates hiring experienced DevOps engineers, also known as infrastructure engineers, a role commonly found in large companies such as Uber and LinkedIn.
Infrastructure Size: The size of an organization's infrastructure directly influences the size of the DevOps team. The number of virtual machines or microservices is a good indicator of how many DevOps engineers are needed.
Approaches to Reducing DevOps Spend
Organizations have taken two main approaches to reduce DevOps costs:
External PaaS: Smaller companies often use Platform-as-a-Service (PaaS) solutions, such as Heroku, to minimize DevOps efforts. These platforms abstract away cloud services like S3 and Kubernetes, which may suit smaller companies but limit flexibility. As organizations grow, they typically migrate to public clouds and hire DevOps engineers to manage the infrastructure.
Build Internal Developer Platforms (IDP): Larger organizations with significant infrastructure invest in custom-built, in-house automation platforms for developer self-service. Companies like Uber, Netflix, and Spotify have taken this approach. However, this strategy requires significant investment and is most effective in large organizations with high revenues.
At SurekhaTech, we have developed a general-purpose automation platform that serves as a DevSecOps-as-a-Service solution for SMBs and an IDP for larger companies. Our team of engineers, who were pioneers in Infrastructure-as-a-Service at Azure and AWS, leveraged their expertise to create SurekhaTech.
Conclusion
DevOps is a specialized and costly skill set to hire. Despite automation advancements, much of DevOps work still requires engineers to manually integrate point solutions. People costs make up approximately 80% of the DevOps budget, while tools account for about 20%. The general rule is that an organization needs one DevOps engineer for every 50 virtual machines or 10 microservices. Additionally, tools typically represent around 10% of overall cloud infrastructure spending. Companies that must comply with strict standards like HIPAA or PCI-DSS should budget for extra security-focused engineers.
The future of DevOps is likely to shift from point solutions to comprehensive DevOps-as-a-Service platforms, which could eliminate much of the manual effort. Just as "as-a-service" platforms have revolutionized software infrastructure, data, and observability, the same is set to happen with DevOps Services. These platforms will become the industry standard, eliminating the need for in-house builds.
Write a comment ...