El canal de YouTube conocido como Honeypot ha producido excelentes documentales que exploran diversas tecnologías modernas desde la perspectiva de sus creadores o personas clave en su desarrollo. En esta ocasión, nos adentramos en «Kubernetes: el documental», una obra dividida en dos partes de quince minutos cada una, que nos sumerge en el origen y la expansión de esta tecnología fundamental, la cual ha revolucionado los despliegues en la nube.

Primera parte de Kubernetes: el documental

La primera parte del documental comienza sobre el como fue la creación y popularización de Docker, cómo los contenedores permitieron impulsar el concepto de nube y la problemática en ese momento que llevó a la creación de un orquestador de contenedores bajo una licencia similar a la de Docker.

Esta parte me parece interesante porque los programadores que aparecen, nos dan una introducción a la creación de Kubernetes cuando ni siquiera tenia nombre oficial. Cómo fue el proceso de convencer a los líderes internos de Google para invertir en este proyecto y garantizarles que al ser de código abierto no estuviesen ayudando a la competencia, entre otros. La creación del logo y muchos mas detalles que no recuerdo que sean conocidos fuera de Kubernetes: el documental.

YouTube Video

Segunda parte del documental

En esta parte se adentra en el proceso de maduración y lanzamiento de Kubernetes. Cómo fue el proceso de Google para liberar esta aplicación, como integrar varias tecnologías internas que poseían y la competencia de Kubernetes con Apache Mesos.

Es interesante porque esta parte de desarrollo interno no es muy conocida y este documental permite conocerlo directamente por medio de sus programadores, ver por qué hicieron ciertas decisiones y sus experiencias durante este etapa.

También se explora el surgimiento de la Cloud Native Computing Foundation (CNCF), detallando sus motivaciones y la formación de esta comunidad clave. El proceso de liberación de la tecnología se describe minuciosamente, desde el arduo trabajo de los empleados durante jornadas de 24 horas para cumplir con los plazos, hasta su participación en diversas conferencias para presentar la tecnología y recibir retroalimentación invaluable.

Estos son solo algunos de los fascinantes aspectos que aborda el documental «Kubernetes». Te invito a ver el video a continuación y descubrir por ti mismo todo lo que te he mencionado.

YouTube Video

Te recomiendo verlo por cultura general y saber la historia de donde vienen las cosas. Luego de ver «Kubernetes: el documental» imagino que te animarás a hacer tu propio proyecto o migrarlo a la nube si no lo has hecho.

Recuerda compartir esta entrada si te gustó, deja un comentario para expresar tu opinión o añade cualquier información que consideres necesaria.

La entrada Kubernetes: el documental se publicó primero en El blog de Skatox.

Desde hace un par de años, se libera una versión de PHP cada año y por lo tengo para estar al día, es recomendable estar actualizando el código para que sea compatible con futuras versiones. Si utilizas alguna herramienta de contenedores como Docker y tienes tu stack armado allí tarde o temprano tienes que cambiar de versión. Pero si usas PHP en laradock, el proceso es muy fácil como puedes ver.

Cambio de versión de PHP en laradock

El primer paso es ir a la carpeta raíz de Laradock y buscar el archivo de variables de entorno llamado .env. Ábrelo con tu editor de textos favorito y buscar la variable de entorno denominada PHP_VERSION y escribir la versión deseada, por ejemplo:

PHP_VERSION=8.2

Reconstruir imágenes

Luego debes volver a construir los contenedores de php-fpm que es el que procesa el código PHP en laradock y el de workspace para poder ejecutar scripts de PHP como composer, phpcs, entre otros.

docker-compose build php-fpm
docker-compose build workspace

Luego para que los cambios tomen efecto, debes reiniciar los contenedores. En mi caso como uso un stack LAMP sería:

docker-compose down
docker-compose up -d nginx mariadb phpmyadmin workspace

Comprobar que la versión de PHP en laradock es correcta

Y finalmente ya todo debería estar en la versión definida. Para comprobar, puedes crear un archivo .php con la función php_info() por dentro para imprimir todos los datos de la versión. Para el caso del workspace puedes ejecutar: php –version y ver la versión instalada.

Finalmente, espero que te sirva y puedas usar PHP en laradock con la versión que desees. Si necesitas volver a la versión anterior, simplemente edita de nuevo el archivo .env y comienza de nuevo.

La entrada Cambiar la versión de PHP en Laradock se publicó primero en El blog de Skatox.

Docker es una gran tecnología que nos permite correr los servicios en contenedores. De esta forma podemos aislar y manejar mejor nuestros entornos de desarrollo y producción. Hace unos meses tenía un contenedor de docker con Nginx corriendo código en PHP y necesitaba agregar un certificado de seguridad. Pero no sabia como hacer para instalar Let’s Encrypt en la imagen sin modificarla para poder generar los contenedores.

Descubrí que existe una versión oficial para Docker. Con ella podemos ejecutar el comando certbot que se encarga de validar y generar los certificados para nuestro dominio web. Parte del proceso consiste en subir un archivo generado a la raíz del servidor web para que el servicio de Let’s Encrypt puede acceder remotamente y así validar que el dominio es nuestro. Pero por la naturaleza de los contenedores, es como complicado hacer que certbot suba archivos al contenedor del servidor web.

