En cualquier desarrollo, lo normal es que no trabajes solo. De la misma manera, la integración de las diferentes partes suele ser… delicada 🙂 Si además le sumas que cada desarrollador necesita montarse su propio entorno de Kubernetes, esto puede llegar a ser todo un reto. Por todo ello, hoy te quiero hablar de Azure Dev Spaces, una funcionalidad gratuita dentro de tu servicio de AKS, que ayuda a los desarrolladores a trabajar con Kubernetes en un clúster compartido. De hecho, se puede depurar incluso sobre este entorno con Visual Studio Code y Visual Studio, por lo que es más sencillo reproducir escenarios que sólo ocurren en Kubernetes. Esta funcionalidad todavía está en preview.
Configurar Azure Dev Spaces
Si todavía no tienes tu clúster en Azure Kubernetes Service, puedes generar uno rápidamente siguiendo los pasos de este artículo. Ahora, para habilitar Azure Dev Spaces basta con lanzar el siguiente script:
#Variables
RESOURCE_GROUP="AKS-Demo"
AKS_NAME="gisaks"
#Enable Azure Dev Spaces
az aks use-dev-spaces -g ${RESOURCE_GROUP} -n ${AKS_NAME}
Al lanzar el comando az aks use-dev-spaces tendrás que aceptar los términos de uso, autorizar la descarga de un paquete, que nos habilitará el comando azds, se creará un controlador para Azure Dev Spaces para nuestro clúster, en el mismo grupo de recursos donde está ubicado este, y, por último, nos preguntará qué espacio de desarrollo queremos usar. La primera vez solo tendremos uno, por lo que seleccionamos ese.

Probando Azure Dev Spaces
Ahora vamos a probar nuestro espacio de desarrollo en Kubernetes con una aplicación muy simple. De hecho, voy a reutilizar la misma que usé cuando empecé con Docker. En una carpeta, crea un archivo llamado server.js con el siguiente contenido:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.listen(80, function () {
console.log('Example app listening on port 80!');
});
Ahora crea otro archivo, index.html, con el contenido a mostrar en la web:
<!DOCTYPE html>
<html>
<head>
<title>Hello World from Node.js</title>
</head>
<body>
<h1>Hello World from a container!</h1>
</body>
</html>
Ejecuta npm init para iniciar el proyecto de Node.js e instala el módulo express:
npm init -y
npm install express
Ahora necesitas preparar tu aplicación para poder subirla a tu espacio. Lanza el siguiente comando para generar los archivos necesarios:
azds prep --public
Lo que hace es generar de manera automática los archivos DockerFile y .dockerignore, el archivo azds.yaml y charts para el gestor de paquetes Helm.

Ahora ya tienes tu aplicación lista para subirse a Azure Dev Spaces. El último comando que necesitas lanzar es el siguiente:
azds up
Con ello se subirá tu aplicación y te devolverá una URL a través de la cual podrás acceder a tu aplicación.

Si quieres actualizarla basta con hacer los cambios que necesites y volver a ejecutar azds up de nuevo.
Para listar todas las aplicaciones que se están ejecutando en Azure Dev Spaces puedes usar el comando azds list-up.

Nota: puedes comprobar que estas aplicaciones son pods en Kubernetes a través del comando kubectl get pods.
Si quisieras crear otro espacio diferente puedes usar el comando azds space select y escribir el nombre que quieres para dicho espacio.

Para listar todos los que tenemos disponibles puedes usar azds space list.

Nota: los espacios son en realidad namespaces dentro de Kubernetes. Compruébalo a través del comando kubectl get namespaces.
¡Saludos!

Bootcamp DevOps
Si tienes ganas de meterte en el área de DevOps, formo parte del
equipo de docentes del Bootcamp DevOps Lemoncode, ¿Te animas a
aprender con nosotros?