I've been feeding myself knowledge around some core architecture concepts lately, and honestly, it's been a TOTAL game changer for how I view customer issues!
What I've been diving into:
- Understanding the differences between Monolithic and 3-Tier architectures
- Getting familiar with important concepts like Google's Well-Architected Framework
- Actually deploying n-tier architectures in my own environment to further cement what I learned
This has DRASTICALLY improved how I approach problems. It might feel irrelevant to gather architectural acumen when we're focused on day to day support, but it is SO worth it, I promise!
You'll discover an endless new world of concepts like:
- Scalability
- Redundancy
- High Availability (HPA, ASG, Pre-warming LBs <- It will all make sense the deeper you go!)
- Horizontal vs Vertical Scaling
- Relational and Non-relational DB use cases (Banks vs Gaming ==> totally different needs!)
AND Much More!
Seriously, understanding WHY customers build things certain ways makes troubleshooting 10x easier.
Here are some links to kick-start your journey:
- https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/n-tier
- https://cloud.google.com/architecture/framework
- https://cloud.google.com/architecture/application-development/three-tier-web-app
- https://cloud.google.com/architecture/migration-to-gcp-getting-started
Two absolute GEMS I've found:
- System Design Primer on GitHub:https://github.com/donnemartin/system-design-primer (this is GOLD for understanding how large scale systems work)
- Google's SRE Workbook:https://sre.google/workbook/table-of-contents/ (free book on how Google does reliability and it's $free.99)
Stay curious.
