

Ask HN: How to learn systems architecture? (e.g. microservices arch.) - sysk

I think I&#x27;m a pretty decent programmer and can write well designed libraries, applications, etc.<p>That being said, I really suck at system level architecture: how to cleanly separate a monolithic process into smaller processes that communicate with each other, how to chose the right database &#x2F; message queue &#x2F; proxy &#x2F; caching system &#x2F; asset packaging &#x2F; etc. How to leverage OS level utilities like crond &#x2F; upstart &#x2F; etc. How to deploy &#x2F; how to scale. And the worse is I don&#x27;t know what I don&#x27;t know. I know I&#x27;m not the only in this situation given the popularity of Heroku and co. which make a lot of those decisions for us.<p>What I would really love would be a book with case studies which would explain why a certain architectures&#x2F;tools were chosen over others.<p>I&#x27;ll start with a few resources I have found:<p>- http:&#x2F;&#x2F;highscalability.com&#x2F;<p>- http:&#x2F;&#x2F;microservices.io&#x2F;<p>- http:&#x2F;&#x2F;singlepageappbook.com&#x2F;
======
isuraed
Honestly the best way to learn is to be lucky enough to work at a company that
faces scalability issues. Second best is to try to speak with engineers who
work on this kind of stuff.

FWIW I work at such a company (Microsoft/Yammer). I've learned more in 2
months on the job than the previous year I spent reading stuff on the side.
Nothing like hearing the wisdom of seasoned engineers. I'm happy to chat if
you are interested.

