DevOps is a critical piece of any strategy to optimize resources and costs while also ensuring a quality user experience. Like software development, DevOps work divides naturally into architect and engineer roles.
What's the difference between DevOps architects and DevOps engineers? And how do you prepare for one role versus the other?
What does a DevOps architect do?
In both DevOps and software development, an architect creates the framework that an engineer executes and fills in. The architect role is more conceptual and higher level, and relates more to overall software and business goals. Architects must understand capabilities and constraints.
Meanwhile, the engineer role relates to execution and implementation. There are similarities in the duties and qualifications for both architect and engineer roles as applied to DevOps and software development.
Engineers and architects in the cloud
One critical area for both DevOps architects and engineers is familiarity and experience with cloud computing. Enterprises use hybrid cloud and multi-cloud technology for application deployment -- and cloud skills are scarce.
Development teams have long needed to understand cloud development and have experience in cloud techniques, such as microservices and functional computing. But only recently have enterprises realized that operations specialists and DevOps architects and engineers also must be familiar with the cloud.
Skills and experience
Beyond the cloud, the education and experience DevOps architects and engineers need vary less in terms of the topics and technologies than in the roles played.
DevOps architects must consider both enterprise requirements and IT capabilities, because they dictate how software components map to resources and how operations processes optimize resources while controlling costs and supporting business goals. Typically, architects define the development pipeline to ensure that software development flows match operational testing and deployment goals. Also, they normally select the tools associated with deployment and scaling -- both DevOps tools and container orchestration -- as appropriate. They're responsible for framing the hosting and deployment model for the applications under their control.
The educational requirements for DevOps architects are similar to those of enterprise architects or software architects; most companies prefer computer science training, but the educational focus should include courses in server management, networking and software operations more than programming. While cloud certification might not be mandatory for DevOps architects, it is helpful, and having certification for multiple public clouds is desirable.
In terms of experience, DevOps architects should have some experience as DevOps engineers and be familiar with the appropriate tools. Almost all enterprises want some public cloud experience, and many prefer that DevOps architects have a software development background, preferably including development team management. For larger and more complex IT organizations, experience in either software architecture or enterprise architecture is desirable.
According to enterprise CIOs, familiarity with containers and container orchestration -- meaning Docker and Kubernetes -- is becoming more important for DevOps architects. Familiarity with service mesh technology is also a growing requirement, given that more enterprises are using microservices, particularly in the cloud.
Most enterprises agree that DevOps engineers should have some computer science and software development training, as well as a background in server, data center and network operations. Virtual networking training is increasingly important, according to businesses that depend on DevOps, and perhaps the most difficult skill to obtain.
Certifications are increasingly important for DevOps engineers, and breadth of certification options is just as important as depth. Companies are searching for the best tools and techniques, and want people with a broad background who can adapt to the choices they make.
A DevOps engineer's job varies depending on the relationship between development and operations at a given company. In some companies, DevOps engineers work closely with development teams at all phases of development and therefore must have some understanding of programming as well as operations.
In others, the coordination between development and operations is more likely to occur between software architects and DevOps architects, in which case the DevOps engineer's activities will be more confined to realizing the operations framework established by the software architect's work.
The most obvious requirement for DevOps engineers is a good understanding of GitOps, development pipelines and CI/CD. The more complex the development and deployment cycle, the more likely it is that DevOps engineers will be equal with software developers to maintain versions, manage testing and transition from test to deployment.
Choosing between architects and engineers
Which specific DevOps roles does an organization need? First, it's increasingly unlikely that any enterprise could do without a DevOps team; only those with fairly simple or static application bases can afford not to have one. Companies that rely on third-party software and have minimal in-house development should have both DevOps architects and engineers, and so should companies with dynamic and complex application development projects.
If there is a DevOps team, it needs DevOps engineers. Less complex deployments -- particularly those with established operations and infrastructure tools and practices -- can build a team from DevOps engineers alone. As a rule of thumb, organizations need a DevOps architect if they have software or enterprise architects.
A final consideration is retention of DevOps specialists. While most companies realize they must pay competitive salaries, on par with software development equivalents, many neglect the question of career path. Without one, key personnel retention will be difficult, which can jeopardize the whole application and operations framework. Senior DevOps professionals usually make good IT managers, even up to the CIO level.