What are Microservices?
Everyone's talking about Microservices, but what exactly are they? Are they just a set of functions hosted over a network or something more?
Microservices in simple terms are like the regular functions from our programming language but just a more extensive set of responsibilities and served via a network.
So, you may have a microservice that handles everything related to Payments, a service that handles Notifications, and a service that deals with analytics. We see each service having focussed responsibility.
Microservices are no silver bullet, and they would not magically solve all the problems you have. It has its own fair share of drawbacks.
Monolith
Almost all products start monolith where every feature is put into a single codebase which is deployed as one artifact across all the servers. For example, the code handling payments, notifications, and analytics are all part of the same codebase deployed within the same binary.
Monoliths are always simple to build, develop, test, and scale. Given their simplicity, they are the go-to option for anyone starting up. With a lean team working on monolith would ensure very quick feature delivery.
Disadvantages of Monolith
Monolith to Microservices
Migrating from monolith to microservices is a slow process and to start you would club a related set of functions and fork out a service out of it. The process would be repeated for other sets of functions, eventually breaking the entire monolith.
Characteristics of Microservices
Advantages of Microservices
Anti-patterns
Here's the video of my explaining this in-depth ?? do check it out
领英推荐
Everyone is doing Microservices, but what are they after all? From a distance, it looks like a function put over the network. Is it really just that? There are so many things to explore about microservices, so let me introduce you to this world today.
In this video, we talk about what are microservices, understand how it starts with a simple monolith and eventually evolve into microservices, look at their key characteristics, understand their advantages, and conclude with some anti-patterns that we all should keep in mind to ensure we do not do it wrong.
Outline:
You can also
Thank you so much for reading ?? If you found this helpful, do spread the word about it on social media; it would mean the world to me.
Yours truly,
Arpit
Until next time, stay awesome :)
I teach a course on System Design where you'll learn how to intuitively design scalable systems. The course will help you
I have compressed my ~10 years of work experience into this course, and aim to accelerate your engineering growth 100x. To date, the course is trusted by 600+ engineers from 10 different countries and here you can find what they say about the course.
Together, we will build some of the most amazing systems and dissect them to understand the intricate details. You can find the week-by-week curriculum and topics, benefits, testimonials, and other information here https://arpitbhayani.me/masterclass.
Hi Arpit Bhayani nice video :) What do You think about microservice problem domain, what is Your methodology and techniques when defining/framing problem domain for concrete microservice ? (I refer to project business and functional requirements) Best, Igor.
Software Engineer at Nagarro
2 年Haven't you already covered microservices in a previous newsletter/essay of yours?
VP of Operations at HotWax Systems | Apache OFBiz Committer, PMC Member | ASF(Apache Software Foundation) Member | Empowering College Students, Freshers & Early IT Professionals ??
2 年Good one, Arpit!!
iOS Developer at NTT Data | Ex - Bosch,OpenText | NIE'19
2 年Nice article!
More about me: arpitbhayani.me Newsletter: arpitbhayani.me/newsletter Subscribe #AsliEngineering for such in-depth engineering concepts: https://www.youtube.com/c/ArpitBhayani Intermediate-Level System Design course: arpitbhayani.me/masterclass Beginner-friendly System Design course: https://www.school-of-programming.com Free course on microservices: https://courses.arpitbhayani.me/designing-microservices All GtiHub Outages: https://courses.arpitbhayani.me/github-outage-dissections/