In 2020 I published a blog post called "What makes a good cloud architect?", where I tried to lay out some of the main qualities required to become a good cloud architect.
Four years later, I still believe most of the qualities are crucial, but I would like to focus on what I believe today is critical to succeed as a cloud architect.
Be able to see the bigger picture
A good cloud architect must be able to see the bigger picture.
Before digging into details, an architect must be able to understand what the business is trying to achieve (from a chatbot, e-commerce mobile app, a reporting system for business analytics, etc.)
Next, it is important to understand technological constraints (such as service cost, resiliency, data residency, service/quota limits, etc.)
A good architect will be able to translate business requirements, together with technology constraints, into architecture.
Being multi-lingual
An architect should be able to speak multiple languages – speak to business decision-makers understand their goals, and be able to translate it to technical teams (such as developers, DevOps, IT, engineers, etc.)
The business never comes with a requirement "We would like to expose an API to end-customers". They will probably say "We would like to provide customers valuable information about investments" or "Provide patients with insights about their health".
Being multi-disciplinary
There is always the debate between someone who is a specialist in a certain area (from being an expert in a specific cloud provider's eco-system or being an expert in specific technology such as Containers or Serverless) and someone who is a generalist (having broad knowledge about cloud technology from multiple cloud providers).
I am always in favor of being a generalist, having hands-on experience working with multiple services from multiple cloud providers, knowing the pros and cons of each service, making it easier to later decide on the technology and services to implement as part of an architecture.
Being able to understand modern technologies
The days of architectures based on VMs are almost gone.
A good cloud architect will be able to understand what an application is trying to achieve, and be able to embed modern technologies:
- Microservice architecture, to split a complex workload into small pieces, developed and owned by different teams.
- Containerization solutions, from managed Kubernetes services to simpler alternatives such as Amazon ECS, Azure Container Apps, or Google Cloud Run.
- Function-as-a-Service, been able to process specific tasks such as image processing, handling user registration, error handling, and much more.
Note: Although FaaS is considered vendor-opinionated, and there is no clear process to migrate between cloud providers, once decided on a specific CSP, a good architect should be able to find the pros for using FaaS as part of an application architecture.
- Event-driven architecture has many benefits in modern applications, from decoupling complex architecture, the ability for different components to operate independently, the ability to scale specific components (according to customers' demand) without impacting other components of the application, and more.
Microservices, Containers, or FaaS does not have to be the answer for every architecture, but a good cloud architect will be able to find the right tools to achieve the business goals, sometimes by combining different technologies.
We must remember that technology and architecture change and evolve. A good cloud architect should reassess past architecture decisions, to see if, over time, different architecture can provide better results (in terms of cost, security, resiliency, etc.)
Understanding cloud vs. on-prem
As much as I admire organizations that can design, build, and deploy production-scale applications in the public cloud, I admit the public cloud is not a solution for 100% of the use cases.
A good cloud architect will be able to understand the business goals, with technological constraints (such as cost, resiliency requirements, regulations, team knowledge, etc.), and be able to understand which workloads can be developed as cloud-native applications, and which workloads can remain, or even developed from scratch on-prem.
I do believe that to gain the full benefits of modern technologies (from elasticity, infinite scale, use of GenAI technology, etc.) an organization should select the public cloud, but for simple or stable workloads, an organization can find suitable solutions on-prem as well.
Thoughts of Experienced Architects
Make unbiased decisions
"A good architecture allows major decisions to be deferred (to a time when you have more information). A good architecture maximizes the number of decisions that are not made. A good architecture makes the choice of tools (database, frameworks, etc.) irrelevant."
Source: Allen Holub
Beware the Assumptions
"Unconscious decisions often come in the form of assumptions. Assumptions are risky because they lead to non-requirements, those requirements that exist but were not documented anywhere. Tacit assumptions and unconscious decisions both lead to missed expectations or surprises down the road."
Source: Gregor Hohpe
Cloud building blocks – putting things together
"A cloud architect is a system architect responsible for putting together all the building blocks of a system to make an operating application. This includes understanding networking, network protocols, server management, security, scaling, deployment pipelines, and secrets management. They must understand what it takes to keep systems operational."
Source: Lee Atchison
Being a generalist
"Good generalists need to cast a wider net to define the best-optimized technologies and configurations for the desired business solution. This means understanding the capabilities of all cloud services and the trade-offs of deploying a heterogeneous cloud solution."
Source: David Linthicum
The importance of cost considerations
"By considering cost implications early and continuously, systems can be designed to balance features, time-to-market, and efficiency. Development can focus on maintaining lean and efficient code. And operations can fine-tune resource usage and spending to maximize profitability."
Source: Dr. Werner Vogels
Summary
There are many more qualities of a good and successful cloud architect (from understanding cost decisions, cybersecurity threats and mitigations, designing for scalability, high availability, resiliency, and more), but in this blog post, I have tried to mention the qualities that in 2024 I believe are the most important ones.
Whether you just entered the role of a cloud architect, or if you are an experienced cloud architect, I recommend you keep learning, gain hands-on experience with cloud services and the latest technologies, and share your knowledge with your colleagues, for the benefit of the entire industry.
About the author
Eyal Estrin is a cloud and information security architect, and the author of the books Cloud Security Handbook and Security for Cloud Native Applications, with more than 20 years in the IT industry.
You can connect with him on social media (https://linktr.ee/eyalestrin).
Opinions are his own and not the views of his employer.
Top comments (4)
The suggestion here that the architect is not just a technocrat, but an individual that understands the multiple sides of a problem is very important.
Great article. Thanks for sharing. I do believe that most of them are also true for developers and architects in general and not only cloud
This is a great overview of the key qualities of a good cloud architect! I particularly appreciate the emphasis on understanding modern technologies and being able to see the bigger picture.
Thank you, and good list/article. I'll add one more. Tradeoffs and the art of compromise. Chances are, when designing systems, you'll have to choose this over not only due to cost, but time-to-market, skill-sets, etc.