Microservices



Microservices

This week the article to discuss is "Microservices" which was witted by  James Lewis and Martin Fowler.

So, first of all, the term Microservice Architecture describes a way of designing software in order that applications have functions, as suites of independently small deployable services. As each one of those is running its own processes but should communicate with the others is usual the usage of an HTTP resource API.

An interesting thing about Microservices is that this services are built around business capabilities and are independently deployable by automated deployment machinery.

Something mentioned in the article that actually I actually liked is that is a bare minimum of centralized management of the services, so they could be written in different programming languages and use different data storage technologies, allowing more flexibility, of course the fact that you can do this, does not mean that you should but it is possible if needed.

Complementing the idea, the authors explain what is a microservice style and how it works comparing with the monolithic style, basically a monolithic application is built as a single unit. This applications are usually built in three parts: a client-side user interface (like HTML pages), a database, and a server-side application. 

The principal problem whit this is that any changes to the system involve the building and deploying of a new version in the server-side. In other words, a “monolithic” application describes a single-tired app, in which the user interface and data access code are combined into a single program from a unique use platform.

Some of the shared characteristics of a Microservice Architecture, in the majority of the cases.

  • -          Componentization via Services
  • -          Organized around Business Capabilities
  • -          Products not Projects
  • -          Smart endpoints and dumb pipes
  • -          Decentralized Governance
  • -          Decentralized Data Management
  • -          Infrastructure Automation
  • -          Design for failure
  • -          Evolutionary Design

Comentarios

Entradas populares de este blog

Is Design Dead?

Software Architecture

Understanding the SOLID Principles