what is microservices architecture

11 months ago 22
Nature

Microservices architecture is an approach to software development where a large application is built from independent services that communicate over well-defined APIs. It is a variant of the service-oriented architecture structural style. Some of the defining characteristics of microservices include:

  • Loosely coupled: Services in a microservice architecture are often processes that communicate over a network to fulfill a goal using technology-agnostic protocols such as HTTP. Services are organized around business capabilities and are not tightly coupled to each other.

  • Self-contained: A microservice is a self-contained piece of business functionality with clear interfaces, and may, through its own internal components, implement a layered architecture.

  • Fine-grained interfaces: Microservices adhere to principles such as fine-grained interfaces to independently deployable services and business-driven development.

  • Continuous delivery: A microservices-based architecture lends itself to a continuous delivery software development process. A change to a small part of the application only requires rebuilding and redeploying one or a small number of services.

  • Scalability: Each component service in a microservices architecture can be developed, deployed, operated, and scaled without affecting the functioning of other services. Services do not need to share any of their code or implementation with other services. Any communication between individual components happens via well-defined APIs.

Microservices architecture allows organizations to deliver large, complex applications rapidly, frequently, reliably, and sustainably. It is used for website migration, media content, transactions and invoices, and more. Microservices architecture is an evolution of service-oriented architecture (SOA) and is often confused with it. However, the main characteristic that can help differentiate between them is their scope. Microservices architecture offers faster software development and deployment compared to monolithic architecture.