{"id":17149,"date":"2022-01-24T16:14:00","date_gmt":"2022-01-24T14:14:00","guid":{"rendered":"https:\/\/festibity.com\/general\/monolit-o-microserveis-avantatges-inconvenients\/"},"modified":"2026-01-23T14:19:54","modified_gmt":"2026-01-23T12:19:54","slug":"monolit-o-microserveis-avantatges-inconvenients","status":"publish","type":"post","link":"https:\/\/festibity.com\/es\/noticies-partner\/monolit-o-microserveis-avantatges-inconvenients\/","title":{"rendered":"Mon\u00f2lit o microserveis? Avantatges\/inconvenients"},"content":{"rendered":"<p><em>Article escrit per <a href=\"https:\/\/www.linkedin.com\/in\/jmreche\/?originalSubdomain=es\">Jose Manuel Reche<\/a> d&#8217;<a href=\"https:\/\/www.ithinkupc.com\/ca\/blog\/monolit-o-microserveis-avantatges-i-inconvenients\">IThink UPC<\/a> <\/em><\/p>\n<p class=\"rtejustify\">Mon\u00f2lit o microserveis? \u00c9s un tema que ha generat i que continua generant molt de debat en l\u2019\u00e0mbit de l\u2019arquitectura d\u2019aplicacions. Mentre que les aplicacions monol\u00edtiques han predominat durant molt de temps, els microserveis han fet canviar aquesta tend\u00e8ncia, per\u00f2 aix\u00f2 no vol dir que els microserveis siguin la \u201cbala de plata\u201d per a l\u2019arquitectura de totes les aplicacions; en alguns casos poden representar una mala decisi\u00f3, sobretot per una \u201csobreenginyeria\u201d no justificada.<\/p>\n<p class=\"rtejustify\">Al capdavall, la resposta per decidir entre una arquitectura o l\u2019altra \u00e9s \u201cdep\u00e8n\u201d, tal com va citar <a href=\"https:\/\/ca.wikipedia.org\/wiki\/Kent_Beck\">Kent Beck<\/a>: \u201cAny decent answer to an interesting question begins, \u2018it depends\u2026\u2019\u201d. I el \u201cdep\u00e8n\u201d fa refer\u00e8ncia a molts factors que no tenen per qu\u00e8 estar relacionats nom\u00e9s amb la tecnologia.<\/p>\n<p class=\"rtejustify\">Optar entre un dels dos estils arquitect\u00f2nics ha de ser una decisi\u00f3 concisa basada en una s\u00e8rie de factors. Abans d\u2019adoptar una arquitectura, hem de pensar qu\u00e8 ens pot aportar respecte del que tenim actualment o si pot solucionar alguna cosa que no podem solucionar amb l\u2019arquitectura actual. Pot ser que una arquitectura que funcioni en una empresa no sigui l&#8217;adequada per a una altra, o fins i tot per a la mateixa empresa per\u00f2 en un projecte diferent. De vegades, alguns opten per implementar arquitectures amb tecnologies que s\u2019empren en les grans empreses tecnol\u00f2giques <a href=\"https:\/\/ca.wikipedia.org\/wiki\/GAFAM\">GAFAM<\/a> com a referent, i no per aix\u00f2 t\u00e9 per qu\u00e8 ser la soluci\u00f3 id\u00f2nia per a tots els casos.<\/p>\n<p class=\"rtejustify\"><strong>Mon\u00f2lit: avantatges i inconvenients<\/strong><\/p>\n<p class=\"rtecenter\"><strong><img decoding=\"async\" alt=\"\" src=\"\/sites\/default\/files\/images\/Mon%C3%B2lit.jpg\" \/><\/strong><\/p>\n<ul>\n<li class=\"rtejustify\"><strong>Avantatges<\/strong>\n<ul>\n<li><u>Facilitat de desplegament<\/u>: El desplegament d\u2019una aplicaci\u00f3 monol\u00edtica \u00e9s molt simple, no necessita orquestraci\u00f3 ni gesti\u00f3 amb altres components ni aplicacions.<\/li>\n<li><u>F\u00e0cil de sotmetre a proves i debug<\/u>: Tot el codi est\u00e0 en una mateixa aplicaci\u00f3, cosa que facilita les proves, el debugging i el monitoratge. <\/li>\n<li><u>Menys lat\u00e8ncia<\/u>: A causa del fet que un mon\u00f2lit (a difer\u00e8ncia dels microserveis) no necessita tanta comunicaci\u00f3\/depend\u00e8ncia amb altres components\/serveis, la lat\u00e8ncia \u00e9s menor.<\/li>\n<li><u>Agilitat<\/u>: En alguns casos, per raons de <em>time-to-market<\/em>, s\u2019opta per desenvolupar una aplicaci\u00f3 en mode <em>monolith first<\/em> i despr\u00e9s es van migrant els casos d\u2019\u00fas que es justifiquin cap a microserveis.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li class=\"rtejustify\"><strong>Inconvenients<\/strong>\n<ul>\n<li><u>Complexa de mantenir<\/u>: Si un mon\u00f2lit no est\u00e0 ben dissenyat en m\u00f2duls i suficientment desacoblat, segons va creixent la mida de l\u2019aplicaci\u00f3 pot arribar a representar un alt cost per la complexitat de manteniment del codi (deute t\u00e8cnic).<\/li>\n<li><u>Escalabilitat<\/u>: Per escalar un mon\u00f2lit s\u2019ha de desplegar tota l\u2019aplicaci\u00f3, amb la qual cosa requerim m\u00e9s infraestructura, fins i tot quan l\u2019escalabilitat nom\u00e9s sigui requerida en pocs casos d\u2019\u00fas. D\u2019altra banda, l\u2019aplicaci\u00f3 ha d\u2019estar dissenyada per ser desplegada en <em>clustering<\/em> (sense sessions adherents, sense processos concurrents que s\u2019encavalquin, etc.).<\/li>\n<li><u>Lligada a la tecnologia<\/u>: Quan es desenvolupa un mon\u00f2lit, s\u2019estableix una tecnologia\/<em>framework<\/em> i tot l\u2019equip queda lligat a aquesta tecnologia, cosa que fa impossible el fet de poder emprar solucions tecnol\u00f2giques diferents (<em>frameworks<\/em>, llibreries, etc.,) en funci\u00f3 de cada cas d\u2019\u00fas i els seus requisits.<\/li>\n<li><u>Punt \u00fanic de fallada<\/u>: En cas que falli alguna cosa en el mon\u00f2lit, podria arribar a afectar tota l\u2019aplicaci\u00f3, cosa que es coneix com a <em>single point of failure<\/em> (<a href=\"https:\/\/ca.wikipedia.org\/wiki\/Punt_%C3%BAnic_de_fallada\">SPOF<\/a>).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"rtejustify\"><strong>Microserveis: avantatges i inconvenients<\/strong><\/p>\n<p class=\"rtecenter\"><img decoding=\"async\" alt=\"\" src=\"\/sites\/default\/files\/images\/Microserveis.jpg\" \/><\/p>\n<ul>\n<li class=\"rtejustify\"><strong>Avantatges<\/strong>\n<ul>\n<li><u>Llibertat tecnol\u00f2gica<\/u>: A causa del fet que els microserveis s\u00f3n projectes independents fins i tot a nivell de base de dades, dona agilitat per decidir i implantar la tecnologia a emprar en funci\u00f3 dels requisits de negoci per a cada cas.<\/li>\n<li><u>Desacoblament<\/u>: Alt desacoblament, cada microservei gestiona el propi domini sense dependre d&#8217;altres.<\/li>\n<li><u>Escalabilitat<\/u>: A l\u2019hora d\u2019escalar, nom\u00e9s s\u2019escalen els microserveis que calgui escalar, a difer\u00e8ncia d\u2019un mon\u00f2lit, en qu\u00e8 \u00e9s necessari escalar tota l\u2019aplicaci\u00f3.<\/li>\n<li><u>Mantenibilitat<\/u>: Els projectes basats en microserveis s\u00f3n m\u00e9s f\u00e0cils de mantenir a causa del fet que, en comparaci\u00f3 amb un mon\u00f2lit, tenen menys codi i s\u00f3n m\u00e9s especialitzats i espec\u00edfics. Cada microservei t\u00e9 (ha de tenir) una \u00fanica responsabilitat.<\/li>\n<\/ul>\n<\/li>\n<li class=\"rtejustify\"><strong>Inconvenients<\/strong>\n<ul>\n<li><u>Complexitat<\/u>: Una arquitectura de microserveis pot arribar a ser molt complexa, a causa del fet que hi intervenen molts factors, ja que l\u2019arquitectura est\u00e0 distribu\u00efda en diferents projectes i infraestructures en qu\u00e8 s\u2019han de tenir en compte factors diferents, com per exemple la comunicaci\u00f3 entre els microserveis, seguretat, orquestraci\u00f3, coreografia, resili\u00e8ncia, lat\u00e8ncia, consist\u00e8ncia de dades, etc.<\/li>\n<li><u>Proves i tra\u00e7abilitat<\/u>: Com que \u00e9s un context distribu\u00eft, el cost d\u2019implantar i executar les proves \u00e9s m\u00e9s complicat, i el mateix passa amb la tra\u00e7abilitat, que requereix la implantaci\u00f3 d\u2019eines espec\u00edfiques.<\/li>\n<li><u>Consist\u00e8ncia eventual de dades<\/u>: Com que cada microservei ha de tenir \u2014o \u00e9s recomanable que tingui\u2014 la seva pr\u00f2pia base de dades per gestionar el domini, sorgeixen problemes com el cas de la \u201cconsist\u00e8ncia eventual de les dades\u201d que el projecte ha d\u2019assumir i gestionar.<\/li>\n<li><u>Infraestructura<\/u>: Els microserveis requereixen m\u00e9s infraestructura, sobretot en relaci\u00f3 amb la comunicaci\u00f3 entre microserveis (<em>East-West traffic<\/em>), i encara m\u00e9s si s\u2019opta per una soluci\u00f3 basada en esdeveniments (<em>event-driven microservice architecture<\/em>).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"rtejustify\">Nom\u00e9s hem fet esment d\u2019alguns avantatges i inconvenients per a cada cas, per\u00f2 la llista pot ser m\u00e9s extensa segons la mida del projecte i els requisits t\u00e8cnics i de negoci.<\/p>\n<p class=\"rtejustify\">En resum, hi ha molts factors que intervenen a l\u2019hora de decidir entre mon\u00f2lit o microserveis, per\u00f2 sobretot no s\u2019ha de creure que un mon\u00f2lit \u00e9s la manera \u201cantiga\u201d de desenvolupar aplicacions i que els microserveis s\u00f3n la \u201cnova\u201d. Com s\u2019ha descrit pr\u00e8viament, la resposta \u00e9s \u201cdep\u00e8n\u201d.<\/p>\n<p class=\"rtejustify\">Independentment de si comencem amb un mon\u00f2lit o un microservei, el m\u00e9s important \u00e9s que el codi estigui desacoblat i modularitzat i que apliqui una s\u00e8rie de patrons b\u00e0sics com els principis <a href=\"https:\/\/en.wikipedia.org\/wiki\/SOLID\">SOLID<\/a> i les seves proves respectives, de manera que puguem anar refactoritzant l\u2019aplicaci\u00f3 amb facilitat cap a altres arquitectures a m\u00e9s de facilitar-ne el manteniment.<\/p>\n<p class=\"rtejustify\">Si tens previst desenvolupar un nou projecte (<em>greenfield<\/em>) o refactoritzar un projecte llegat (<em>brownfield<\/em>) i no saps decidir-te entre mon\u00f2lit o microserveis, contacta amb nosaltres; et podem ajudar tant si es tracta de decisions t\u00e8cniques, assessorament, auditoria o la implantaci\u00f3 de la soluci\u00f3.<\/p>\n<p class=\"rtejustify\"><a href=\"https:\/\/www.ithinkupc.com\/ca\/blog\/monolit-o-microserveis-avantatges-i-inconvenients\">Consulta la web d&#8217;IThink UPC<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mon\u00f2lit o microserveis? Avantatges i inconvenients<\/p>\n","protected":false},"author":1,"featured_media":20089,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[35],"tags":[],"class_list":["post-17149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticies-partner"],"acf":[],"_links":{"self":[{"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/posts\/17149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/comments?post=17149"}],"version-history":[{"count":1,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/posts\/17149\/revisions"}],"predecessor-version":[{"id":18049,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/posts\/17149\/revisions\/18049"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/media\/20089"}],"wp:attachment":[{"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/media?parent=17149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/categories?post=17149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/festibity.com\/es\/wp-json\/wp\/v2\/tags?post=17149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}