Microservices Explained in 5 MINUTES | What is a microservice architecture?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what are microservices and why are they so popular let's Discover it in the next five minutes our microservice is an application responsible for a subdomain within the context of a larger system imagine developing a software system for a large online retail business we could have a microservice focus on the management of the user accounts while other components would cover other areas of the business like product catalogs order Etc the main goal of a microservice architecture is to be able to develop and operate independently the different services within the system as a result an organization can employ multiple teams and assign each team to a specific domain or feature this way rather than implementing features sequentially we can parallelize the work and reach out Targets in a shorter amount of time by deploying Services independently we can optimize utilizations of physical or virtual resources we can deploy a larger number of replicas of those services that need to handle a lot of requests or computational load another characteristic of macro service architecture is their elasticity our Software System could experience spark of traffic because of a sale or a particular event to which we can respond by adjusting swiftly the number of replicas serving requests microservices are often compared to monoliths in a monolith the entire system is shipped as a single application all domains are implemented in one code base and it might be difficult to introduce new teams and keep code ownerships and responsibilities well defined this can lead to disagreements and a lot of time wasted in meetings on the operational side monoliths are less portable because of their size that makes the system less elastic it's much more expensive and difficult to deal with sparkling traffic because to increase capacity we need to deploy more replicas of the heavy application we built with this in mind we might think that our microservice architecture is always superior to a monolithic one but that's not true because microservices have their own set of complexities that sometimes are even harder to solve than those you face in a monolith the main challenges are the domain integration networking and observability in an ideal setup a microservice is capable of handling requests for a particular domain or feature in isolation however things get more complicated when a particular business function spans across multiple domains in this scenario microservices need to interact over the network through apis RPC or messaging this increases this design and implementation complexity especially when dealing with failures thus we are forced to adopt several patterns to ensure system resiliency a possible approach is to use orchestration in this case a service implements a workflow to coordinate interactions with other microservices this approach is very intuitive but it gets complicated when we want to ensure consistencies across the different domains an operation might fail in the middle of a workflow in this case we need to use patents to retry the operation resume the workflow or in the worst case to compensate for the failure another approach is to use choreography in this case we remove the central point of control and we let surfaces react to events or signals this approach favors greater independence of which microservice however it's more difficult to visualize the flow of data and understand the effect of failures in the system this is because there isn't an explicit relationship between the different components from an operational side macro services are even more complex it's much more easy to deploy a single or possible two instances of one monolith vis-a-vis hundreds or thousands of services this is in what the popularity of microservices increase in the last year despite the challenges it's because of the rise of solutions and technologies that reduce the barriers to entry kubernetes containers and the entire Cloud native landscape Have Been instrumental to the process since they democratized the management of isolated workloads and solved issues like persistence networking cicd and many more as you can see the full cncf landscape is incredibly vast in conclusion one should use microservices in my opinion microservices are fit for those scenarios where you need to build a large system possibly with the help of multiple development teams the level of expert is required to build a microservices system is way higher than the one you need to build a monolithic application you need to make sure that you have the right resources in terms of skill set and finance microservices are very expensive on the other end like an expensive car they are able to deliver Superior performance and scalability if you enjoyed the content like And subscribe you can leave questions in the comment section below it motivates me a lot thank you and see you next time [Music]
Info
Channel: Marco Lenzo
Views: 5,372
Rating: undefined out of 5
Keywords: microservices, microservices explained, microservices architecture, api gateway, orchestration, choreography
Id: gBOUfyCl6XY
Channel Id: undefined
Length: 5min 55sec (355 seconds)
Published: Mon Feb 13 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.