
Ask HN: What are some sources to learn about microservices architecture? - lostPoncho
I am a noob, learning things on my own. So lately I have been trying to understand how one should go about designing the architecture a non-trivial and fairly large web app and I came across the word micro-services. I tried googling, but that just made me more confused on what the term is. So some examples and explanation would be really helpful.
======
nOObieMonster
Mobile so just blurting this out...

typically you build apps as single 'monolithic' apps where all your code is in
one place.

or

You split your code by criteria... say 'function'. So maybe seperating UI
(front-end) from server/API (backend).

Reason is if you wanted to change part of your app its easier if there are
clear boundaries between each part rather than mangled solo entities as with
monolithic.

Microservices is an extreme version or seperation of concerns/function whereby
you create 'black boxes' that handle one thing (auth, orders, stats, images) -
each of those 'services' provides a mechanism for intra-communication...
typically via an API (REST). sounds great in theory and makes large apps
easier to distribute across tech stacks, geo and developer teams without
worrying about other services... but... ensuring all services are secure,
share information, self heal (recreate themselves when crashes occur), auto
find each other across the interweb (discover) etc etc is a massive P.I.T.A.

Search 'Netflix microservices' on YouTube... reality is never as nice and
clean as theory.

Also Orielly and other have books on M.S...

I would say build the monolith first (or simply seperate client from
server/API), then split if need... rinse and repeat. Its gonna be real hard
going if you're building a multi tenant app for most things and trying to
start with M.S

When you need to scale... iterate. if M.S makes sense, split out a function
and carry on.

Also check out Docker... sorta encourages M.S approach. Quickly create/destroy
and deploy new 'service containers' etc...

Github has some examples too

[https://github.com/cer/microservices-
examples](https://github.com/cer/microservices-examples) etc etc

Good luck

~~~
lostPoncho
That was a clear explanation. Thanks. :D

------
bincyber
I would recommend becoming familiar with the 12 factor app methodology
([https://12factor.net](https://12factor.net)) and reading the following
books:

[https://www.amazon.com/Building-Microservices-Designing-
Fine...](https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-
Systems/dp/1491950358)

[https://www.amazon.com/Production-Ready-Microservices-
Standa...](https://www.amazon.com/Production-Ready-Microservices-Standardized-
Engineering-Organization/dp/1491965975)

[https://www.amazon.com/Microservice-Architecture-Aligning-
Pr...](https://www.amazon.com/Microservice-Architecture-Aligning-Principles-
Practices/dp/1491956259)

------
chuhnk
Start here
[https://martinfowler.com/articles/microservices.html](https://martinfowler.com/articles/microservices.html)

Then look here for patterns
[http://microservices.io/patterns/microservices.html](http://microservices.io/patterns/microservices.html)

This guide is great [https://www.nginx.com/blog/introduction-to-
microservices/](https://www.nginx.com/blog/introduction-to-microservices/)

Finally plugging my own tooling [https://micro.mu/](https://micro.mu/)

Join [http://slack.micro.mu](http://slack.micro.mu) if you want to discuss
microservices

~~~
lostPoncho
micro.mu really looks interesting.

~~~
chuhnk
Thanks, its built based on personal experience and seems to resonate with
companies who are undergoing scaling pains.

------
guohuang
I would recommend this book, [http://toptalkedbooks.com/books/xyiEMg/RESTful-
Web-Services-...](http://toptalkedbooks.com/books/xyiEMg/RESTful-Web-Services-
Cookbook-Solutions-for-Improving-Scalability-and-Simplicity)

------
hawkweed
I would suggest starting with the short introductory articles written by Chris
Richardson:
[http://microservices.io/articles/index.html](http://microservices.io/articles/index.html)

A lot of useful articles can be found inside archives section of the
Microservices Weekly newsletter:
[http://microservicesweekly.com/archives](http://microservicesweekly.com/archives)

------
kelseyevans
Check out [https://www.datawire.io/guide](https://www.datawire.io/guide) it
breaks down how to think about microservices architectures in terms of
development, infrastructure, deployment, and traffic.

