{"id":335,"date":"2023-11-27T20:02:48","date_gmt":"2023-11-27T23:02:48","guid":{"rendered":"http:\/\/desarrollo-agil.com\/blog\/?p=335"},"modified":"2023-11-27T20:02:49","modified_gmt":"2023-11-27T23:02:49","slug":"no-necesitas-un-microservicio","status":"publish","type":"post","link":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/","title":{"rendered":"No necesit\u00e1s un microservicio"},"content":{"rendered":"\n<p>Las aplicaciones van creciendo, y el c\u00f3digo, como todo sistema organizado, tiene la tendencia natural a orientarse hacia el&nbsp;desorden. Esa tendencia al caos, en los sistemas se llama \u00abentrop\u00eda\u00bb. <\/p>\n\n\n\n<p>Para que las cosas no se nos vayan de las manos, se necesitan esfuerzos tendientes a contrarrestar esa tendencia natural al desorden. En el mundo del desarrollo puede ser en forma de refactor, rearquitectura, redise\u00f1o, o muchas otras t\u00e9cnicas. <\/p>\n\n\n\n<p>Una de las maneras habituales que tenemos para manejar problemas complejos es dividirlo en problemas m\u00e1s peque\u00f1os, darle soluci\u00f3n a cada uno de esos problemas, y luego integrar esas soluciones. Los microservicios surgieron al aplicar esta manera de pensar, convertir problemas complejos en soluciones m\u00e1s parciales, peque\u00f1as y manejables. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ventajas de los microservicios<\/h2>\n\n\n\n<ul>\n<li>Al partir el problema, puedo solucionar cada parte por separado<\/li>\n\n\n\n<li>Puedo probar cada parte por separado<\/li>\n\n\n\n<li>Puedo instalar cada parte por separado<\/li>\n\n\n\n<li>Puedo cambiar uno de los servicios sin cambiar el resto<\/li>\n\n\n\n<li>Puedo distribuir esos servicios en distintos equipos<\/li>\n\n\n\n<li>Puedo aplicar distintas tecnolog\u00edas en cada servicio<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Desventajas de los microservicios<\/h2>\n\n\n\n<ul>\n<li>Contexto de la aplicaci\u00f3n, web server, librer\u00edas, sistema operativo. Todo tiene que ser levantado nuevamente. Lo que redundar\u00e1 en mayor uso de recursos. <\/li>\n\n\n\n<li>Mayor dificultad para encontrar un error: si una petici\u00f3n se va repartiendo por distintos m\u00f3dulos, hay que ir buscando la petici\u00f3n en los distintos logs. Hay herramientas que se pueden usar para mitigar esto, como el uso y propagaci\u00f3n de ciertos headers a los logs, junto con generaci\u00f3n autom\u00e1tica de identificador un\u00edvoco de petici\u00f3n<\/li>\n\n\n\n<li>Mayor dificultad para manejar errores cuando suceden. Si tenemos 2 servicios \u00abencadenados\u00bb en el que uno persiste un dato, y en funci\u00f3n de ese dato, el segundo servicio persiste otro dato, si se produce un fallo en el segundo, hay que deshacer los cambios del primer servicio. Lo que en una arquitectura monol\u00edtica puede ser f\u00e1cilmente manejado con una transacci\u00f3n y un rollback, en microservicios tenemos que hacerlo a mano, y puede llegar a ser imposible volver al estado previo al fallo<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Entonces, Aguanten los monolitos?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"236\" height=\"266\" src=\"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg\" alt=\"\" class=\"wp-image-340\"\/><\/a><\/figure>\n\n\n\n<p>Por lo general conviene mantener simple las soluciones  (ver principio <a href=\"https:\/\/es.wikipedia.org\/wiki\/Principio_KISS\">KISS<\/a>).  En ese sentido, el monolito es la expresi\u00f3n m\u00e1s simple de la arquitectura. Llegado un momento, ya sea por complejidad, porque muchas personas se encuentren trabajando en simult\u00e1neo, o porque los recursos que consuma el m\u00f3dulo hacen que necesite un servidor gigante para correrlo, el monolito se tornar\u00e1 inmanejable, y necesitaremos partirlo en distintos servicios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1ndo partir un monolito en servicios?<\/h2>\n\n\n\n<p>Obviamente, no hay una f\u00f3rmula m\u00e1gica para calcular cada cu\u00e1nto hay que dividirlos, pero hay diferentes aspectos que podemos contemplar antes de tomar la decisi\u00f3n:<\/p>\n\n\n\n<ul>\n<li><strong>Independencia de negocio:<\/strong> \u00bfQu\u00e9 tan independientes son los conceptos de negocio entre los candidatos a partirse en distintos servicios?\u00bfHablan de las mismas entidades?<\/li>\n\n\n\n<li><strong>Independencia de desarrolladores:<\/strong> \u00bfNecesito que lo manejen distintos equipos?<\/li>\n\n\n\n<li><strong>Acoplamiento de c\u00f3digo:<\/strong> \u00bfQu\u00e9 tan independiente\/acoplado va a quedar el c\u00f3digo de ambos servicios? \u00bfCuando querramos agregar o modificar un campo en uno de los servicios, vamos a tener que modificar el otro servicio?<\/li>\n\n\n\n<li><strong>Diferencia de tr\u00e1fico:<\/strong> \u00bfQu\u00e9 tanto se parece la cantidad de tr\u00e1fico que reciben los servicios?\u00bfUno recibir\u00eda muchas peticiones, y el otro menos, entonces necesito escalarlos distinto?<\/li>\n\n\n\n<li><strong>Frecuencia de despliegue:<\/strong> \u00bfLos servicios van a manejar frecuencias de despliegue distintas? \u00bfUno lo voy a desplegar a cada rato, y el otro muy rara vez?<\/li>\n<\/ul>\n\n\n\n<p>El mejor criterio para tomar estas decisiones es la experiencia y sabidur\u00eda. Cosas que lamentablemente se obtienen con los errores. Si nos pasamos de rosca partiendo en servicios, puede que terminemos con un \u00abABM\u00bb distribuido en red. <\/p>\n\n\n\n<p>Aguanten los monolitos!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las aplicaciones van creciendo, y el c\u00f3digo, como todo sistema organizado, tiene la tendencia natural a orientarse hacia el&nbsp;desorden. Esa tendencia al caos, en los sistemas se llama \u00abentrop\u00eda\u00bb. Para que las cosas no se nos vayan de las manos, se necesitan esfuerzos tendientes a contrarrestar esa tendencia natural al desorden. En el mundo del\u2026 <span class=\"read-more\"><a href=\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/\">Leer m\u00e1s &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>No necesit\u00e1s un microservicio - Desarrollo \u00c1gil<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"No necesit\u00e1s un microservicio - Desarrollo \u00c1gil\" \/>\n<meta property=\"og:description\" content=\"Las aplicaciones van creciendo, y el c\u00f3digo, como todo sistema organizado, tiene la tendencia natural a orientarse hacia el&nbsp;desorden. Esa tendencia al caos, en los sistemas se llama \u00abentrop\u00eda\u00bb. Para que las cosas no se nos vayan de las manos, se necesitan esfuerzos tendientes a contrarrestar esa tendencia natural al desorden. En el mundo del\u2026 Leer m\u00e1s &raquo;\" \/>\n<meta property=\"og:url\" content=\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/\" \/>\n<meta property=\"og:site_name\" content=\"Desarrollo \u00c1gil\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-27T23:02:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-27T23:02:49+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@emilianotebes\" \/>\n<meta name=\"twitter:site\" content=\"@emilianotebes\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emiliano\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/52.201.184.187\/blog\/#website\",\"url\":\"http:\/\/52.201.184.187\/blog\/\",\"name\":\"Desarrollo \\u00c1gil\",\"description\":\"Sofware por y para humanos\",\"publisher\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/52.201.184.187\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#primaryimage\",\"inLanguage\":\"es\",\"url\":\"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg\",\"contentUrl\":\"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#webpage\",\"url\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/\",\"name\":\"No necesit\\u00e1s un microservicio - Desarrollo \\u00c1gil\",\"isPartOf\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#primaryimage\"},\"datePublished\":\"2023-11-27T23:02:48+00:00\",\"dateModified\":\"2023-11-27T23:02:49+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"http:\/\/desarrollo-agil.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"No necesit\\u00e1s un microservicio\"}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#webpage\"},\"author\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\"},\"headline\":\"No necesit\\u00e1s un microservicio\",\"datePublished\":\"2023-11-27T23:02:48+00:00\",\"dateModified\":\"2023-11-27T23:02:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#webpage\"},\"wordCount\":637,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\"},\"image\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg\",\"articleSection\":[\"experiencias\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\",\"name\":\"Emiliano\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/52.201.184.187\/blog\/#personlogo\",\"inLanguage\":\"es\",\"url\":\"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g\",\"caption\":\"Emiliano\"},\"logo\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#personlogo\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/emilianotebes\/\",\"https:\/\/twitter.com\/emilianotebes\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"No necesit\u00e1s un microservicio - Desarrollo \u00c1gil","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/","og_locale":"es_ES","og_type":"article","og_title":"No necesit\u00e1s un microservicio - Desarrollo \u00c1gil","og_description":"Las aplicaciones van creciendo, y el c\u00f3digo, como todo sistema organizado, tiene la tendencia natural a orientarse hacia el&nbsp;desorden. Esa tendencia al caos, en los sistemas se llama \u00abentrop\u00eda\u00bb. Para que las cosas no se nos vayan de las manos, se necesitan esfuerzos tendientes a contrarrestar esa tendencia natural al desorden. En el mundo del\u2026 Leer m\u00e1s &raquo;","og_url":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/","og_site_name":"Desarrollo \u00c1gil","article_published_time":"2023-11-27T23:02:48+00:00","article_modified_time":"2023-11-27T23:02:49+00:00","og_image":[{"url":"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg"}],"twitter_card":"summary_large_image","twitter_creator":"@emilianotebes","twitter_site":"@emilianotebes","twitter_misc":{"Escrito por":"Emiliano","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"http:\/\/52.201.184.187\/blog\/#website","url":"http:\/\/52.201.184.187\/blog\/","name":"Desarrollo \u00c1gil","description":"Sofware por y para humanos","publisher":{"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/52.201.184.187\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"ImageObject","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#primaryimage","inLanguage":"es","url":"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg","contentUrl":"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg"},{"@type":"WebPage","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#webpage","url":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/","name":"No necesit\u00e1s un microservicio - Desarrollo \u00c1gil","isPartOf":{"@id":"http:\/\/52.201.184.187\/blog\/#website"},"primaryImageOfPage":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#primaryimage"},"datePublished":"2023-11-27T23:02:48+00:00","dateModified":"2023-11-27T23:02:49+00:00","breadcrumb":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"http:\/\/desarrollo-agil.com\/blog\/"},{"@type":"ListItem","position":2,"name":"No necesit\u00e1s un microservicio"}]},{"@type":"Article","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#article","isPartOf":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#webpage"},"author":{"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851"},"headline":"No necesit\u00e1s un microservicio","datePublished":"2023-11-27T23:02:48+00:00","dateModified":"2023-11-27T23:02:49+00:00","mainEntityOfPage":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#webpage"},"wordCount":637,"commentCount":0,"publisher":{"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851"},"image":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#primaryimage"},"thumbnailUrl":"http:\/\/desarrollo-agil.com\/blog\/wp-content\/uploads\/2023\/11\/1978bc257aec87dc0e0838fa2f0cb595.jpg","articleSection":["experiencias"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/52.201.184.187\/blog\/experiencias\/no-necesitas-un-microservicio\/#respond"]}]},{"@type":["Person","Organization"],"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851","name":"Emiliano","image":{"@type":"ImageObject","@id":"http:\/\/52.201.184.187\/blog\/#personlogo","inLanguage":"es","url":"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g","contentUrl":"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g","caption":"Emiliano"},"logo":{"@id":"http:\/\/52.201.184.187\/blog\/#personlogo"},"sameAs":["https:\/\/www.linkedin.com\/in\/emilianotebes\/","https:\/\/twitter.com\/emilianotebes"]}]}},"_links":{"self":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts\/335"}],"collection":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/comments?post=335"}],"version-history":[{"count":5,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts\/335\/revisions"}],"predecessor-version":[{"id":341,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts\/335\/revisions\/341"}],"wp:attachment":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/media?parent=335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/categories?post=335"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/tags?post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}