What is a cloud architect? What does a cloud architect do that’s different from a developer? What skills does someone need to move from a developer role to a cloud architect role—especially in the cloud-native world with microservices-based applications that run on platforms like Kubernetes? And how does architecting for cloud-native applications differ from other cloud architectures?
Becoming a cloud-native architect first involves, obviously, becoming a software architect. But, beyond that, a cloud architect generally has more responsibilities than just a standard software architect and requires more specialized knowledge and expertise. The modern cloud architect must understand how building and operating applications in the cloud differs from building and operating traditional applications. This isn’t a matter of understanding different programming concepts—this is about understanding the operational role of the modern application and the role that IT infrastructure plays in operating a modern digital application.
Then, beyond this basic DevOps knowledge and experience comes knowledge and experience with cloud technologies and how to optimize their use. How do you use cloud data storage? Which storage option is right for what purpose? What about cloud-based scalable databases, such as DynamoDB? Understanding and leveraging the dynamic resource capabilities of the cloud is essential for building cloud-optimized applications that are scalable and highly available without excessive and expensive reserve capacity.
This is the fundamental basis of architecting any basic cloud-based application, whether it’s a small one-off application or a large enterprise-grade monolith.
Architecting a cloud-native application, however, involves even more. It involves understanding the concepts of building highly modular applications that can scale the development and operational requirements of the application, not just the traffic utilization. A modern, cloud-native application can be successfully developed and operated by two engineers or two thousand engineers. These applications are highly adaptable and responsive to customer and business needs and requirements. They are constantly changing, constantly improving and constantly performing.
Cloud-Native Architect Skills
To build and launch cloud-native applications successfully, cloud-native architects must understand the following:
- How to build distributed, service-based applications, particularly those built with microservice-based architecture concepts
- How services can operate in a highly fluid and changing operating environment (services are constantly resized, adjusted, upgraded and reconfigured; traffic is dynamically adjusted and controlled and applications are highly monitored and managed in a highly distributed, non-centralized manner)
- The role of containers and container orchestration software, such as Kubernetes, in the construction and operation of a modern application
- How cloud services, such as data services, compute, queuing, networking, security, artificial intelligence and machine learning, can be leveraged to enhance the capabilities of the cloud-native application
- How network infrastructure and routing work, and how traffic routing between services and service nodes works in order to use cloud services effectively
- The fundamentals of cloud security and how to build safe and secure applications using built-in cloud capabilities
- Basic service development concepts, such as the 12-factor application, and basic service operational and security concepts, such as the principle of least privilege and the principle of shared responsibility
- How to expertly operate the cloud services for the vendors they support, including cloud-vendor-specific training and certifications
- How the cloud services being used actually operate, internally. This is critical for knowing the strengths, weaknesses and performance characteristics of the cloud services in various situations (can AWS Lambda be used in this particular use case? Is a distributed, cloud-centric database appropriate for this application, or is a traditional SQL database better suited? Does a cloud-based caching service satisfy my performance needs?)
Take Your Career to the Clouds
If you are a software architect who is considering advancing your career and becoming a cloud-native architect, the concepts we’ve covered in this article are some of the most important skills and expertise you’ll need to acquire. But the hard work can pay off, as architects fluent in building cloud-native applications effectively and efficiently are in high demand today, and play an essential role in all modern application development organizations.
This article, written by me, first appeared in Container Journal in Nov, 2022