{"id":42175,"date":"2019-03-18T00:00:00","date_gmt":"2019-03-17T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem"},"modified":"2020-02-18T13:45:00","modified_gmt":"2020-02-18T10:45:00","slug":"evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","title":{"rendered":"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/3c677d0628824497039901c0179a8749.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn alg\u00fan momento, decid\u00ed escribir un art\u00edculo sobre la entrega en forma de contenedores Docker y paquetes deb, pero cuando comenc\u00e9, de alguna manera me transport\u00e9 a los lejanos d\u00edas de las primeras computadoras personales e incluso calculadoras. En resumen, en lugar de una comparaci\u00f3n seca entre Docker y deb, termin\u00e9 con estas reflexiones sobre la evoluci\u00f3n, que presento a su consideraci\u00f3n.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nCualquier producto, sea cual sea, debe llegar de alguna manera a los servidores de producci\u00f3n, debe estar configurado y en funcionamiento. De esto tratar\u00e1 este art\u00edculo.<\/p>\n<p>Reflexionar\u00e9 en un contexto hist\u00f3rico, \u00ablo que veo, de eso hablo\u00bb, lo que vi cuando empec\u00e9 a escribir c\u00f3digo y lo que observo ahora, lo que usamos actualmente y por qu\u00e9. El art\u00edculo no pretende ser una investigaci\u00f3n completa, algunos aspectos est\u00e1n omitidos, es mi opini\u00f3n personal sobre lo que fue y lo que es ahora.<\/p>\n<p>As\u00ed que, en los viejos buenos tiempos... el m\u00e9todo m\u00e1s temprano de entrega que conoc\u00ed eran las cintas de casete. Ten\u00eda una computadora BK-0010.01...<\/p>\n<h2>La era de las calculadoras<\/h2>\n<p>\nNo, hubo un momento a\u00fan m\u00e1s temprano, hab\u00eda otra calculadora <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-61\">\u041c\u041a-61<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-52\">\u041c\u041a-52<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/ea68507cd83b4da3038cea7329ff1813.jpg\" style=\"display:block;margin: 0 auto;\" \/> As\u00ed que, cuando ten\u00eda <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-61\">\u041c\u041a-61<\/a><\/noindex>, el m\u00e9todo para transferir el programa era una simple hoja de papel cuadriculado, donde estaba escrito el programa que, si era necesario, se introduc\u00eda manualmente en la calculadora. Si quer\u00edas jugar (s\u00ed, incluso en esa antigua calculadora hab\u00eda juegos) te sentabas y escrib\u00edas el programa en la calculadora. Naturalmente, al apagar la calculadora, el programa se desvanec\u00eda en la nada. Adem\u00e1s de los c\u00f3digos escritos a mano en papel, los programas se publicaban en revistas como \u00abRadio\u00bb y \u00abT\u00e9cnica de la Juventud\u00bb, y tambi\u00e9n se imprim\u00edan en libros de la \u00e9poca.<\/p>\n<p>La siguiente modificaci\u00f3n fue la calculadora <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-52\">\u041c\u041a-52<\/a><\/noindex>, que ya ten\u00eda alguna forma de almacenamiento no vol\u00e1til de datos. Ahora ya no era necesario introducir manualmente el juego o programa, sino que, realizando algunos movimientos m\u00e1gicos con los botones, se cargaba autom\u00e1ticamente.<\/p>\n<p>El tama\u00f1o del programa m\u00e1s grande en la calculadora era de 105 pasos, mientras que la memoria permanente de la \u041c\u041a-52 era de 512 pasos.<\/p>\n<p>Por cierto, si hay fan\u00e1ticos de estas calculadoras que est\u00e9n leyendo este art\u00edculo, durante la redacci\u00f3n del mismo encontr\u00e9 un emulador de calculadora para Android y programas para el mismo. \u00a1Hacia el pasado!<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.cax.pmk.ext\">Emulador de \u041c\u041a-61 para Android<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xvadim.github.io\/xbasoft\/pmk\/pmk.html\">Cat\u00e1logo de programas para el MK-61<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>Una breve digresi\u00f3n sobre el MK-52<\/b> <i>(de Wikipedia)<\/i><\/p>\n<p>El MK-52 vol\u00f3 al espacio en la nave 'Soyuz TM-7'. Se supon\u00eda que se utilizar\u00eda para calcular la trayectoria de aterrizaje en caso de que fallara la computadora a bordo.<\/p>\n<p>Desde 1988, el MK-52 con el m\u00f3dulo de expansi\u00f3n de memoria 'Electr\u00f3nica-Astro' se suministraba a los barcos de la Armada como parte del conjunto de computaci\u00f3n del navegador. <\/p><\/blockquote>\n<h2>Las primeras computadoras personales<\/h2>\n<p><img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/5d443c3919023854c53c83ac2265cea3.jpg\" style=\"display:block;margin: 0 auto;\" \/> Regresamos a los tiempos <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%9A_(%D1%81%D0%B5%D0%BC%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BE%D0%B2)\">BK-0010<\/a><\/noindex>. Est\u00e1 claro que tambi\u00e9n hab\u00eda m\u00e1s memoria, y ya no era factible ingresar el c\u00f3digo desde un papel (aunque al principio lo hice de esa manera, porque no hab\u00eda otro medio disponible). El principal medio de almacenamiento y suministro de software eran los cassettes de audio para grabadoras.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><br \/>\n<img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/988316eac02a95a16e15502a826f0653.jpg\" style=\"display:block;margin: 0 auto;\" \/>El almacenamiento en cinta generalmente consist\u00eda en uno o dos archivos binarios, todo lo dem\u00e1s estaba contenido en su interior. La fiabilidad era muy baja, hab\u00eda que mantener de 2 a 3 copias del programa. El tiempo de carga tampoco era satisfactorio, los entusiastas experimentaban con diferentes codificaciones de frecuencia para superar estas deficiencias. En ese tiempo yo a\u00fan no me dedicaba al desarrollo profesional de software (sin contar algunos programas sencillos en BASIC), por lo que no puedo contarles los detalles de c\u00f3mo estaba todo organizado internamente. El simple hecho de que en la computadora solo hubiera RAM defin\u00eda en gran medida la simplicidad del esquema de almacenamiento de datos.<\/p>\n<h2>La aparici\u00f3n de soportes de informaci\u00f3n fiables y grandes<\/h2>\n<p>\nM\u00e1s tarde surgen los disquetes, lo que simplifica el proceso de copia y aumenta la fiabilidad.<br \/>\nPero la situaci\u00f3n cambia radicalmente solo cuando aparecen grandes almacenamiento locales en forma de HDD.<\/p>\n<p>Cambia fundamentalmente el tipo de suministro: aparecen programas instaladores que gestionan el proceso de configuraci\u00f3n del sistema, as\u00ed como la limpieza despu\u00e9s de la desinstalaci\u00f3n, ya que los programas no solo se leen en la memoria, sino que ya se copian en el almacenamiento local, del cual hay que saber y limpiar lo innecesario cuando sea necesario.<\/p>\n<p>Paralelamente, aumenta la complejidad del software suministrado.<br \/>\nEl n\u00famero de archivos en el suministro aumenta de unos pocos a cientos y miles, y comienzan los conflictos de versiones de bibliotecas y otras alegr\u00edas cuando diferentes programas utilizan los mismos datos.<\/p>\n<p><img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/48af8fca591a1061df45cd619854a59a.jpg\" style=\"display:block;margin: 0 auto;\" \/> En esos tiempos, a\u00fan no conoc\u00eda la existencia de Linux, viv\u00eda en el mundo de MS DOS y, m\u00e1s tarde, Windows, programando en Borland Pascal y Delphi, a veces echando un vistazo a C++. Para la entrega de productos en esos d\u00edas, muchos usaban InstallShield <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/InstallShield\">ru.wikipedia.org\/wiki\/InstallShield<\/a><\/noindex>, que resolv\u00eda con \u00e9xito todas las tareas planteadas de despliegue y configuraci\u00f3n de software.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><\/p>\n<h2>La era de Internet<\/h2>\n<p>\nGradualmente, la complejidad de los sistemas de software ha aumentado, pasando de monolitos y aplicaciones de escritorio a sistemas distribuidos, clientes ligeros y microservicios. Ahora ya no se trata de configurar una sola aplicaci\u00f3n, sino un conjunto de ellas, y hacerlo de tal manera que todas trabajen en conjunto.<\/p>\n<p>La concepci\u00f3n cambi\u00f3 por completo, lleg\u00f3 Internet, comenz\u00f3 la era de los servicios en la nube. Aunque todav\u00eda estaba en una fase inicial, como sitios web, nadie so\u00f1aba realmente con los servicios, pero este fue un momento crucial en la industria tanto del desarrollo como de la entrega de aplicaciones.<\/p>\n<p>Para m\u00ed, este momento signific\u00f3 un cambio generacional en los desarrolladores (o quiz\u00e1s solo en mi entorno), y hab\u00eda una sensaci\u00f3n de que todos los viejos y buenos m\u00e9todos de entrega fueron olvidados de un d\u00eda para otro y todo comenz\u00f3 de nuevo: toda la entrega se empez\u00f3 a hacer con scripts de rodillas y se llam\u00f3 orgullosamente 'Continuous delivery'. En realidad, comenz\u00f3 un per\u00edodo de descontrol, cuando lo antiguo fue olvidado y no se us\u00f3, y no hab\u00eda nada nuevo.<\/p>\n<p>Recuerdo los tiempos en que en la empresa donde trabajaba (no mencionar\u00e9 el nombre), en lugar de hacer la construcci\u00f3n a trav\u00e9s de ant (maven a\u00fan no era popular o no exist\u00eda), la gente simplemente compilaba el jar en el IDE y lo commit\u00eda tranquilamente en SVN. Por lo tanto, el despliegue consist\u00eda en sacar el archivo de SVN y copiarlo por SSH a la m\u00e1quina adecuada. As\u00ed de simple y rudimentario.<\/p>\n<p>Al mismo tiempo, la entrega de sitios simples en PHP se hac\u00eda de manera a\u00fan m\u00e1s primitiva, simplemente copiando el archivo corregido a trav\u00e9s de FTP en la m\u00e1quina objetivo. A veces, ni siquiera hab\u00eda tal cosa: se correg\u00eda el c\u00f3digo en vivo en el servidor de producci\u00f3n, y era un lujo si hab\u00eda copias de seguridad en alg\u00fan lugar.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Paquetes RPM y DEB<\/h4>\n<p>\n<img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/8590e7db6c67cad4b97654465ba5e946.jpg\" style=\"display:block;margin: 0 auto;\" \/>Por otro lado, con el desarrollo de Internet, los sistemas similares a UNIX han ganado cada vez m\u00e1s popularidad, especialmente en aquella \u00e9poca descubr\u00ed RedHat Linux 6, alrededor del a\u00f1o 2000. Naturalmente, tambi\u00e9n exist\u00edan herramientas para la entrega de software; seg\u00fan la Wikipedia, RPM como gestor de paquetes principal apareci\u00f3 en 1995, en la versi\u00f3n RedHat Linux 2.0. Y desde entonces hasta nuestros d\u00edas, el sistema se entrega en forma de paquetes RPM y ha existido y evolucionado con bastante \u00e9xito.<\/p>\n<p>Las distribuciones de la familia Debian siguieron un camino similar y implementaron la entrega en forma de paquetes deb, lo cual tambi\u00e9n se mantiene hasta nuestros d\u00edas.<\/p>\n<p>Los gestores de paquetes permiten distribuir los propios productos de software, configurarlos durante la instalaci\u00f3n, gestionar las dependencias entre diferentes paquetes, llevar a cabo la eliminaci\u00f3n de productos y limpiar el exceso durante la desinstalaci\u00f3n. Es decir, en su mayor parte, esto es todo lo que se necesita; por eso han perdurado durante varias d\u00e9cadas pr\u00e1cticamente sin cambios.<\/p>\n<p>La nube a\u00f1adi\u00f3 a los gestores de paquetes la instalaci\u00f3n no solo desde medios f\u00edsicos, sino tambi\u00e9n desde repositorios en la nube, pero el principio fundamental no ha cambiado mucho.<\/p>\n<p>Cabe se\u00f1alar que actualmente hay algunas tendencias hacia el abandono de deb y la transici\u00f3n a paquetes snap, pero hablaremos de eso m\u00e1s adelante.<\/p>\n<p>As\u00ed que, esta nueva generaci\u00f3n de desarrolladores en la nube, que no conoc\u00eda ni DEB ni RPM, tambi\u00e9n ha crecido lentamente, adquiriendo experiencia, los productos se complicaban y se necesitaban m\u00e9todos de distribuci\u00f3n m\u00e1s razonables que FTP, peque\u00f1os scripts bash y similares, que eran un tanto improvisados. <br \/>\nY aqu\u00ed entra en escena Docker, una especie de mezcla de virtualizaci\u00f3n, separaci\u00f3n de recursos y m\u00e9todo de distribuci\u00f3n. Ahora es moda, juvenil, pero \u00bfes necesario para todo? \u00bfEs una panacea?<\/p>\n<p>Por mis observaciones, Docker a menudo se ofrece no como una elecci\u00f3n razonable, sino simplemente porque, por un lado, se habla de ello en la comunidad, y aquellos que lo proponen solo lo conocen. Por otro lado, se habla poco de los antiguos y buenos sistemas de empaquetamiento; existen y hacen su trabajo de manera silenciosa y desapercibida. En tal situaci\u00f3n, no queda mucho m\u00e1s que elegir; la elecci\u00f3n es obvia: Docker.<\/p>\n<p>Intentar\u00e9 compartir la experiencia de c\u00f3mo implementamos Docker y qu\u00e9 resultados obtuvimos.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Scripts personalizados<\/h4>\n<p>\nOriginalmente, hab\u00eda scripts bash que desplegaban archivos jar en las m\u00e1quinas correspondientes. Este proceso era gestionado por Jenkins. Esto funcionaba con \u00e9xito, dado que el archivo jar en s\u00ed mismo es una compilaci\u00f3n que contiene clases, recursos e incluso configuraciones. Si se agrega todo al m\u00e1ximo, descomponerlo con un script no es lo m\u00e1s complicado que se necesita.<\/p>\n<p>Sin embargo, los scripts tienen varias desventajas:<\/p>\n<ul>\n<li> Los scripts suelen escribirse a la ligera y son tan primitivos que solo contienen un escenario m\u00e1s afortunado. Esto se debe a que el desarrollador est\u00e1 interesado en una entrega r\u00e1pida, mientras que un script adecuado requiere una cantidad considerable de recursos.<\/li>\n<li> Como consecuencia del punto anterior, los scripts no contienen procedimientos de desinstalaci\u00f3n.<\/li>\n<li> No hay un procedimiento establecido de actualizaci\u00f3n.<\/li>\n<li> Al aparecer un nuevo producto, hay que escribir un nuevo script.<\/li>\n<li> No hay soporte para dependencias.<\/li>\n<\/ul>\n<p>\nPor supuesto, se podr\u00eda escribir un script sofisticado, pero, como mencion\u00e9 antes, eso lleva tiempo de desarrollo, y, como se sabe, siempre falta tiempo.<\/p>\n<p>Todo esto limita claramente el uso de este m\u00e9todo de despliegue solo a sistemas muy simples. Ha llegado el momento de cambiar esto.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Docker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/f9c6180a2775513ce88c5425727817d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>En alg\u00fan momento, empezaron a llegar a nosotros reci\u00e9n graduados entusiastas con muchas ideas y so\u00f1ando con Docker. \u00a1Muy bien, adelante! Tuvimos dos intentos. Ambos fallidos, digamos, debido a grandes ambiciones pero con poca experiencia real. \u00bfEra necesario apresurar y hacer todo a cualquier costo? Probablemente no; el equipo debe evolucionar hasta el nivel adecuado antes de poder utilizar las herramientas correspondientes. Adem\u00e1s, al utilizar im\u00e1genes de Docker ya preparadas, a menudo nos encontramos con que la red no funcionaba correctamente (lo cual quiz\u00e1s estaba relacionado con la inmadurez de Docker mismo) o era complicado extender los contenedores ajenos.<\/p>\n<p>\u00bfCon qu\u00e9 inconvenientes nos encontramos?<\/p>\n<ul>\n<li> Problemas de red en modo bridge.<\/li>\n<li> Es inc\u00f3modo ver los logs en el contenedor (si no est\u00e1n separados en el sistema de archivos de la m\u00e1quina anfitriona).<\/li>\n<li> Ocasionalmente, un extra\u00f1o bloqueo de ElasticSearch dentro del contenedor; no se ha podido establecer la causa, el contenedor es oficial.<\/li>\n<li> Es inc\u00f3modo usar el shell dentro del contenedor; todo est\u00e1 muy limitado, no hay las herramientas habituales.<\/li>\n<li> El gran tama\u00f1o de los contenedores recolectados resulta costoso de almacenar<\/li>\n<li> Debido al gran tama\u00f1o de los contenedores, es dif\u00edcil mantener m\u00faltiples versiones<\/li>\n<li> La construcci\u00f3n es m\u00e1s prolongada, a diferencia de otros m\u00e9todos (scripts o paquetes deb)<\/li>\n<\/ul>\n<p>\nPor otro lado, \u00bfqu\u00e9 hace que el servicio Spring en forma de archivo jar sea peor de implementar a trav\u00e9s del mismo deb? \u00bfEs realmente necesaria la aislamiento de recursos? \u00bfVale la pena renunciar a herramientas c\u00f3modas del sistema operativo al meter el servicio en un contenedor severamente recortado?<\/p>\n<p>Como ha demostrado la pr\u00e1ctica, en realidad esto no es necesario, un paquete deb es suficiente en el 90% de los casos.<\/p>\n<p>\u00bfCu\u00e1ndo realmente el viejo y confiable deb no funciona y cu\u00e1ndo realmente necesitamos Docker?<\/p>\n<p>Para nosotros, esto fue el despliegue de servicios en Python. Muchas bibliotecas necesarias para el aprendizaje autom\u00e1tico y que faltan en la instalaci\u00f3n est\u00e1ndar del sistema operativo (y las que estaban no eran de las versiones correctas), ajustes improvisados, necesidad de diferentes versiones para diferentes servicios que viven en la misma m\u00e1quina host llevaron a que el \u00fanico enfoque razonable para entregar esta mezcla compleja resultara ser Docker. El esfuerzo para crear un contenedor Docker result\u00f3 ser menor que la idea de empaquetar todo esto en paquetes deb separados con dependencias, de hecho, nadie en su sano juicio se habr\u00eda atrevido a hacerlo.<\/p>\n<p>El segundo momento donde se planea usar Docker es para el despliegue de servicios en la estrategia blue-green deploy. Pero aqu\u00ed quiero obtener un aumento gradual de la complejidad: primero se construyen paquetes deb y luego a partir de ellos se crea el contenedor Docker.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Paquetes Snap<\/h4>\n<p>\n<img decoding=\"async\" alt=\"La evoluci\u00f3n de los medios de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s\" src=\"\/wp-content\/uploads\/2019\/03\/8c9001b28757f8427c85e54bca5b4e73.jpg\" style=\"display:block;margin: 0 auto;\" \/> Volvamos a los paquetes Snap. Aparecieron oficialmente por primera vez en Ubuntu 16.04. A diferencia de los habituales paquetes deb y rpm, los snaps llevan consigo todas las dependencias. Por un lado, esto evita problemas de conflicto entre bibliotecas, pero por otro lado, resulta en un tama\u00f1o mucho mayor del paquete resultante. Adem\u00e1s, esto puede influir en la seguridad del sistema: en el caso del env\u00edo de un snap, todas las modificaciones de las bibliotecas incluidas deben ser monitoreadas por el mismo desarrollador que crea el paquete. En general, no todo es tan claro y la felicidad general por su uso no se materializa. Sin embargo, sigue siendo una alternativa razonable, si Docker se utiliza solo como medio de empaquetado y no de virtualizaci\u00f3n.<\/p>\n<p><br clear=\"all\"><br \/>\nEn resumen, ahora utilizamos una combinaci\u00f3n razonable de paquetes deb y contenedores de Docker, que quiz\u00e1s, en algunos casos, reemplazaremos por paquetes snap.<\/p>\n<p class=\"for_users_only_msg\">Solo los usuarios registrados pueden participar en la encuesta. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Inicie sesi\u00f3n<\/a><\/noindex>, por favor.<\/p>\n<h2 class=\"default-block__polling-title\">\u00bfQu\u00e9 utilizas t\u00fa para la entrega?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Scripts personalizados<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Copiamos manualmente por FTP<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    paquetes deb<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    paquetes rpm<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    paquetes snap<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    im\u00e1genes de Docker<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Im\u00e1genes de m\u00e1quinas virtuales<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Clonamos el HDD por completo<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    puppet<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    ansible<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Otro<\/p>\n<\/li>\n<\/ul>\n<p>    Votaron 109 usuarios. 32 usuarios se abstuvieron.<\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/srg\/blog\/444102\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043e\u043a\u0435\u0440 \u0438 deb-\u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0430\u043b, \u043c\u0435\u043d\u044f \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u043e\u043d\u0435\u0441\u043b\u043e \u0432 \u0434\u0430\u043b\u0435\u043a\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0443\u0445\u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043a\u0435\u0440\u0430 \u0438 deb \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0432\u043e\u0442 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u043c\u0443 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438, \u043a\u043e\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u043d\u0430 \u0412\u0430\u0448 \u0441\u0443\u0434. \u041b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-42175","post","type-post","status-publish","format-standard","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=\"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.\" \/>\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\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\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\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e Docker, deb, jar \u0438 \u043f\u0440\u043e\u0447\u0435\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\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-03-17T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:45:00+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\udd47La evoluci\u00f3n de los m\u00e9todos de entrega, o reflexiones sobre Docker, deb, jar y m\u00e1s | ProHoster","description":"En un momento dado.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","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\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e Docker, deb, jar \u0438 \u043f\u0440\u043e\u0447\u0435\u043c | ProHoster","og:description":"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","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-03-17T21:00:00+00:00","article:modified_time":"2020-02-18T10:45:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"42175","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-22 07:30:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:04:29","updated":"2026-01-22 07:30: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\/42175","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=42175"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/42175\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=42175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=42175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=42175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}