Introduction
As web development starts to get popular nowaday, more jobs and new job titles have started to get introduced into the market. DevOps and Architect are two job titles that were created in the recent years. As they both work at the infrastructure side and outside of the core application development team, some people may find them very similar. In this article, we will discuss how they are different from each other and their main responsibilities.
Real life example
Consider you and your team are building a complex modern car. DevOps Developers are the one that knows how to quickly assemble each part of the car together. Architect Developers are the one that design what features or functionalities will the car have. How much horsepower will the car have, and for that which engine or battery should the car pick, etc.
In summary, Architect Developers focus on the overview picture of the design while DevOps Developers focus on the technologies and efficiencies to deliver the design made by Architect Developers.
Responsibilities of DevOps Developers
In the modern web development cycle, DevOps Developers come into play in the starting and ending phase of a project. When a project starts, DevOps Developers are responsible for setting up test environments, so that developers from the core application development team can test their programs there. In addition, DevOps Developers need to build CICD pipelines (continuous integration and continuous delivery), so that whenever there are changes made to the program, it will be automatically packed and delivered to the test environment. At the ending phase of the project, when the project is ready to be shipped to production, DevOps Developers will come into the team again to help deploy the program to the production environment. It is DevOps Developers responsibilities to ensure that products can be tested and delivered quickly.
Skill Sets of DevOps Developers
Since DevOps Developers’ focuses are at packaging and delivering applications quickly, they will often need the following skills in order to get their job done.
Packaging Related: Docker, Node, Java (Depending on the tools the company uses), etc…
Delivering Related: Jenkins, GitLab CI, AWS CodePipeline, Travvis, Circle CI, etc…
Cloud Related: AWS, Microsoft Azure, Google Cloud Platform, etc…
The packaging skill sets will vary mainly depending on what technology the core application development team uses. Even though DevOps Developers do not need to know how to write programs in that specific language, they need to at least know how to run the application and how to package the program built with that language.
Delivering related skill sets are a bit more straightforward. Despite there being many CICD tools on the market, the ideas behind them are all the same. Basically DevOps Developers need to write programs (or config files rather) in the syntax that the chosen platform will read to trigger jobs to run automatically. The purpose of CICD tools are to reduce the workload and time spent on repetitive jobs to speed on the product development process.
Skill sets of the cloud are where DevOps Developers’ skills overlap with Architect Developers’. However, DevOps Developers need the skills mainly to be able to deliver to the test environment and production environment. Therefore, most of the time, DevOps Developers will only need to master one platform.
Responsibilities of Architect Developers
Architect Developers are responsible for designing the infrastructure of a system. In modern web development, Architect (also known as Cloud Architect) typically refers to the decision making of the system or technologies that will be used on the servers. It is Architect Developers’ responsibilities to design the system, so that it can meet project requirements and at the same time keep the overall cost down. Architect Developers typically join projects before DevOps Developers. they need to do research on which technology or cloud provider will the core development team use. After the decisions are made, Architect Developers need to do a price estimation on the system based on their design and discuss the result with the clients.
Skill Sets of Architect Developers
In order to make the right decision among all cloud providers, Architect Developers need to not only understand each cloud provider, but know the strength and weakness of each. Sometimes it may require Architect Developers to test out new tools if not already known.
Cloud Related: AWS, Microsoft Azure, Google Cloud Platform, etc…
Database Related: MySQL, PostgreSQL, Oracle, MongoDB, etc…
Design Principles: Microservice, Monolith, Serverless, Auto Scalable Applications
The skill sets of Architect Developers are very broad, but the important part is that Architect Developers understand the strength and weakness of each tool. They do not need to have a deep understanding of the technology as the core development team does, but they surely need to understand when to choose which and how the technologies may be integrated together.