{"id":31761,"date":"2019-10-31T21:42:55","date_gmt":"2019-10-31T18:42:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\/"},"modified":"2019-10-31T21:42:55","modified_gmt":"2019-10-31T18:42:55","slug":"mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","title":{"rendered":"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>19 de septiembre en Mosc\u00fa <noindex><a rel=\"nofollow\" href=\"https:\/\/www.meetup.com\/HighLoad-User-Group\/events\/254238096\/\">se llev\u00f3 a cabo<\/a><\/noindex> el primer mitap tem\u00e1tico HUG (Highload++ User Group), que estuvo dedicado a los microservicios. En \u00e9l se present\u00f3 la ponencia \u00abOperaci\u00f3n de microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\u00bb, en la que compartimos la amplia experiencia de la empresa \u00abFlant\u00bb en la operaci\u00f3n de proyectos con arquitectura de microservicios. En primer lugar, ser\u00e1 \u00fatil para todos los desarrolladores que est\u00e9n considerando aplicar este enfoque en su proyecto actual o futuro.<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/5d84197eef093da02b3db2156841e644.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPresentamos <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=g9cgppj0gKQ\"><b>el video de la presentaci\u00f3n<\/b><\/a><\/noindex> (50 minutos, mucho m\u00e1s informativo que el art\u00edculo), as\u00ed como un resumen principal en formato de texto.<\/p>\n<p><i>NB: El video y la presentaci\u00f3n tambi\u00e9n est\u00e1n disponibles al final de esta publicaci\u00f3n.<\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Introducci\u00f3n<\/h2>\n<p>\nNormalmente, una buena historia tiene un principio, un desarrollo y un final. Esta presentaci\u00f3n se asemeja m\u00e1s a un principio, y adem\u00e1s tr\u00e1gico. Tambi\u00e9n es importante se\u00f1alar que presenta una perspectiva de los microservicios desde el lado de <i>la operaci\u00f3n<\/i>.<\/p>\n<p>Comenzar\u00e9 con este gr\u00e1fico, cuyo autor (en 2015) <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/MicroservicePremium.html\">fue<\/a><\/noindex> Martin Fowler:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/f0cc0e00f32f5ea0a736e09fd20eaa85.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn \u00e9l se puede ver c\u00f3mo, en el caso de una aplicaci\u00f3n monol\u00edtica, al alcanzar cierto tama\u00f1o, comienza a disminuir la productividad. Los microservicios se caracterizan por tener una productividad inicial m\u00e1s baja, pero a medida que aumenta la complejidad, la degradaci\u00f3n en la eficiencia no es tan evidente.<\/p>\n<p>Complementar\u00e9 este gr\u00e1fico para el caso de uso de Kubernetes:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/1b83f03639324c610a84bfd434317f48.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00bfPor qu\u00e9 una aplicaci\u00f3n con microservicios ha mejorado? Porque esta arquitectura plantea serias exigencias a la arquitectura, que a su vez se resuelven perfectamente con las capacidades de Kubernetes. Por otro lado, parte de esta funcionalidad tambi\u00e9n ser\u00e1 \u00fatil para el monolito, especialmente porque el monolito t\u00edpico de hoy en d\u00eda no es del todo un monolito (los detalles se abordar\u00e1n m\u00e1s adelante en la presentaci\u00f3n).<\/p>\n<p>Como se puede ver, el gr\u00e1fico final (cuando tanto las aplicaciones monol\u00edticas como las microservicios se utilizan en una infraestructura con Kubernetes) no difiere mucho del original. A continuaci\u00f3n, hablaremos sobre las aplicaciones operadas utilizando Kubernetes.<\/p>\n<h2>Utilidad y maleficio de los microservicios<\/h2>\n<p>\nY aqu\u00ed est\u00e1 la idea principal:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/c555e5fbdf09e4bb2be17fad23b8ff6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00bfQu\u00e9 es una <b>arquitectura de microservicios<\/b> normal? Debe brindarte un beneficio real, aumentando la eficiencia del trabajo. Si regresamos al gr\u00e1fico, aqu\u00ed est\u00e1:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/c27a7af10812580f0543888256a0e698.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi la llamamos <b>\u00fatil<\/b>, entonces en el otro lado del gr\u00e1fico habr\u00e1 <b>perjudicial<\/b> microservicios (interfiriendo con el trabajo):<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/27a7298bd8f877b2bc69d19378a542e2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVolviendo a la \"idea principal\": \u00bfvale la pena confiar en mi experiencia? Desde principios de este a\u00f1o he visto <b>85 proyectos<\/b>. No todos eran microservicios (aproximadamente un tercio a la mitad ten\u00eda esa arquitectura), pero de todas formas es un n\u00famero considerable. A nosotros (la empresa 'Flant') como outsourcers nos resulta posible observar una amplia variedad de aplicaciones, desarrolladas tanto en peque\u00f1as empresas (con 5 desarrolladores), como en grandes (~500 desarrolladores). Un beneficio adicional es que vemos c\u00f3mo estas aplicaciones viven y evolucionan a lo largo de los a\u00f1os.<\/p>\n<h2>\u00bfPor qu\u00e9 microservicios?<\/h2>\n<p>\nA la pregunta sobre la utilidad de los microservicios hay <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/microservice-trade-offs.html\">una respuesta bastante concreta<\/a><\/noindex> de Martin Fowler ya mencionado:<\/p>\n<ol>\n<li> l\u00edmites claros de modularidad;<\/li>\n<li> despliegue independiente;<\/li>\n<li> libertad de elecci\u00f3n de tecnolog\u00edas.<\/li>\n<\/ol>\n<p>\nHe hablado mucho con arquitectos y desarrolladores de software y les he preguntado por qu\u00e9 necesitan microservicios. He elaborado mi lista de expectativas. Esto es lo que obtuve:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/e9fa2f1a03da2017e90c5f952b752187.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi describiera \"en sensaciones\" algunos de los puntos, ser\u00edan:<\/p>\n<ul>\n<li> l\u00edmites claros de los m\u00f3dulos: tenemos un temible monolito, y ahora todo estar\u00e1 ordenadamente distribuido en repositorios de Git, donde todo est\u00e1 \"bien organizado\", sin mezclar lo caliente con lo blando;<\/li>\n<li> independencia del despliegue: podremos desplegar servicios de forma independiente, para que el desarrollo avance m\u00e1s r\u00e1pido (publicar nuevas caracter\u00edsticas en paralelo);<\/li>\n<li> independencia del desarrollo: podemos ceder este microservicio a un equipo\/desarrollador, y otro a otro, lo que nos permite desarrollar m\u00e1s r\u00e1pidamente;<\/li>\n<li> b<i>mayor audiencia.<\/i>mayor fiabilidad: si ocurre una degradaci\u00f3n parcial (un microservicio de 20 falla), solo dejar\u00e1 de funcionar un bot\u00f3n, mientras que el sistema en general seguir\u00e1 operando.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Arquitectura microservicios t\u00edpica (da\u00f1ina)<\/h2>\n<p>\nPara explicar por qu\u00e9 en realidad todo no es como esperamos, presentar\u00e9 <i>una imagen<\/i> sint\u00e9tica de la arquitectura de microservicios, basada en la experiencia de muchos proyectos diferentes.<\/p>\n<p>Como ejemplo tomaremos una tienda en l\u00ednea abstracta, que busca competir con Amazon o al menos con OZON. Su arquitectura de microservicios se ve as\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/3b85936587109631d16882a52dd1b310.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPor una combinaci\u00f3n de razones, estos microservicios est\u00e1n escritos en diferentes plataformas:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/e145b212a83814218add965ce26b3fed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDado que cada microservicio debe ser aut\u00f3nomo, muchos de ellos necesitan su propia base de datos y cach\u00e9. La arquitectura final resulta as\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/299b2ac7b6956e295c3d59210955e5e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>\u00bfCu\u00e1les son sus consecuencias?<\/h2>\n<p>\nCon Fowler sobre este asunto <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/microservice-trade-offs.html\">sobre el 'precio' por usar microservicios:<\/a><\/noindex> Y veremos si nuestras expectativas se cumplieron.<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/50fc6ac602cb2eb8383d2103101c01ce.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL\u00edmites claros de los m\u00f3dulos\u2026<\/p>\n<h3>cu\u00e1ntos microservicios realmente necesitamos corregir<\/h3>\n<p>\nPero <b>, \u00bfpara implementar un cambio? \u00bfPodemos entender c\u00f3mo funciona todo sin un rastreador distribuido (ya que cualquier solicitud es procesada por la mitad de los microservicios)?<\/b>Hay un patr\u00f3n de '<\/p>\n<p>gran bola de barro<noindex><a rel=\"nofollow\" href=\"http:\/\/www.laputan.org\/mud\/\">', y aqu\u00ed se ha creado una bola de barro distribuida. En apoyo a esto, aqu\u00ed hay una ilustraci\u00f3n aproximada de c\u00f3mo viajan las solicitudes:<\/a><\/noindex>Independencia de despliegue\u2026<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/c91086409c06f5a76b1f76bec30b737d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>T\u00e9cnicamente se ha logrado: podemos desplegar cada microservicio por separado. Pero en la pr\u00e1ctica hay que tener en cuenta que siempre se despliegan<\/h3>\n<p>\nmuchos microservicios <b>, y necesitamos considerar<\/b>el orden de su despliegue <b>. En realidad, necesitamos probar en un entorno separado si estamos desplegando la versi\u00f3n en el orden correcto.<\/b>Libertad de elecci\u00f3n tecnol\u00f3gica\u2026<\/p>\n<h3>La hay. Solo hay que recordar que a menudo la libertad roza el descontrol. Es muy importante no elegir tecnolog\u00edas solo para 'jugar' con ellas.<\/h3>\n<p>\nIndependencia de desarrollo\u2026<\/p>\n<h3>\u00bfC\u00f3mo crear un entorno de prueba para toda la aplicaci\u00f3n (con tantos componentes)? Y adem\u00e1s, hay que mantenerlo actualizado. Todo esto lleva a que<\/h3>\n<p>\nel n\u00famero real de entornos de prueba <b>, que podemos mantener en principio,<\/b>resulta ser m\u00ednimo. <b>\u00bfY desplegar todo esto localmente? Resulta que a menudo el desarrollador hace su trabajo de manera independiente, pero 'a ciegas', porque se ve obligado a esperar a que se libere un entorno para pruebas.<\/b>.<\/p>\n<p>Escalado separado\u2026<\/p>\n<h3>S\u00ed, pero est\u00e1 limitado en el \u00e1mbito de las bases de datos utilizadas. En el ejemplo de arquitectura proporcionado no habr\u00e1 problemas con Cassandra, pero los habr\u00e1 con MySQL y PostgreSQL.<\/h3>\n<p>\nM<\/p>\n<h3>ayor confiabilidad\u2026<i>mayor audiencia.<\/i>No solo que, en realidad, la falla de un microservicio a menudo rompe el funcionamiento correcto de todo el sistema, sino que tambi\u00e9n hay un nuevo problema:<\/h3>\n<p>\nhacer que cada microservicio sea tolerante a fallos es muy complicado. <b>hacer que cada microservicio sea tolerante a fallos es muy complicado<\/b>Porque en los microservicios se utilizan diferentes tecnolog\u00edas (memcache, Redis, etc.), se debe pensar y realizar todo para cada uno, lo cual es posible, pero requiere enormes recursos.<\/p>\n<h3>Medici\u00f3n de la carga\u2026<\/h3>\n<p>\nEsto realmente est\u00e1 yendo muy bien.<\/p>\n<h3>La \"ligereza\" de los microservicios\u2026<\/h3>\n<p>\nNo solo hemos aumentado enormemente <b>los costos de red<\/b> (aumentan las solicitudes a DNS, etc.), sino que debido a la multitud de subconsultas empezamos a <b>replicar datos<\/b> (almacenar cach\u00e9s), lo que ha llevado a un volumen significativo de almacenamiento.<\/p>\n<p>Y as\u00ed es como resulta la conformidad con nuestras expectativas:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/ab189c8649d720c7add975ac54811f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>\u00a1Pero eso no es todo!<\/h3>\n<p>\nPorque:<\/p>\n<ul>\n<li> Lo m\u00e1s probable es que necesitemos un bus de mensajes.<\/li>\n<li> \u00bfC\u00f3mo hacer una copia de seguridad consistente en un momento espec\u00edfico? La \u00fanica <i>opci\u00f3n real<\/i> es detener el tr\u00e1fico para eso. Pero, \u00bfc\u00f3mo hacerlo en producci\u00f3n?<\/li>\n<li> Si hablamos de soportar varias regiones, organizar la resiliencia en cada una de ellas es una tarea muy laboriosa.<\/li>\n<li> Surge el problema de realizar cambios centralizados. Por ejemplo, si necesitamos actualizar la versi\u00f3n de PHP, tendremos que hacer un commit en cada repositorio (y hay decenas de ellos).<\/li>\n<li> El crecimiento de la complejidad operativa resulta ser exponencial a primera vista.<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u00bfQu\u00e9 hacer con todo esto?<\/h2>\n<p>\n<b>Empieza con una aplicaci\u00f3n monol\u00edtica.<\/b>. La experiencia de Fowler <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/MonolithFirst.html\">indica<\/a><\/noindex> sobre que pr\u00e1cticamente todas las aplicaciones de microservicios exitosas comenzaron como un monolito que se volvi\u00f3 demasiado grande, y luego se descompuso. Al mismo tiempo, pr\u00e1cticamente todos los sistemas construidos como microservicios desde el principio, tarde o temprano, enfrentaron serios problemas.<\/p>\n<p>Otro pensamiento valioso es que para que un proyecto con arquitectura de microservicios sea exitoso, debes conocer muy bien <b>tanto el dominio como c\u00f3mo hacer microservicios.<\/b>Y la mejor manera de conocer el dominio es hacer un monolito.<\/p>\n<h2>Pero, \u00bfqu\u00e9 hacer si ya nos encontramos en esa situaci\u00f3n?<\/h2>\n<p>\nEl primer paso para resolver cualquier problema es aceptar que existe y entender que es un problema, que ya no queremos sufrir.<\/p>\n<p>Si en el caso de un monolito que se ha expandido (cuando ya no podemos adquirir m\u00e1s recursos), lo dividimos, en este caso se produce lo contrario: cuando una excesiva microservicios ya no ayuda, sino que obstaculiza \u2014 <b>recorta lo innecesario y agranda<\/b>!<\/p>\n<p>Por ejemplo, para el modelo colectivo mencionado anteriormente\u2026<\/p>\n<p>Desh\u00e1gase de los microservicios m\u00e1s cuestionables:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/4b72ede0452890027a950d31ced26405.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAgrupe todos los microservicios que se encargan de generar el frontend:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/3bf2831a637cfa148b032ba8c521353a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 en un solo microservicio, escrito en un (moderno y adecuado, como usted mismo considera) lenguaje\/framework:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/73f53f5f4f41f72a7c6d187d855bbd95.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTendr\u00e1 un solo ORM (una base de datos) y al principio un par de aplicaciones:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/f44baf6a02bf00317f1395ab339f57a9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 aunque en realidad se pueden trasladar muchas m\u00e1s, obteniendo el siguiente resultado:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/97c02ae24199bca42e4bf24f8031578a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAdem\u00e1s, en Kubernetes lanzamos todo esto como instancias separadas, lo que significa que a\u00fan podemos medir la carga y escalarlas por separado.<\/p>\n<h2>Resumiendo<\/h2>\n<p>\nMire el panorama m\u00e1s amplio. A menudo, todos estos problemas con los microservicios surgen porque alguien tom\u00f3 su tarea, pero quer\u00eda 'jugar a los microservicios'.<\/p>\n<p><b>En la palabra 'microservicios', la parte 'micro' es innecesaria<\/b>. Son 'micro' solo porque son m\u00e1s peque\u00f1os que un enorme monolito. Pero no debe pensar en ellos como algo peque\u00f1o.<\/p>\n<p>Y para la reflexi\u00f3n final, volvamos al gr\u00e1fico original:<\/p>\n<p><img decoding=\"async\" alt=\"Microservicios: el tama\u00f1o importa, incluso si tienes Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/a75665af4caa7c4982f70c59ec3c6e89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa nota escrita para \u00e9l <i>(en la parte superior derecha)<\/i> se reduce a que <b>las habilidades del equipo que realiza su proyecto son siempre primordiales<\/b> \u2014 son las que jugar\u00e1n un papel clave en su elecci\u00f3n entre microservicios y monolitos. Si al equipo le falta habilidad, pero comienza a hacer microservicios, la historia ser\u00e1 fatal.<\/p>\n<h2>Videos y presentaciones<\/h2>\n<p>\nVideo de la presentaci\u00f3n (~50 minutos; desafortunadamente, no captura las numerosas emociones de los asistentes, que en gran medida definieron el ambiente de la charla, pero as\u00ed es):<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"g9cgppj0gKQ\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/g9cgppj0gKQ\/hqdefault.jpg\" alt=\"Reproducir video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Presentaci\u00f3n de la charla:<\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"\/\/speakerdeck.com\/player\/f4f5ab9957084712bc92aa8a0ef61e45\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><\/p>\n<h2>P.D.<\/h2>\n<p>\nOtras charlas en nuestro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitoreo y Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 28 de mayo de 2018 en RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/345116\/\">Mejores pr\u00e1cticas de CI\/CD con Kubernetes y GitLab<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 7 de noviembre de 2017 en HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Nuestra experiencia con Kubernetes en proyectos peque\u00f1os<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 6 de junio de 2017 en RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Creamos im\u00e1genes de Docker para CI\/CD r\u00e1pida y c\u00f3modamente con dapp<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 8 de noviembre de 2016 en HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Pr\u00e1cticas de entrega continua con Docker<\/a><\/noindex>\u00bb <i>(Dmitry Stolyarov; 31 de mayo de 2016 en RootConf)<\/i>.<\/li>\n<\/ul>\n<p>\nProbablemente tambi\u00e9n le interesen las siguientes publicaciones:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">La muerte de la locura de los microservicios en 2018<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/425085\/\">7 mejores pr\u00e1cticas para operar contenedores seg\u00fan Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/340270\/\">Estad\u00edsticas de The New Stack sobre las dificultades de implementar Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424531\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c. \u041d\u0430 \u043d\u0451\u043c \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u042d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes\u00bb, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23651,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31761","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:42:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:42:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Microservicios: el tama\u00f1o importa, incluso si tiene Kubernetes | ProHoster","description":"El 19 de septiembre se llev\u00f3 a cabo el primer meetup tem\u00e1tico HUG (Highload++ User Group) en Mosc\u00fa, que fue dedicado a.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes | ProHoster","og:description":"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:42:55+00:00","article:modified_time":"2019-10-31T18:42:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31761","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 07:42:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:11:22","updated":"2026-01-21 07:42:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/31761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=31761"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/31761\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/23651"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=31761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=31761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=31761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}