Benefits of Micro services
Micro services architecture
- The micro service architecture style is an approach to developing one application as suite of small service.
- Each runs in its own process and communicates with light weight mechanisms, often on HTTP resource API.
- Micro service do have distinct advantage:
- Micro service architecture are typically better organized
- Each micro service features a really specific job, and it isn’t concerned with the roles of other components.
- Decoupled services are also easier to vary , update and re-configure to serve the requirements of varied type apps
- They also leave fast, independent delivery of individual parts within a much bigger , integrated system.
- Under the right circumstances, micro services can also have performance advantage relying on how they’re organized.
- It’s possible to isolate hot services and scale them independently of the rest of the app.
- Cloud native applications are built as a system of micro services. the overall idea of this style of architecture is to implement a system of multiple, relatively small applications. These are called micro services.
- They work together to supply the general functionality of your system.Each micro services realizes;
- Exactly one functionality
- Have a well defined boundary and API( Application programming interface-used for communication).
- Gets developed and operated by a comparatively small team
Benefits of micro services
- During a micro services architecture, services are fine-grained and thus the protocols are lightweight.
- Services are organized around business capabilities.
- Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deploy able.
- This makes the appliance easier to understand , develop, test, and become more resilient to architecture erosion tons easier to implement and understand a smaller application that provides one functionality, instead of building an out sized application that does everything.
- That accelerates development and makes it tons easier to adopt the service to changed or new requirements.
- Since micro services are implemented and deployed independently of each other, i.e. they run within independent processes, they’re going to be monitored and scaled independently.
- You would wish to stress tons less about unexpected side effects of a seemingly chickenfeed , and you will specialize in the event task at hand.
- It also allows you to scale more efficiently.
- And albeit you merely use a little a neighborhood of the monolith, you still need to acquire additional resources for the other , unused parts but during a cloud environment, you purchase the usage of hardware resources.
Challenges Using Micro Services
- There is saying: There’s no such thing as a Free Lunch.Micro services remove some complexity from the services themselves and provide better scalability, but you’re now building a distributed system.
- That adds a lot more complexity on the system level.
- To make sure that dependent services find each other and communicate efficiently its a challenging task when number of micro-services are many.
- We also need to handle slow or unavailable services so that they don’t effect the complete system.
- The distributed nature of our system also makes it a lot harder to monitor and manage our system in production.
- Instead of a few monoliths, we now need to monitor a system of micro services and for each service , there might be several instances that run in parallel.