As startups grow into ongoing businesses, their operational needs evolve.
This blog post will help business owners, hiring managers, and candidates clarify the differences between Cloud, DevOps, and Platform Engineers.
In a nutshell:
- Cloud Engineer, or CloudOps, is a set of skills that aren’t enough for a full-time job description.
- DevOps Engineers become a value-added full-time standalone role when four or more teams of five developers need to customize their developer environments.
- Platform Engineers take on the most complex, hybrid architectures with advanced developer self-service instead of ticket ops, automation, tests, logs, secrets, security, and compliance in multiple developer environments.
Although all three job roles share several overlapping skills and responsibilities, ideal software developer team sizes, possible application architectures for each role are sufficiently different. Each role depends on company needs, which tend to grow with the size of the software development team and the types of application architectures the company adapts.
What is a Cloud Engineer?
Startups and small companies with a core development team of around five software engineers usually can get away with just one of the senior developers who take on the duties of a CloudOps admin. With a fairly straightforward monolith application architecture, having that role done by one of the developers can be enough for all of the team’s cloud infrastructure needs. With sufficiently experienced software engineers, some companies don’t even realize cloud setup tasks merit a separate “role.”
A cloud Engineer is usually in charge of manually setting up and maintaining application infrastructure using commercially available tools, such as Amazon LightSail, via cloud consoles.
To summarize the scope of a Cloud Engineer’s responsibilities, these professionals are great for small teams and relatively straightforward, low-complexity application architectures. With more bigger, or more teams and increasingly complex architectures, a Cloud Engineer's ability to deliver what developers need diminishes.
What is a DevOps or a DevSecOps Engineer?
Once the company reaches 20-50 software engineers, keeping the developers productive often depends on having the right resources. This is where a dedicated DevOps Engineer (who is not a developer) comes in to make the development teams more effective.
Why this number? With 20 engineers, who are likely to be working as four teams with five software engineers each, it is not a good idea for each team’s Cloud Engineer to manually access the cloud panel to make changes. Companies of this size typically have SLAs to comply with, clients with their prompt service expectations, and other responsibilities revolving around reliability and performance.
This is where an internal DevOps or an external DevOps consultant comes in to set up scalable (often microservice) application architecture in the cloud for every project.
In addition to the responsibilities that are typical to Cloud Engineers, DevOps Engineers should:
Understand SDLC
DevOps Engineers need to be fluent in their organization’s Software Development Lifecycle practices and, if applicable, the Agile software development methodology as it’s practiced there.
Know Code Scripts
While not software developers, DevOps Engineers should know scripts to work with the applications that software engineers write.
Monitor and Optimizate
DevOps Engineers are expected to balance cost-effectiveness and high performance, selecting the most appropriate cloud providers. They also troubleshoot and resolve issues with those cloud services.
Provide Security and Compliance
In enterprise environments, security and compliance are a big part of what DevOps engineers oversee. In these security-first environments, a DevOps Engineer becomes a DevSecOps Engineer.
To summarize, a DevOps Engineer doesn’t simply manage a relatively static operations environment with public cloud infrastructure but is looking for a broader set of tools and services to help organizations scale.
What is a Platform Engineer?
As organizations scale and their software development staff grows over 50, a DevOps (or even a DevOps team) risks stalling development with too many tickets and fires to put out. Companies seeking to upgrade their technical infrastructure (web, database, server) called a platform. The person who designs and develops the platform is called a Platform Engineer.
Platform Engineers ensure that the applications created by the developers can be integrated seamlessly into the platform, and they use developer self-service and automation tools (instead of tickets) to achieve this goal.
Put differently, a Platform Engineer is a Software Developer whose domain is DevOps and who builds tools for developers. Platform Engineer builds internal developer portals, acting as a product owner.
A Platform Engineer must be fluent with the most complex application architectures, and provide a lot more insights about possible systems and asset options, and should be able to:
Implement Infrastructure as Code
As organization’s operations needs grow, Platform Engineers should strive to make new infrastructure as easily accessible for Software Engineers as possible.
Provision Infrastructure On-Demand
Platform Engineers work on simplifying Software Developers’ access to infrastructure, including servers, networking, storage, and cloud resources, with developer self-service in mind.
Implement Advanced Automation
Platform Engineers implement automation scripts and tooling “Golden Paths” to automate the vast majority of repeatable rote tasks that sap developer efficiency.
In essence then, a Platform Engineer is not only responsible for a flexible, scalable operations environment like a DevOps Engineer, but is key for improving developer efficiency metrics that tend to deteriorate in organizations with large software development teams.
Summary and Takeaways
Figuring out whether an organization needs a Cloud Engineer, a DevOps Engineer, or a Platform Engineer is often a balancing act that combines considerations of software engineering team sizes and application architectures. The rule of thumb is:
- 1-5 software engineers: a developer with a CloudOps role
- 6-50 software engineers: a dedicated DevOps hire
- 51+ software engineers: Platform Engineer
Most startups with small teams don’t need a dedicated DevOps Engineer, as one developer with a Cloud admin role will be enough.
On the other hand, when companies are trying to improve developer productivity, they may be overlooking the elephant in the room of providing their developers with the right resources in a reasonable amount of time.
The key to striking the right balance is a holistic approach. For those who are unsure, an outside look from someone who builds developer infrastructure can also help.