Mostrando entradas con la etiqueta devops. Mostrar todas las entradas
Mostrando entradas con la etiqueta devops. Mostrar todas las entradas

lunes, 25 de agosto de 2025

Docker: la herramienta para empaquetar nuestras aplicaciones

 

Docker es la herramienta ideal que nos permite empaquetar nuestras aplicaciones. Gracias a la filosofía de los contenedores, los cuales son entornos aislados para nuestro código. Estos contienen todo lo necesario para que nuestro código (aplicaciones) e ejecuten en cualquier otro sistema. Olvidémonos de las máquinas virtuales, de los requerimientos engorrosos, de las instalaciones y dependencias. Con Docker se nos abre un mundo donde el desarrollar, enviar y ejecutar aplicaciones es algo sencillo.

Docker ofrece:

  1. Portabilidad de nuestras aplicaciones.
  2. Aislamiento, cada contenedor es independiente.
  3. Consistencia, no hay errores.
  4. Escalabilidad, podemos actualizar o extender nuestros desarrollos.
  5. Construir e implementar más fácilmente.
En este blog ya hemos hablado sobre esta herramienta que se ha vuelto muy popular en los últimos años. Así como su relación con Kubernetes. Y es que ambas herramientas son indispensables en el mundo del Devops y Cloud.

En esta ocasión veremos cómo instalarlo en un entorno Windows.

Para descargarlo debemos ir al sitio oficial:

En la sección https://www.docker.com/products/docker-desktop/  descargaremos Docker Desktop. Esta es una aplicación que nos permitirá instalar Docker en nuestras máquinas. Para sistemas operativos Mac OS, Linux y Windows.

Nosotros usaremos un instalador de Windows.

Una vez teniendo el ejecutable y dando doble clic iniciará la instalación.


Le daremos OK.

Nota: En SO Windows debe estar habilitada la opción de virtualización. Puedes checar este vídeo: https://www.youtube.com/watch?v=Tl4kODRGtIc




Además tendrás que tener habilitada la característica de Microsoft Hyper-V.


Volviendo a la instalación.




Cuando finalice la instalación deberemos reiniciar.

Deberás tener una cuenta en https://hub.docker.com/ para poder iniciar o crear una nueva si es que no la tienes.

En caso de que salga un error de tipo WSL abre una terminal y escribe:
$ wsl --update

Esto instalará el subsistema de Windows para Linux y se reiniciará el Docker Engine.


¡Instalación finalizada!

Con esto tendremos Docker en nuestra máquina.

Enlaces:

sábado, 16 de agosto de 2025

Helm, una herramienta para administrar paquetes Kubernetes

Helm es una herramienta software que nos ayuda a encontrar, compartir y usar software construido para Kubernetes.

Salvando las distancias es como un CPAN o cualquier otro gestor de paquetes.

Como hemos hablado en otros posts, Kubernetes es un gestor de contenedores que se encarga del mantenimiento, organización y la escalabilidad de nuestros contenedores (que pueden estar hechos o no con Docker). Helm vendría siendo su propio CPAN. Si se requiere un paquete para Kubernetes, esta herramienta la podrá buscar e instalar en nuestro ambiente. También podrá permitirnos agregar repositorios donde podremos descargar paquetes o compartir los nuestros.

Helm se une a las decenas (¿o centenas o quizás miles?) de herramientas DevOps que son populares hoy en día.

Esta herramienta requiere cierto conocimiento sobre herramientas como Docker y, por supuesto, Kubernetes.

La documentación oficial provee guías sobre su uso. Comandos de lo básico a lo avanzado y hasta ejemplos de cómo se debería usar.

Un concepto dentro de Helm son los Charts. Según la documentación oficial, los Charts de Helm te ayudan a definir, instalar y actualizar incluso la aplicación de Kubernetes más compleja. Originalmente, el objetivo de Helm era proporcionar a los usuarios una forma mejor de gestionar todos los archivos YAML de Kubernetes que creamos en los proyectos de Kubernetes.

¿Qué es un Chart Helm?

En pocas plabras, es un paquete que contiene toda la información necesaria para implementar una aplicación en Kubernetes.

Los Charts son fáciles de crear, versionar, compartir y publicar - así que puedes comienzar a utilizar Helm y deja de copiar y pegar.

Helm instala todo el árbol de dependencias de un proyecto si ejecuta el comando install para el gráfico de nivel superior. Sólo tiene que ejecutar un único comando para instalar toda su aplicación, en lugar de listar los ficheros a instalar mediante ``kubectl``.

Tampoco olvidar el ``config``, el cual contiene información de configuración que puede fusionarse en un chart empaquetado para crear un objeto releaseable. Y el ``release``, que es una instancia en ejecución de un chart, combinado con un config específico.

Estos son los tres conceptos que debemos tener presentes al usar Helm.

Instalando Helm

