Monòlit o microserveis?
Una mirada pràctica a l’arquitectura, l’escalabilitat i l’autonomia dels equips.

L’evolució de l’arquitectura: el monòlit com a “opció assenyada per defecte”
En l’enginyeria del software moderna, el debat sobre com estructurar les aplicacions sovint es planteja com una elecció entre l’antic monòlit i el nou enfocament basat en microserveis. Un monòlit és una única unitat de desplegament en què totes les funcionalitats del sistema s’han de publicar al mateix temps. Tot i que les arquitectures distribuïdes són cada vegada més populars, molts experts consideren que el monòlit hauria de ser l’“opció assenyada per defecte” per a la majoria d’iniciatives inicials.
El principal avantatge d’aquest enfocament és la seva simplicitat: facilita molt el flux de treball dels desenvolupadors, la monitorització està centralitzada i les proves end-to-end són relativament senzilles. En un monòlit, el codi es comunica mitjançant crides a mètodes dins del mateix procés. Això evita els problemes de latència i serialització que introdueixen les xarxes en els sistemes distribuïts.
El problema de la gran complexitat: de l’eficiència monolítica a la llibertat dels microserveis
El monòlit sovint s’ha considerat l’“opció assenyada per defecte” en el disseny de software perquè és fàcil de desplegar i funciona bé al principi. En sistemes on la latència és crítica, el monòlit és superior, ja que tota la comunicació té lloc dins d’un únic procés, evitant els costos de serialització i trànsit de xarxa propis dels sistemes distribuïts. A més, la gestió de les dades és més senzilla perquè pot aprofitar transaccions ACID en una sola base de dades per mantenir la consistència.
Però, a mesura que un sistema creix i es torna més complex, aquests avantatges inicials es poden convertir en grans problemes. Quan moltes persones intenten modificar la mateixa base de codi al mateix temps, acaben interferint entre elles. Això es coneix com a “delivery contention”. En aquest punt, fins i tot un petit canvi en un sistema d’un milió de línies esdevé molt arriscat i obliga a redeplegar tota l’aplicació, cosa que frena notablement el cicle d’innovació.
És aquí on els microserveis mostren el seu valor en sistemes complexos. Els microserveis es dissenyen al voltant de dominis de negoci, fet que permet desplegar-los de manera independent. Això vol dir que un equip pot lliurar una millora sense haver de coordinar-se amb la resta del sistema ni posar-lo en risc. Aquesta arquitectura fragmentada funciona com un sistema de mampares: si un servei cau, el problema queda aïllat i la resta de la plataforma continua funcionant. Això fa que el sistema sigui més resilient del que acostuma a permetre un monòlit per si sol.
La granularitat en l’escalabilitat també és una manera més eficaç de gestionar la complexitat creixent. Les empreses poden ampliar només els serveis que reben més trànsit, reduint costos i fent un ús més eficient dels recursos al núvol. Els stream-aligned teams ajuden l’organització a créixer perquè alineen l’arquitectura amb l’estructura de l’empresa. D’aquesta manera, la burocràcia tècnica no frena la productivitat.
El “preu dels microserveis” i el problema dels límits
Quan es fa el pas cap als microserveis, s’ha d’assumir el que sovint s’anomena el “Microservice Premium”. És a dir, la càrrega addicional que comporta gestionar un conjunt de serveis, i que pot alentir els equips si el sistema encara no és prou gran per justificar-ho. A més, aquest model només funciona bé si es poden definir límits estables entre serveis (bounded contexts). Reorganitzar funcionalitats entre serveis és molt més difícil que fer-ho dins d’un monòlit. Si aquests límits no són clars, apareix un “monòlit distribuït”, que acumula tots els inconvenients de la distribució sense obtenir-ne els avantatges. Per a moltes empreses, en entorns de negoci canviants, aquesta rigidesa inicial pot perjudicar l’evolució del producte.
El cas de negoci: els microserveis com a via de creixement
Malgrat aquests inconvenients, els microserveis són una opció ideal per a empreses que necessiten créixer i adaptar-se ràpidament a llarg termini. L’arquitectura de microserveis no és només una solució tècnica; és també una manera d’organitzar el negoci per afavorir la innovació contínua.
El benefici empresarial més important dels microserveis és que poden desplegar-se de manera independent. Això permet a un equip posar en producció canvis i noves funcionalitats sense haver d’esperar altres equips, reduint així el “delivery contention”. En mercats molt competitius, la capacitat de reduir el time-to-market és un avantatge molt valuós.
Aquesta arquitectura també permet escalar de forma molt precisa. Una empresa pot reduir costos de cloud computing ampliant només les parts del sistema que reben més càrrega, en lloc de dimensionar tota la infraestructura de manera uniforme, com acostuma a passar en un monòlit. També facilita la diversitat tecnològica, és a dir, la possibilitat d’utilitzar la tecnologia més adequada per a cada necessitat. Això ajuda a atraure talent i facilita l’adaptació a noves tecnologies en el futur.
Alineació i resiliència a les organitzacions
Un dels grans avantatges dels microserveis és que encaixen bé amb la manera com s’organitzen les empreses. Els microserveis faciliten la creació d’equips multifuncionals i alineats amb el flux de valor (cross-functional, stream-aligned teams) que assumeixen la responsabilitat completa d’una part del negoci, seguint la lògica de la Llei de Conway. Això ajuda a trencar silos organitzatius i fomenta una cultura de responsabilitat que millora la productivitat.
L’aïllament de fallades (bulkhead pattern) aporta robustesa al sistema, de manera que un error en un component no crític —com ara el servei de recomanacions— no fa caure tota la plataforma. Aquesta degradació suau és el que permet a grans organitzacions com Philips o Netflix mantenir-se operatives mentre fan milers de desplegaments cada dia.
Conclusió: la millor decisió estratègica
En resum, el monòlit és la millor opció per a sistemes tancats o productes en fases inicials, perquè és la solució més eficient tècnicament i més simple. Però els microserveis són una inversió de futur per a una empresa moderna.
En certa manera, adoptar microserveis és com “comprar opcions”. És apostar per una arquitectura que creixerà amb l’empresa, permetrà l’evolució tècnica contínua i protegirà el negoci dels problemes associats a estructures massives i rígides. Els microserveis no són només una manera de construir software; són una via perquè qualsevol organització que vulgui ser gran i alhora ràpida innovant pugui mantenir-se competitiva i prosperar en l’era digital.