 Gracias a todos por venir. Mi nombre es Jorge, también me llaman Benzer, me robé a mí mismo la roba Benzer en Twitter, así que ahora pues me llamo Benzerillo. Y bueno, lo que vamos a hablar es de WordPress, porque estamos en la WorldCam, y de todo porque me gusta mucho y he trabajado en ello habitualmente. El alquiler, no pago gracias a SISTI, que es una compañía americana que desarrolla un producto de monitorización y de seguridad para contenedores. Es por la razón por la que hablo habitualmente sobre cosas de relacionadas con Docker, Kubernetes, etcétera. Si tenéis contenedores en producción, pues echarle un vistazo que es un producto bastante guay. Hay algunas cosas en GitHub que a veces son interesantes, que podéis ver allí. Y bueno, pues me gusta todo esto del DevOps, los containers, automatizar cosas en casa, aquí a veces pues mejor se vuelve un poco loca cuando se rompen las cosas y pues también los coches y hacer un poco el cabras con ellos. Lo que vamos a ver en los próximos 30-40 minutos, pues es un poco Docker-Paradamics, una introducción para que entendáis por qué Docker es tan importante, está revolucionando un poco como gestionamos la infraestructura y porque está de moda, realmente. WordPress en Docker, qué cosas podemos hacer, cómo utilizarlo para desarrollo y luego cómo mudar todo eso a producción. Entonces quizás el principio del camino es entender qué es Docker. Docker os explica habitualmente como una clase de virtualización ligera, como si fuese una máquina virtual. Pero realmente hay unas diferencias fundamentales con una máquina virtual. En una máquina virtual tienes todo el sistema operativo dentro de esa máquina virtual. En un contenedor solamente tienes la aplicación con las dependencias, librerías que ejecutas. Normalmente suele ser un solo proceso, a veces puede haber más, pero un poco la diferencia fundamental es que un contenedor se ejecuta sobre el mismo kernel que el sistema operativo base, a diferencia de una máquina virtual donde estamos emulando un ordenador, un servidor y ejecutamos todo el sistema operativo entero. Con lo cual es mucho más sencillo, es mucho más fácil de gestionar y los riesgos que podríamos tener en cuanto a seguridad, en cuanto a consumo de recursos, pues el propio kernel de Linux ha implementado una serie de medidas que se llaman namespaces, groups que restringen todas esas cosas malas que se podría hacer dentro de un contenedor. Entonces al fin y al cabo las ventajas que nos aporta y por esto es que se han hecho muy populares, los contenedores y docker, son al menos los tres. Número uno es la portabilidad y es una de las cosas claves de esta charla. Es muy interesante tener una tecnología con la cual un desarrollador instala o despliega su entorno de desarrollo, hace ahí su programación, su aplicación y luego dice, vale, esto ya está listo, lo ponemos en staging o lo ponemos en producción y exactamente esa misma cosa que tiene allí en su ordenador personal de desarrollo la podemos poner en producción y esa ventaja a facilitar ese proceso, a agilizarlo ha sido brutal. Número dos, la automatización. Todos habéis desplegado WordPress a estas alturas, pensad en las dependencias, en plugins, en librerías, en toquetear, el PHP para no sé cuántas opciones de configuración, cosas del MySQL, si pudiésemos automatizar todo eso en un paquete, en vez de hacerlo a mano o en vez de hacerlo con una herramienta de gestión de configuración como podría ser Ansible o PAPET, cosas así, pues está es mucho más ágil de nuevo para el desarrollador y para el DevOps o la persona de operaciones que gestione esa infraestructura, así que número dos, automatización. Número tres, seguridad, es decir, imaginad que tenemos un montón de WordPress desplegados en un servidor, que hacemos un Vhost para cada uno de ellos, utilizamos alguno de esos módulos arcaicos de Apache, de Mocharrut o cosas súper raras y poco ágiles. No, desplegamos una maquina virtual por cada WordPress, es un montón de trabajo. Pues bueno, quizás los contenedores es un buen trade-off, un compromiso entre aislar, entre dar un sistema casi entero a cada instancia y poderlo gestinar de una forma más ágil con la seguridad que buscamos. El otro beneficio, más bien en este caso consecuencia del tema de los contenedores, es que tenemos un montón de procesos nuevos, o sea, cosas que no se nos ocurrían antes, que de repente ya son posibles, podemos automatizar los despliegues a producción o a staging, si no estamos preparados para ello, podemos automatizar el software que se instala en el equipo de los desarrolladores, podemos automatizar el refrescar en las librerías, el software que hay dentro de cada uno de los contenedores, de forma automática. O sea, podemos hacer un montón de procesos nuevos, muchos más ágiles, que hasta ahora pues directamente no era posible. Y bueno, pensarí, esto suena súper complejo, me estás dando miedo, pues realmente no, he dicho que fijaros para los developers, yo no utilizo una cosa que se quise, pero bueno, los que utilizáis cosas de Apple, pues es como, pues nada, instalamos esto de Docker y ya automáticamente tenemos las herramientas básicas para empezar a trabajar, Docker instalado. ¿Cómo funciona esta historia? Pues bueno, unos pocos comandos para que lo entendáis, es como pensemos en esta máquina virtual ligera, pues hacemos Docker Start y arrancamos el contenedor, hacemos Docker Stop, lo paramos, Docker RM se borra, Docker PS y listamos todos los que tenemos y hacemos Docker Exec, el contenedor y lo encomando, por ejemplo, Bash, una shell y ya podemos empezar a toquetear cosas dentro, no deberíais hacerlo, pero bueno, a veces sucede, así que también se puede hacer. Y diréis, bueno, pero cómo construyo yo mi primer contenedor, o sea, cómo hago una de esas máquinas virtuales, pues todo esto se automatiza, se hace desde un fichero que se llama Dockerfile y que tiene básicamente este aspecto, no es simplificado, hay muchas opciones, pero quería que os quedáis con dos cosas más, que es lo más importante, es el from y los run, vale, from es cogemos una imagen base y aquí ya vais a empezar a entender por qué esto mola bastante, o sea, olvidaros de cuando lanzabais el VMware o el virtual box y teníais que instalar el sistema operativo desde cero, no, o sea, ya tenemos un sistema operativo base en el que podemos confiar y que va a tener una serie de software instalado, en este caso estamos cogiendo la imagen que tiene PHP, donde a partir de ahí ya puedo construir cosas, luego veremos cómo para WordPress y hay una imagen oficial de WordPress, con WordPress instalado, con lo cual no tenemos que instalar, por ejemplo WordPress, como hacemos en este caso, estamos un poco en el pre todavía, vale, y luego podemos ejecutar, una vez que ya tenemos esta imagen base de lo que partimos, podemos empezar a ejecutar comandos, en este caso utilizamos Apeka que es como apt o zoom, pero de una distribución específica para Docker que se llama alpine, que es como más minimalista reducida y aquí podemos instalar pues un montón de cosas, vale, esto es un ejemplo superchorras, con un montón de cosas que no se deberían hacer, que está fuera del ámbito de estacherla hoy, pero un poco para que os quedeis la idea, es como si fuese un script realmente. Una vez que tenemos eso, que hacemos pues en el directorio donde tenemos ese fichero, pues lo construimos con el comando build, vale, Docker build y lo llamamos WordPress, se ejecuta ahí un montón de cosas, vale, y luego lo ejecutamos, Docker run, que es un poco distinto, que el start que veíamos antes, el start es para lo que ya está definido, run es para pues hacerlo desde cero y menos de para que se quede corriendo de attach en background y luego menos p para decir que puertos estamos exponiendo, pues estamos diciéndole que en el puerto 8080 de nuestra máquina, ponga el puerto 80 de dentro del cantenedor y luego le metemos el WordPress, pues nada, eso se ejecuta, horiremos nuestro navegador, pondremos lo que al costo 8080 y ahí nos saldrá la pantallita de bienvenida WordPress, vamos a instalar, vale, bueno, pues esto ha sido un poquito el tema de Docker, es una introducción super sencilla y básica, pero vamos a ver cómo podemos agilizar, porque como habéis visto hasta ahora aquí todavía hay mucho scripting, muchas cosas que hay que gestionar y una de las ventajas que vamos a ver hoy es que casi todo está hecho, vale, si quisiésemos dar un pasito más allá y utilizar cosas ya hechas y cosas oficiales y mantenidas, desplegar todo el stack de WordPress, lo básico sería ejecutar dos comandos, vale, el primero es MySQL, que es la cosa en la base de datos que siempre necesitamos en WordPress, pues algo parecido a lo que veíamos antes, Docker run, pero en este caso pasamos unas variables de entorno, el password, el nombre de la base de datos, vale, el propio contenedor mirará esas variables de entorno que lo estamos pasando e ejecutará MySQL en este caso o MariaDB con esa configuración, nos pondrá ese password de root y nos creará una base de datos vacía, vale, pues le damos un nombre y luego esta opción de aquí, muy interesante, me nos sube es para indicar un volumen, un volumen sirve para exponer, digamos, un directorio desde nuestro equipo adentro del contenedor, vale, y entonces que le estamos diciendo, pues nada, desde donde ejecute yo esto, que es el comando pwd, monta la carpeta barlib MySQL, que es donde MySQL guarda la base de datos, vale, porque es lo que pasa, esto nos lo contado antes, que un contenedor, todo lo que ejecutas dentro es efímero, una vez que el contenedor muere, todo lo que haya dentro desaparece, vale, el contenedor cuando arranca tiene lo que está en la imagen y cuando tú puedes hacer cambios y esos cambios estarán allí, pero cuando se muera el contenedor todo eso desaparece, con lo cual si queremos guardar datos, esto se llama persistencia de datos, tenemos que montarlos desde un volumen externo y es lo que estamos haciendo aquí, o sea, los binarios del MySQL, todo eso, ya está en la imagen, pero lo que queremos persistir, lo que queremos que se guarde, lo tenemos que montar desde un volumen desde fuera y es esta cosa de aquí. Tenemos nuestra base de datos montada, la otra cosa que nos falta es WordPress y pues hay una imagen también desde WordPress, que es esta de aquí, perdón, donde tenemos WordPress pre-instalado, bueno, pues entonces le decimos conectate a la base de datos con este password, dale este nombre, haz un enlace, una conexión de red entre la base de datos de antes que se llama WordPress DB y expone el Puerto 80 al localhost, vale, necesitaremos root para ejecutar esto, falla mi ahí, montame un directorio en mi equipo que se llama HTML dentro del contenedor con bar W, 3W, HTML y ejecutarlo en background, vale, o sea, ejecutando estos dos comandos, ya tendríamos como si dijesemos dos máquinas virtuales, una con la base de datos, otra con esto utiliza Apache por debajo, con WordPress pre-instalado, todo funcionado, perfecto y hemos hecho un montón de cosas, pero todavía hay que ejecutar ahí el local run, que pasa si se muere, lo tengo que reiniciar, son unos comandos super largos, Jorge seguro que no hay nada para mejorar esto, pues sí, hay una cosa que se llama Docker compose, si instaláis desde Linux, la tenéis que instalar aparte, si instaláis con el instalador de Docker para Windows o para Mac, ya viene instalado, la idea de Docker compose es un orquestador muy sencillito para Docker, un orquestador significa que tenemos una aplicación que se encarga de gestionar todos estos parámetros que veíamos del Docker, que si los puertos, que si los enlaces de red entre los contenedores, que si los volúmenes que monto, todas estas cosas pues aprenderse o recordar todos esos comanditos es un coñazo, las podemos definir en un fichero, en Jamel, porque hoy todo el mundo le gusta Jamel, y entonces pues hacer Docker compose app, que veremos luego y se ejecuta todo, entonces pues nada, para automatizar todo un poquito más creamos este ficherito que se llama Docker compose.jamel y pues tiene esta pinta, le decimos version 3 que es la última y definimos los servicios que vamos a tener, vamos a tener una base de datos y un WordPress y luego tenemos un volumen que lo llamamos DBData, dentro del DB me defino pues la base de datos, utilizo Maya SQL y esto de los dos puntos son las versiones, las imágenes de Docker les podemos dar tags que se utilizan para crear diferentes versiones, entonces yo aquí le estoy diciendo que me utilice la versión 5.7 de Maya SQL y no otra, para que comprobar un poco la reproducibilidad de toda esta configuración, le estoy diciendo que ese volumen que se llama DBData me lo monte allí donde se guarda la base de datos, que cada vez que se reinicie Docker el equipo, el contenedor se arranque de nuevo y luego pues le estoy generando, le estoy pasando toda esta configuración a través de usuarios de entorno, le estoy dando el password de root, le estoy diciendo que creé una base de datos y luego que cree un usuario con privilegio solo en esa base de datos que se llame user con contraseña password, y luego le estoy diciendo que me monté un WordPress y le digo mira el WordPress no lo arranques hasta que la base de datos no esté disponible porque si no, pues no va a funcionar, utiliza WordPress y siempre la última versión, tengo dos sentimientos encontrados en utilizar esto de latex porque la gente puede acabar con diferentes versiones, pero bueno, pongamos ahí latex, es ponemos los puertos, es decir lo que está en el puerto 80 dentro del contenedor, ponmelo en mi equipo en el 8000, reinicia todo el rato y montame el directorio que se llama Vipi content de mi equipo, que es donde está todo de WordPress ahí dentro, en bar 3w, html, vipi content, para que ya tengamos ahí todos los plugins, todas esas cositas que voy instalando fuera y luego le dices pues donde te conectas a la base de datos, te conectas a la base de datos que se llama DB, si os recordáis habíamos llamado la base de datos DB en ese puerto con ese password y esa contraseña y esto ya está listo para funcionar, si ejecutamos Docker compose, app se levanta, con ps vemos los contenedores ejecutándose, con kill matamos un contenedor, con logs vemos los logs de un contenedor, si queremos ver por ejemplo los logs de Apache de cómo llegan las peticiones lo veremos ahí, si queremos warrear pues Docker compose exec, bin bash y ya estamos dentro pues para ver cosas, entonces fijaros volvemos aquí, que no incluye el fichero entero, pero imaginaos la potencia de esto, con un fichero de 15-20 líneas, acabo de automatizar con la configuración, el despliegue, todo el funcionamiento de mi entorno de WordPress, o sea llega una persona nueva al equipo le digo todo, ponte bajate este fichero, haces Docker compose app y ya tienes todo lo que necesitas para empezar a trabajar funcionando, lo goberemos que incluso hay gente que utiliza esto en producción, la potencia de esto es brutal, lo que agiliza es maravilloso, pero todavía hay herramientas que nos van a hacer la vida más fácil y una de que descubrí no hace mucho y que me ha encantado es vip local docker, vip local docker es como el todo en uno, básicamente es una herramienta un wrapper alrededor de Docker, de Docker compose que tiene todo esto automatizado, vale, entonces quien quiera hacer cosas un poco muchas cosas con poca complejidad, es una buena herramienta, la gente que prefiera tener más control de cómo se ejecutan las cosas pues casi es preferible que os escribáis vuestro Docker compose, pero si queréis montar cosas complejas de una forma rápida y ágil es muy buena idea, te despliega WordPress y te despliega mysql, te permite tener varios entornos si estáis desarrollando WordPress porque nos dedicáis a ello, vais a estar saltando de una instancia a otra de WordPress todo el rato y si utilizáis Docker compose pues seguramente lo queráis es tener un Docker compose.yaml en el repositorio git o en la carpetita donde tengáis cada proyecto, pero vip local docker pues te automatiza crear todos los directorios y switchar de un entorno a otro más fácilmente, pero si además tenéis pues unos WordPress bastante espeludos que tienen memcache de que tienen elastic search para hacer búsquedas pues también te despliega o te automatiza el despliegue de estos servicios y además pues te mete cosas como el PHP MyAdmin, el PHP Memcache Admin que sirve para gestionar pues la base de datos esa de memcache de clave valor para cacher milcatcher que no sé si lo conocéis conocéis milcatcher, sí no pues milcatcher es una aplicación mucho ras pero muy útil que básicamente es un servidor de correo con interfaz web que todos los correos que recibe los acepta y los muestra ahí en un webmail sin contraseña ni nada para qué sirve esto pues para validar para testear para ver todos los correos que envía nuestro WordPress vale en vez de tener que poner una cuenta de Gmail, configurar un relay en el WordPress y hacer cosas chungas tú instalás el mailcatcher, recoger a todos los correos sin ninguna autentificación, sin nada de eso con lo cual muy guay y luego también te instala vp snapshots y vp CLI, conocéis estas herramientas? ok pues vp CLI que es un poco lo que conocen por aquí es una herramienta modo línea de comandos para hacer muchas cosas en WordPress actualizarán la nueva versión, instalar un plugin, cambiar de determinada configuración con lo cual te permite automatizar cosas sin tener que hacer clic aquí o clic allá o sin tener que restaurar la base de datos con esa configuración entonces pues bueno es muy útil para llamarlo desde nuestro docker compose o desde el docker file y pues automatizar cosas, vp snapshots conocéis un plugin que se llama duplicity podría ser algo así que básicamente te copia o te clona una instancia de WordPress con base de datos y ficheros, ¿cómo? duplicator, eso es correcto, vale pues es básicamente es un duplicator pero que guarda toda la información en ws, vale con lo cual pues es un poco en vez de tener nuestro repositorio de git con los ficheros y tener que automatizar un poco un docker compose y tal si no tenéis nada de eso pues existe una cosa que se llama vp snapshots que te pone los fichos estáticos en s3 y la configuración en dinamodeevi de amazon y te la gestiona ahí, bueno herramientas más complejas para automatizar todos estos procesos la idea es que básicamente podemos montar un WordPress que te quedas de complejo, no sin tener ni puta idea de lo que estás haciendo y lo vamos a comprobar aquí, básicamente ejecutamos esto se llama 10 app que es creo que es una consultora que hacen muchas cosas con docker y hicieron este projecto como opensource entonces tú le dices create y le dices pues nada dime el nombre del sitio pues le pongo aquí el WordPress este de mi mujer que vende ropa por internet así que le puedes también echar un vistazo spam subliminal durante mi charla prometí que le iba a hacer y bueno pues si querés poner más dominios hay que ver si en dphp vas a utilizar, si necesitamos el hostil search, si instalamos WordPress, si utilizamos single site o multi site, si borramos las cosas por defecto, tal pues un poco de configuración vale y después de esto, plack, esto hace su trabajo y bueno no lo he mostrado antes pero esto es un poco el mismo output que cuando hacéis docker compose app pues es esto, genera un poco los diferentes servicios con su propio dns, un gateway por aquí el milkhatcher que eso hablaba antes tienes el fichero ese pero y te lo genera todo aquí, copia el WordPress que le instala con vpcli, general config, te instala los plugins, los themes, widgets, todo lo que quieras ahí super automatizado y ya está listo entonces esto es la leche para cuando te reinstalas el portátil o viene alguien de nuevo a la equipo o suicheas entre proyectos e imaginar haces vpi local tal lo ejecutas y ya tienes todo tu entorno generado vale de nuevo las sintaxis de los comandos pues súper fácil intuitiva como antes de delete para borrar lo stop, start, restart, shell para entrar logs para ver los logs y bueno y podéis ejecutar los comandos de vpcli directamente desde vuestro host también o sea si tú quieres hacer un search and replace en tu base de datos porque cambias el dominio pues haces así o si tienes un multisite y quieres listar los sitios pues haces vpi site list vale es un proyectito que automatiza encima del docker compose y docker compose exec para llamar a vpcli vale pues hemos visto como montar desde desde esos docker runs que hemos visto al principio hemos visto docker compose para automatizar un poco más teniendo control y luego hemos visto esta otra herramienta para automatizar todo un poco así que ya hemos desarrollado después de unas semanas de duro trabajo nuestro sitio de WordPress y lo queremos poner a producción vale y aquí tenemos pues varias opciones que nos lo hoste alguien y ya está y nos olvidamos pero si no lo queremos hostear nosotros y queremos utilizar docker que es una muy buena idea podemos utilizar este mismo entorno que hemos utilizado en desarrollo para ejecutar la producción podemos tener nuestro servidor con linus lo que más rabios de Ubuntu, Debian, Red Hat, Fedora o lo que sea y tener docker instalado y el mismo docker run que hacíamos en nuestra máquina lo hacemos en el servidor funciona igual podemos hacerlo con docker compose si queremos automatizar un poquito esta herramienta que vivíamos ahora el vpi local docker no es una buena idea para para la producción porque en producción queremos pues toquitear un poco más parámetros entonces pues quizás podemos copiar el docker compose.yaml que nos genera ese wrapper pero en producción es mejor controlar las cosas y no dejar tanta magia negra por detrás y si ya tenemos unos despliegues de WordPress de la leche pues podemos utilizar cobernetes ahora veremos uno de los trucos a una de las dificultades que os vais a encontrar en cuanto empecéis a desplegar esto en producción quizás hay un desarrollo pero seguramente en producción es quiero personalizar cosas y no tengo ni idea porque Jorge me acabas de decir que todo lo que modifico dentro del contenedor cuando se muere desaparece entonces yo quiero que mis cambios de configuración sean persistentes teníamos una opción que es construir mi contenedor personalizado con el from en el docker en el docker file que habíamos visto antes y hacer from mysql y luego hacer runs copies tal y personalizar las cosas pero habría que reconstruir la imagen cada vez que actualizan la imagen maestra con lo cual es poco ágil podemos inyectar opciones de configuración dentro como esto pues por ejemplo yo le he metido aquí mira un typo me he dejado aparte de montar mi directorio de datos pues monto aquí un fichelito de personalización del mysql donde aumentó el tamaño de la cacha y cuatro chorradas más para workpress pues nada aparte de montar mi contenido a mi vp content pues también he metido un uploads punto ini al php donde cambia y el tamaño del post y todas esas cositas a la patch le he puesto una configuración el server status para poder monitorizar y luego el ht acces de workpress por defecto no me gusta y he tocado cuatro cosas y la he montado así vale se utilizando volúmenes puedo sobre escribir lo que haya originalmente en la imagen y poner las cosas que a mí me gustan y es vale vale pero ojo yo necesito un poco más de control necesito ver es poner esto en determinadas ip es poner mis certificados ssl poner las cosas guais en producción pues bueno para eso hay una herramienta que se llama traefic que es como un proxy que pues no hace nos hace los balancers nos hace ssl y tal y con workpress funciona súper bien y de nuevo tenemos un montón de magia negara porque de repente puedo poner una serie de etiquetas o labels a mi contenedor y el señor este traefic las valer y va a regenerar su configuración automáticamente en base a estas labels pues yo le puede decir mía esto se llama workpress por debajo y en estos en estos dominios está expuesto me generas esa redirección y está en esta red vale y entonces luego yo me despiergo el traefic como esto vale que veis ahí que se conecta al socket de docker y automáticamente ya me genera el el load balancer que tengo delante me pone https con les en creep o los certificados que hemos comprado si ha sido el caso con lo cual me gestiona toda esa capa más de más de frontend o de el endpoint de producción con lo cual eso que podría ser esa parte que podría de configuración que podría ser distinta entre desarrollo y producción pues está aislada y en otro servicio que se llama traefic y funciona muy igual copias de seguridad pues también las podemos ejecutar en un docker containers vale aquí hay un a mí este es uno que me gusta que se llama es un proyecto que se llama de itch y que se llama maya secule backup que yo le doy dónde está mi asedatos y cada vez que lo ejecuto esto pues me hace un backup de asedatos sin tener que preocuparme más y esto me lo defino también en el docker compose con lo cual pues también lo tengo todo metido así que hemos visto que con docker docker compose resuelvo muchos problemas y muchos habéis ha ido ha ido a hablar de cubernetes y cubernetes estaba súper bien y podemos hacer un montón de cosas y podemos orquestar mucho más allá de lo que hace docker compose pero realmente no intentéis matar moscas a cañonazos yo soy súper fan de cubernetes y lo utilizo para un montón de cosas y desarrollado en cubernetes y creo que nadie debería meterse en cubernetes si no si no lo necesita realmente cuando podemos necesitar cubernetes bueno si estamos trabajando en una organización grande que quiere estandarizar cómo desplegar las aplicaciones si necesitamos alta disponibilidad si necesitamos un cluster para gestionar tanto tráfico y tanta carga si tenemos una organización que tiene muchísimos warps y hay diferentes equipos que tienen diferentes sitios de warps o sea organizaciones muy grandes vale cubernetes te permiten hacer muchísimas cosas con contenedores pero también el nivel de complejidad añadido no es despreciable es una nueva capa de infraestructura que vais a tener que aprender y controlar si queréis tenerlo es un producción que existe cubernetes fácil pues sí hay diferentes proveedores de hosting google aws amazon digital ocean y incluso otros pequeños que ya te ofrecen cubernetes gestionado con lo cual tú podrías desplegar tu warps en cubernetes sin tener que aprender toda la magia compose es como un docker compose pero para cubernetes y si no gel es como un package manager para cubernetes que te permite automatizar todas las cosas que necesitas maya se cuele warps y tal como me falta poco tiempo como me falta poco tiempo y creo que no iba a llegar supuesto un blog post que escribí el año pasado de cómo desplegar warps de forma perfecta en cubernetes utilizando gel echarle un vistazo si os interesa y como ya estamos casi al final cosas que deberíais recordar de esta charla número 1 que docker mola y está de moda pero bueno en la parte de utilizar tecnologías solamente porque están de moda entendamos por qué de verdad las vamos a utilizar nos facilita muchísimo el despliegue de los entornos de desarrollo nos facilita muchísimo la mudanza producción y lo que es muy importante en forcea no sé cómo se dice es un español o nos obliga a seguir buenas prácticas o sea no le dejamos a cada developer que diga así yo no te preocupes que yo me sí está esta larguer pres de puta madre y que cada uno se le instala como quiere y luego acabamos con unos frankstein que nadie puede gestionar si hemos estandarizado el proceso y lo hemos automatizado podemos hacer buenas prácticas de sistemas buenas prácticas de seguridad buenas prácticas de todo vale y bueno que esto creo que es lo que os quería contar hoy creo que ya hace cinco minutos faltaban cinco minutos pero hemos empezado tarde así que tenemos algunos minutos para preguntas si queréis y hay un micrófono no no no grab de mi que espera ahí hola yo usé hace dos dos años en un proyecto teníamos todo con docker compose nunca lo subía a pro porque me daba mucho caje pero la vez que me daba la vida porque efectivamente tenemos sin presiduras code entonces cualquier persona llegaba el equipo y luego lo que de lo que me enamoré fue de ansíbol precisamente que tú decías cómo que era un paso atrás o sea me ha parecido ver cómo como que decías que no vas atrás y para mí me ha dado una forma de tener el mismo inflexo el inflexo de las codes pero lo despliego en hierro que ya conozco y sé que no va a haber una movida ni me la voy a liar no entonces no sé hasta qué punto de cara a desarrollo local o sea desarrolló de en no productivo sino desarrollo que incluso en producción qué ventajas le ves a a docker a un a un docker compose o sea que cada cosa está en su propia máquina con su propia entidad de red etcétera cuando por ejemplo un workpress me atrevo a decir unos 90 de las veces la máquina puede tener tanto el enginx o el o el apache y la y el mysql en la misma máquina o sea qué ventajas le ves quizás más agua futuro o bueno un poco para comparar ansible o cualquier configuración maíz en software a pet chefe el que sea ver sus docker tiene algo en común que es que automatizamos el despliegue vale me da lo mismo automatizar es el despliegue en un hierro que en una máquina virtual ligera que es un contenedor la diferencia es que cuando tú despliegas en un hierro si luego si luego guarreas si luego haces una actualización y al día se rompe si haces un cambio y luego te arrepientes y estás ahí atascado sabes no no hay una capacidad de hacer rollback a no ser que se tenga super controlado lo que has tocado y no siempre es el caso con los contenedores el tema de la volatilidad que decíamos antes que tú matas el contenedor y todo se destruye es de hecho una buena feature porque nos fuerza a seguir las buenas prácticas de declarar todo y nos fuerza a tener siempre un estado limpio porque un contenedor está preparado para matarse en cualquier momento y volver a crearlo de nuevo con lo cual para mí desde un punto de vista práctico las diferencias entre de automatizar con ansible en hierro versus automatizar en en docker sería es al tener la capacidad de mover las cosas de un sitio a otro y de reproducir y mantenerlo limpia todo todo el tiempo si de hecho puedes utilizar de hecho pues existe la posibilidad tanto de generar docker files que veíamos antes eso del from con los runs y tal utilizando ansible con lo cual con ansible genera tu imagen y también es posible con ansible e hacer la orquestación lo que veíamos con docker compose que me genera un contenedor por aquí con una cosa y otro contenedor por allá con otra cosa ansible también puede orquestar de una forma sencilla no más preguntas