Requisitos:

  • Un clúster de Kubernetes configurado y accesible. 
  • Tener la herramienta ``kubectl` instalada y configurada para interactuar con el clúster. 
  •  Un entorno local con acceso a la línea de comandos.

Para instalarlo, puedes ir a este sitio y descargarlo:

https://github.com/helm/helm/releases/tag/v3.18.5

También existe la opción de instalarlo mediante con un administrador de paquetes como Homebrew, chocolatey , scoop o snap:

Homebrew:

$ brew install helm

Chocolatey:

$ choco install kubernetes-helm

Scoop

$ scoop install helm

Snap:

$ sudo snap install helm --classic

Una vez instalado en tu equipo deberás agregarlo a tu PATH. Para validar la instalación, abre una consola y escribe:

$ helm version

Podemos agregar un repositorio:

$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

Buscar un paquete:

$ helm search repo ingress-nginx

Actualizar el repositorio:

$ helm repo update

Continuando con la documentación oficial de Helm, nos ayuda a:

  • Nos permite crear nuevos charts (paquetes) desde cero. 
  • Empaquetar charts en archivos de charts (tgz). 
  • Interactuar con repositorios de charts donde se almacenan charts. 
  • Instalar y desinstalar charts en un clúster Kubernetes existente. 
  • Gestionar el ciclo de lanzamiento de los charts instalados con Helm.

En conclusión, Helm nos ayuda con la gestión de las aplicaciones de Kubernetes y es una herramienta que se ha vuelto esencial en gestiones de DevOps. Es necesario tener nociones semi avanzadas o avanzadas sobre Docker y Kubernetes si le queremos sacar un buen provecho a la herramienta.

Enlaces:

https://helm.sh
https://codemonkeyjunior.blogspot.com/2025/01/kubernetes-como-si-le-explicaras-tu.html
https://www.freecodecamp.org/espanol/news/que-es-un-helm-chart-un-tutorial-para-principiantes-en-kubernetes/
https://learn.microsoft.com/es-es/azure/aks/kubernetes-helm?WT.mc_id=containers-19838-ludossan

domingo, 2 de febrero de 2025

Diferencias entre Docker y Kubernetes

Debemos aclarar que:

Docker es una herramienta para crear y gestionar contenedores.

  • Una plataforma de contenerización. 
  • Empaqueta aplicaciones y dependencias en contenedores. 
  • Garantiza la portabilidad entre entornos. 
  • Ejecuta contenedores en un solo host. 
  • Se utiliza en procesos de CI/CD para la automatización de la implementación.

Pero, ¿Qué diantres es un contenedor? Digamos, en términos simples y sencillos:

Es como una pequeña casa portátil para un programa. Tendrá todo lo necesario para ejecutar un programa en otra máquina. Sin tener que preocuparse por la configuración de la misma.

Si solo vas a usar contenedores, con Docker es más que suficiente.

Si requieres algo más como escalabilidad, tendrás que usar Kubernetes.

Kubernetes, por su parte, nos ayuda a gestionar contenedores en producción.

  • Es un sistema de orquestación de contenedores. 
  • Gestiona aplicaciones en contenedores a escala. 
  • Maneja la implementación, el escalamiento y la red. 
  • Distribuye cargas de trabajo entre múltiples nodos. 
  • Optimizado para microservicios y aplicaciones nativas de la nube.

Con Docker podemos crear y ejecutar contenedores y con Kubernetes podremos organizar y administrar esos contenedores a escala. Ambos, Docker & Kubernetes, permiten flujos de trabajo escalables y resilientes de computación en la nube y DevOps.

Enlaces:

https://x.com/HeyNina101/status/1885951537525985333

domingo, 26 de enero de 2025

Devops: una filosofía de trabajo

Devops es una filosofía y un marco de trabajo que combina el desarrollo (Dev) y las operaciones (Ops) de software.

Su objetivo es alcanzar la mejor calidad del software.

Algunas de las metodologías que se usan son:

  1. Kanban: basada en asignación de roles y tableros.
  2. Scrum: una metodología basada en Sprints.
  3. Agile: un enfoque de gestión de proyectos de manera flexible.

Devops implica:

  • Una amplia colaboración de todos los equipos involucrados en un proyecto. 
  • La utilización de herramientas de automatización (Ej. Jenkins). 
  • La recopilación de datos de telemetría. 
  • Donde el cliente esta involucrado y es una parte esencial del equipo.
  • Diseño de pruebas y calidad de software.

Quien desee adentrarse al mundo del Devops tendrán que saber tanto de metodologías ágiles como de herramientas de automatización y pruebas.

Algunas herramientas que tendrá que usar y conocimientos necesarios son:

  • Ansible, para la automatización de la configuración de infraestructura.
  • Docker, para la contenedorización para consistencia entre entornos.
  • Jenkins, para automatización de builds, pruebas y despliegues
  • Kubernetes, para la orquestación de contenedores para escalabilidad y gestión.
  • Terraform, para definir y provisionar infraestructura de manera programática.
  • Conocimiento de Cloud Computing (AWS. Azure, GCP).
  • Manejo de repositorios de código.
  • Etc.

El desarrollador de software tendrá que cambiar su perpectiva y filosofía de trabajo para poder involucarse en el Devops.

Esos años de estar escribiendo código en un cubículo y apartado de todo el equipo involucado en la entrega de un proyecto ha quedado atrás. Quien ose permanecer en el pasado no podrá adentrarse al mundo del Devops.

Enlaces:

https://grupoaspasia.com/es/glosario/metodologia-kanban/
https://ausum.cloud/scrum-metodologia-agil-mas-popular-en-empresas/

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog