
DevSecOps
Incorporo seguridad en cada etapa de la metodología DevOps, trabajando con Docker y Kubernetes para desplegar servicios y aplicaciones.
Docker
Docker es la base de infraestructura que utilizo para casi todo el despliegue de servicios y aplicaciones que desarrollo. Esto se debe a la facilidad de manipulación de servicios que ofrece sin comprometer la dependencia que tenga con otros sistemas.
Un ejemplo de como los utilizo en mi día a día es en la creación de laboratorios de prueba para practicar Hacking sobre servicios y aplicaciones vulnerables. Otro ejemplo es cuando necesito desplegar una instancia de N8N para Automatizaciones, ya sea en local o en un VPS en la nube. Este VPS por comodidad lo administro desde un panel de gestión como Easypanel o Dokploy, pero para configuraciones más detalladas lo hago desde la terminal.
Entre las caracter’siticas de Docker que más utilizo están:
- Descarga y subida de imágenes desde y hacia repositorios
- Inicio, reinicio, detención y borrado de contenedores
- Creación de imágenes personalizadas
- Importación y exportación de imágenes
- Gestión de redes y volúmenes
- Modificación de los recursos de un contenedor activo
Docker Compose
Es la forma en que Docker permite desplegar 1 o más servicios con sus configuraciones sin tener que lanzar un largo comando lleno de parámetros; y todo esto desde un archivo yaml
Personalmente es el que más utilizo por su capacidad de orquestar varios servicios a la vez; y no solo para DevSecOps sino también para Hacking en cuanto al despliegue de aplicaciones vulnerables.
Compose ofrece algunas características que son más cómodas de gestionar desde aquí como son:
- Configuración de redes y volúmenes
- Definir dependencias entre servicios
- Declarar variables de entorno
- Indicar políticas de reinicio
- Programar las healthcheck
- Asignar recursos del clúster
Docker Swarm
Es la solución nativa de Docker pensada para procesos en producción. Se encarga de temas como el escalado de recursos, balanceo de carga, alta disponibilidad y actualizaciones sin detener el servicio. Incorpora nuevos conceptos como los tipos de nodos (master y worker), así como la gestión de contenedores más como servicios en sí Es una solución realista para entornos no muy demandantes, pero para producción a mayor escala la más utilizada es Kubernetes.
Kubernetes
K8s es un nivel completamente distinto. Si bien Docker nos parecía de lo mejor, no nos damos cuenta de de lo limitado que es; sobre todo para entornos en producción. Uno de los términos más usado para describir K8s es que ‘es muy denso’ y es cierto. Trae consigo una gran cantidad de funcionalidades y conceptos nuevos que ciertamente es abrumador de primeras.
Tecnologías y herramientas