Skip to Content

Arquitectures monolítiques o arquitectura de microserveis: avantatges i inconvenients

El desenvolupament de software va començar utilitzant una arquitectura monolítica que agrupava totes les seves funcions i serveis dins d’una base única i centralitzada de codi. Aquest tipus d’arquitectura ha anat quedant desfasada, sobretot al créixer els projectes en complexitat, nombre de desenvolupadors, usuaris i càrregues de treball. Per això en l’actualitat es tendeix a utilitzar una estructura basada en microserveis, que és escalable i facilita el treball col·laboratiu dels desenvolupadors.

La tendència actual en el desenvolupament de software adopta la cultura devops i l’ús de contenidors, fent necessari construir una aplicació de forma distribuïda, permetent que els diferents components puguin ser desplegats de forma independent.

A continuació parlarem de què és l’arquitectura monolítica i l’arquitectura basada en microserveis, veient quan cal implementar-los i com es migra a microserveis.

Arquitectura monolítica

Els primers programes informàtics utilitzaven una arquitectura monolítica, agrupant tot el que estigués relacionat amb el sistema dins del mateix projecte. Aquest tipus d’arquitectura es caracteritza per:

  • Els programes són fàcils de desenvolupar.
  • El desplegament i l’execució del software són molt senzills.
  • El cost de desenvolupament és baix en comparació amb altres arquitectures.

Els problemes d’aquest tipus d’arquitectura, com l’escalabilitat o la dificultat pels desenvolupadors (necessiten entendre tot el codi de l’aplicació) han fet que aquest tipus de desenvolupament de software deixi de ser utilitzat en molts projectes (encara que la seva senzillesa i baix cost fa que segueixi sent interessant per a certs projectes amb baixos requeriments).

Arquitectura basada en microserveis

Construir una aplicació de manera distributiva és el principal objectiu d’una arquitectura basada en microserveis. Cada component de l’aplicació ha de ser independent dels altres, permetent que siguin desplegats per si mateixos.

La comunicació o connexió entre els diferents mòduls de l’aplicació es realitzen a través d’API, el que facilita que cada un d’aquests mòduls pugui comptar amb el seu propi grup de desenvolupadors, eliminant la necessitat que cada desenvolupador hagi de comprendre tot el codi de l’aplicació o d’altres mòduls d’aquesta.

Cada un dels serveis que componen una arquitectura basada en microserveis es pot desenvolupar, implementar i escalar sense que afecti el funcionament de la resta de serveis. Aquesta autonomia és una de les característiques principals d’aquest tipus d’arquitectura.

Beneficis d’una arquitectura basada en microserveis

Treballar amb una arquitectura basada en microserveis a l’hora de desenvolupar una aplicació aporta una sèrie de beneficis com:

  • El desplegament independent de cada un dels components de l’aplicació.
  • Facilita les actualitzacions perquè no ha de parar tot el projecte, només el mòdul a actualitzar.
  • Permet desenvolupar utilitzant múltiples llenguatges de programació, el que aporta avantatges com velocitat, rendiment, reducció de costos, elecció de diferents eines de desenvolupament, etc.
  • Escalabilitat per mòduls, permetent incrementar les capacitats de còmput del mòdul que major càrrega de suport o major demanda tingui (en poder-se instal·lar en diferents servidors els mòduls de l’aplicació).
  • Permet realitzar una entrega contínua de software als clients d’una forma molt més àgil.
  • Redueix els errors de software i facilita els processos de proves i test.

Devops, Contenidors per microserveis

Treballar amb microserveis implica tenir major eficiència, flexibilitat i capacitat de creixement. No obstant això, l’arquitectura basada en microserveis és un repte important a l’hora de ser implementada. Les operacions són més complexes en tenir un gran nombre de mòduls i la creació i desenvolupament de la infraestructura consumeix més temps i recursos.

Per solucionar aquest problema, la cultura devops proporciona agilitat en el procés de desenvolupament, amb pràctiques de desenvolupament àgil i enfocament al producte.

L’aprovisionament ràpid de recursos es facilita amb l’ús de contenidors com Docker i orquestradors com Kubernetes o Swarm si s’han de gestionar un nombre elevat de contenidors. Per exemple, gràcies a l’ús de contenidors i orquestradors, els servidors web tradicionals s’han canviat per contenidors virtuals més petits i adaptables.

Quan implementar microserveis

Molts desenvolupadors es veuen temptats a utilitzar arquitectures monolítiques a causa de la seva senzillesa i baix cost. No obstant això, si el programari té èxit i creix, aquest tipus d’arquitectura no serà eficient, i crearà seriosos problemes d’implementació, actualització, manteniment i escalabilitat.

Arribat un punt de creixement l’arquitectura monolítica serà insuficient per respondre a les demandes de l’aplicació (de procés, nombre d’usuaris, càrrega, desenvolupadors, etc.).

Tenint en compte els dos següents enfocaments es pot considerar quan cal implementar microserveis:

  • Quan una aplicació monolítica té èxit i creix, necessitant ser escalada per necessitar més rendiment o espai. En aquests casos es pot optar per crear l’aplicació de microserveis des de zero o estendre els components modulars amb un millor disseny de l’aplicació monolítica.
  • Quan l‘enfocament inicial de l’aplicació tingui un millor desenvolupament amb una arquitectura de microserveis (si es preveu que l’aplicació tingui un gran volum de trànsit o usuaris, es disposa d’un equip de desenvolupadors, s’utilitzaran eines avançades, la modularitat és un aspecte important, es necessita una entrega contínua, i altres enfocaments en microserveis).

Com migrar a microserveis

Per realitzar una migració a microserveis, les empreses han de realitzar un estudi i anàlisi de parts de la lògica del seu negoci perquè puguin ser separades i identificar parts de codi que estiguin consumint molts recursos. Així es podrà determinar quina solució és la més adequada a les necessitats del projecte.

És habitual que es migrin a microserveis moltes de les funcions específiques d’un negoci i que habitualment es realitzaven amb una aplicació amb estructura monolítica, com a aplicació de control i gestió d’inventaris, o el programari de facturació.

Quan una empresa decideix migrar a microserveis el més habitual és que recorri a una empresa externa especialitzada i amb experiència en el sector, com Ilimit, per poder realitzar el procés de forma ràpida i efectiva, sense que afecti els diferents processos de negoci de l’empresa.

Depenent del tipus de projecte, serà millor optar per una arquitectura monolítica o una basada en microserveis. Quan els projectes impliquen una alta càrrega i demanda, la participació de diferents desenvolupadors i l’ús de software per una quantitat elevada d’usuaris, l’arquitectura de microserveis és la més adequada per tots els beneficis que aporta.

Comparteix aquesta publicació
Els nostres blogs
Integració contínua, entrega contínua i desplegament continu