La solución para ello es utilizar volúmenes. Abrimos certbot y le indicamos que la ruta a subir el archivo sea la carpeta que se monta como volumen en el servidor web.

Docker + Let's Encrypt = Amor
Puedes combinar estas tecnologías para hacer sitios mas seguros.

Generar el certificado con el contenedor de Let’s encrypt

Para ello, puedes ejecutar el siguiente comando. Lo que hace es decirle a docker que ejecute el comando de generación de certificados en las carpetas deseadas para el dominio definido y lo haga dentro de la imagen certbot/certbot que ofrece let’s encrypt. Recuerda agregar este comando al cron para que se ejecute por lo menos semanalmente o cada 3 días (me parece exagerado hacerlo diariamente)

/usr/bin/docker run -it --rm -v /CARPETA_CON_LOS_CERTIFICADOS:/etc/letsencrypt -v /CARPETA_SERVIDOR_WEB:/app certbot/certbot certonly -a webroot --webroot-path /app -d MI_DOMINIO

Recuerda sustituir en este comando las siguientes variables:

  • CARPETA_CON_LOS_CERTIFICADOS es la carpeta donde se van a guardar los certificados generados. La configuración de tu servidor web debe apuntar a este lugar.
  • CARPETA_SERVIDOR_WEB es la carpeta raíz del dominio dentro del servidor web. Es decir si subes un archivo llamado test.txt debería estar visible en midominio.extension/test.txt . De esta manera certbot puede subir el archivo que permite confirmar que eres dueño del dominio a asegurar con certificado.
  • MI_DOMINIO es el dominio público para el cual se crearán tus certificados de seguridad.

Configurar el servidor web para usar los certificados

La aplicación Certbot de Let’s encrypt tiene un comando para auto-configurar los servidores web donde esta funcionando. Debido a que estamos un contenedor para Let’s encrypt y otro para el servidor web. No habrá comunicación directa entre ello, por lo que recomiendo actualizar la configuración manualmente, en mi caso, para una pagina hospedada con nginx la sección es la siguiente:

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/MI_DOMINIO/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/MI_DOMINIO/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

Luego de esto, debes reiniciar el servidor web (en mi caso aprovecho y reinicio el contenedor del servidor para liberar memoria) y ya deberías tener tu dominio con el certificado web generado por let’s encrypt.

¡Ahora puedes disfrutar de un sitio web mas seguro!

La entrada Como usar Let’s Encrypt (versión de Docker) junto a un servidor web corriendo en Docker se publicó primero en El blog de Skatox.

Hace unas semanas tuve la oportunidad de participar en el WordCamp de Cochabamba 2021. En ella hablé por primera vez de Docker y como utilizarlo con WordPress. Para quienes no conocen Docker, es una herramienta que permite trabajar con contenedores, una tecnología para encapsular las aplicaciones junto a su entorno de ejecución (podemos verlo como una proceso que por dentro tiene Linux y mas aplicaciones corriendo sobre él).

En el caso de WordPress, podemos encapsular en un contenedor una instalación de WordPress junto un servidor MySQL, Nginx con versiones específicas. Así cuando ejecutemos ese contenedor en producción, en el ambiente local o desarrollo; van a poseer la misma versión y el mismo software así que nos podemos concentrar solo en el desarrollo de WordPress.

¿Por qué usarlo?

Una de las ventajas es que se encarga de la configuración e instalación de las capas inferiores de una aplicación. En el caso de WordPress, no nos preocuparemos si la versión de PHP o MySQL instaladas en el ámbito de desarrollo son diferentes al del entorno de producción. Por lo que podemos programar a una versión específica del lenguaje sin que falle posteriormente. Otro uso es poder intercambiar esas capas inferiores fácilmente y así probar un tema o plugin que hemos desarrollado, en diferentes versiones de PHP o de WP y comprobar compatibilidad.

Arquitectura de varias instalaciones de WordPress con distintas versiones de MySQL usando Docker
Ejemplo de como puedes usar Docker para correr un plugin en instalaciones de distintas versiones de WordPress

En fin, hay un montón de usos que podemos hacer pero mejor mira mi charla sobre el tema. Aprenderás todo lo necesario para iniciarte en poco tiempo.

Mi charla sobre WordPress y Docker

Esta es la primera vez que doy la charla en un WordCamp. En esta charla explico las bases teóricas de Docker, cómo aplicarlo para un instalación de WordPress, ejemplos y escenarios de como usarlos. Por ejemplo, si quieres probar un código con varias versiones de WordPress al mismo tiempo, en el vídeo puedes ver hacerlo y así ahorrar tiempo.

Si deseas saber todo eso, te recomiendo ver el video sobre Dockeriza tu flujo de desarrollo con WordPress y aprende a iniciarte con esta tecnología.

Si te gustó, recuerda compartirlo con otras personas para que todos aprendamos a mejorar nuestras habilidades. También puedes dejar tu comentario si deseas agregar algo al contenido o si tienes una duda.

¡A estudiar contenedores!

La entrada WordPress y Docker: Mi charla del WordCamp Cochabamba 2021 se publicó primero en El blog de Skatox.