Learning microservices can be intimidating for any developer, but it's especially true for junior developers or frontend engineers with little exposure to how things work on the backend.
The most confusing aspect is that there is really no 100% standard textbook definition about what a microservice truly is.
In this video I'll try to quickly go over the what, why, and how of microservices so you can get a general understanding of the core principles of microservices and why they are so hyped in the tech world.
Even if you don't have any interest in working on backend programming it's a good idea to at least be exposed to these concepts
Summary of video:
They are a software architecture style that involves breaking an application down into individual pieces that are able to be deployed and developed independently from each other.
So why are companies using these things? Obviously there are some benefits to justify moving from the monolithic app style that has worked for a long time
- Faster development time - Teams can make their own decisions and for the most part don't need to coordinate new deployments with other teams
- Easier to onboard new hires - New engineers don't need to learn the entire application before contributing, they can start off working on a single microservice
- Scaling- Microservices can be scaled independently depending on traffic demands. Don't have to scale the entire monolith if a single chokepoint is slowing down the app
- Reliability - Because microservices are separated from each other, if a bug is deployed it can be isolated and rolled back without taking down other services
That's not to say microservices are perfect, there are plenty of tradeoffs that come with using microservices and monoliths are generally recommended for small apps and small companies until they start encountering problems with scaling.
- Complexity - A poorly designed microservice architecture can end up being worse than the average monolith
- Communication between microservices - Entire new set of problems created by the fact that microservices are broken up, they need some standard way of communicating with each other
This was just a quick summary, I plan on doing more in depth tutorials on microservices so follow or subscribe if you are interested in that.
Until then here are some good resources if you are interested in learning more: