How do you approach designing ANY system and selecting appropriate AWS services as a Solutions Architect? When you look at any complex application, it looks daunting, and you have no idea how to get started. And yes, I have been there too! In this newsletter edition, I will reveal the framework I have developed and used with my customers, as well as in interviews successfully. First, break down the application into logical layers as below
This is following First-Order Principal Thinking, where you break down a large problem into small, logical, solvable chunks. Instead of one BIG solution, think about Lego blocks. Once you have these logical layers, you can apply the non-functional requirements to them. Some of the common non-functional requirements are scalability, high availability, security, etc. Now let's take an actual example, and implement this. Let's take a retail website. The layers will look like below: Now that we have the layers, we need to select appropriate AWS services for them. There are many choices for the layers.
Select services based on functional requirements, non-functional requirements, and priority of well-architected pillars. In certain cases, factors like existing tech stack, knowledge of the existing team, licensing terms, time to market, etc., will come into play. One mistake that architects and interview candidates make is thinking that every design has the same non-functional requirements. For example, a retail website must be highly scalable because millions of customers will be accessing it at the same time. But think of a parking garage. A parking garage has limited spots available, so the database and even the consumption and processing layer don't require to be anywhere as scalable compared to a retail website. Every design decision involves a tradeoff. For example, if your application requires inspecting traffic before processing, you are implementing additional security, but the latency and cost will be higher. Let's assume the team is just starting its journey in AWS, and the operations team is comfortable with handling VMs. For that reason, they chose EC2s for the consumption and processing layer, ALBs for interfacing with the traffic, and Amazon Aurora MySQL for DB. For this discussion, we are focusing on the more critical layers, consumption processing storage, and keeping the ingestion layer aside. The architecture will look like the following: Now that we have AWS services for each of the layers, we can turn our attention to the non-functional requirements and implement them in each layer. Let's say we want to implement scalability and high availability to the layers:
So the resulting architecture will look like this: Once you have this architecture, you can keep implementing other non-functional features and keep on optimizing it. Now that we have covered how to create an AWS system design from the requirements, can you think about implementing this framework for other popular applications? If you have found this newsletter helpful, and want to support me 🙏: Checkout my bestselling courses on AWS, System Design, Kubernetes, DevOps, and more: Max discounted links AWS SA Bootcamp with Live Classes, Mock Interviews, Hands-On, Resume Improvement, and more (next cohort will launch in September): https://www.sabootcamp.com/ Keep learning and keep rocking 🚀, Raj |
Free Cloud Interview Guide to crush your next interview. Plus, real-world answers for cloud interviews, and system design from a top Solutions Architect at AWS.
Hello Reader, I just unveiled the SA Bootcamp. The bootcamp covers everything you need to become an SA in as little as 3 months and spoiler alert its not just technical. This Bootcamp is a one of its kind because its taught by a Top SA still working on world class projects. And good news - it already worked for last cohort's students who secured cloud jobs in top companies, including at AWS, and some of them didn't even have cloud experience 💰. This SA bootcamp offers… a proven blueprint for...
Hello Reader, We are LIVE! We just began the webinar on my YouTube channel. Join us now>> And you will get the blueprint to get a high paying AWS SA job. You will also learn about the common pitfalls, and mistakes to avoid if you are looking to become a Solutions Architect. We will also share previous bootcamper's success stories, details of the program, price, and a special offer just for the participants in the livestream. Please note: This is NOT an AWS certification bootcamp. This...
Hello Reader, Are you thinking about becoming an AWS SA and working at top companies? Data shows that Solution Architects earn between $200,000/year and $500,000+/year (screenshots below). The demand for AWS Solutions Architects has never been higher and will continue to rise because there are literally trillions of dollars worth of projects currently running on legacy technologies that need to be migrated to the cloud. If you’ve ever looked into becoming an SA on your own, you were likely...