Even though there’s micro in the name this subject is pretty wide. I’ve been studying this lately myself. There are some great talks about micro-services on Youtube from various convention speakers.
I think the most important things to note about micro services in general is that:
- each service should be autonomous ( have it’s own means of completing its job without going to the outside world for it )
- your services should register with some form of load balancer/service discovery scheme, be it a client side or server side implementation.
- your services need to communicate ( many different ways of structuring messaging systems for them exist )
Cloud hosts like Google Cloud and AWS usually provide mechanisms for server side service discovery that can stream line those admin tasks for you.
I have been looking at gRPC specifically, here is the link to the Golang getting started: https://grpc.io/docs/quickstart/go.html