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

3 points by sysk ↗ HN
I think I'm a pretty decent programmer and can write well designed libraries, applications, etc.

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 / message queue / proxy / caching system / asset packaging / etc. How to leverage OS level utilities like crond / upstart / etc. How to deploy / how to scale. And the worse is I don't know what I don't know. I know I'm not the only in this situation given the popularity of Heroku and co. which make a lot of those decisions for us.

What I would really love would be a book with case studies which would explain why a certain architectures/tools were chosen over others.

I'll start with a few resources I have found:

- http://highscalability.com/

- http://microservices.io/

- http://singlepageappbook.com/

1 comment

[ 4.3 ms ] story [ 11.6 ms ] thread
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.