Designing cloud native applications are not same as when designing on-premises applications. Regardless of whichever cloud computing services like Microsoft Azure, Amazon Web Services, Google Cloud Computing etc we use the design principles for architecting cloud applications would remain the same. In this blog post we’re going to look into what those principles are.

I will cover a few of the design patterns in each blog post. Thus, I’ll be updating this blog once I publish new design patterns. For the rest like Caching, Security, etc I will cover it later as these concepts are the backbone of system design and not just for designing cloud applications. Following are the design principles:

  1. Scalability

  2. Disposable Resources Instead of Fixed Servers

  3. Automation

  4. Loose Coupling

  5. Services, Not Servers

  6. Databases

  7. Managing Increasing Volumes of Data

  8. Removing Single Points of Failure

  9. Optimize for Cost

  10. Caching

  11. Security.

If you would like to read in detail about the other design principles I’d recommend you Azure Cloud Design Patterns and Patterns for Scalable and Resilient Applications

Reference: AWS Whitepapers & Guides