I recently came across a job listing mentioning the need for experience in designing resilient, scalable, and secure systems on cloud platforms like AWS or Azure. I'm curious, does using a cloud platform automatically mean the software is resilient and scalable? If not, what are the best practices for achieving resilience and scalability in software design? Additionally, regarding security, if we utilize the built-in authentication and authorization features of these cloud platforms, is that sufficient? Lastly, I've noticed many job postings refer to 'performant' software. Is that just a buzzword, or is there a defined standard for what makes software performant?
1 Answer
Being on the cloud doesn't automatically make your software scalable or resilient. To achieve horizontal scalability, your software needs to be intentionally designed to run in multiple instances. If your application isn't built for that, or if its dependencies like databases can't handle increased demand, you'll run into bottlenecks. Resilience can tackle three key areas: what happens when your service breaks, when interconnected services fail, and how it responds to incorrect usage. Just being in the cloud doesn't cover these factors. You’re likely aiming for high availability, which cloud services can facilitate somewhat, but it's still on you to ensure your app is resilient.

This advice is super helpful! I'm definitely going to delve deeper into these topics. Appreciate it!