UNIVERSIDAD TÉCNICA DE MANABÍ
FACULTAD DE CIENCIAS INFORMÁTICAS
CARRERA DE TECNOLOGÍA DE LA INFORMACIÓN
MATERIA
DESARROLLO DE APLICACIONES WEB
TEMA
Microservicios
DOCENTE
Ing. Edison Solorzano Solorzano
ESTUDIANTE
Millet Rodríguez Jean
Diciembre 8, 2023
Universidad Técnica de Manabí
Docker
Docker es una plataforma de código abierto que simplifica el despliegue de
aplicaciones al encapsularlas en contenedores. Un contenedor Docker es una unidad
estándar de software que incluye todo lo necesario para ejecutar una aplicación: código,
bibliotecas, herramientas y configuraciones. Funciona mediante la virtualización a nivel
de sistema operativo, permitiendo que las aplicaciones se ejecuten de manera aislada y
consistente en cualquier entorno. Sus ventajas incluyen portabilidad, eficiencia en
recursos, rápida implementación y gestión simplificada. Sin embargo, puede presentar
desafíos de seguridad si no se configura correctamente. Docker se utiliza ampliamente
en el desarrollo ágil, la creación de entornos de pruebas, la implementación de
microservicios y la orquestación de contenedores en entornos de producción a gran
escala. (Carolina, 2023)
Kubernetes
Kubernetes es una plataforma de código abierto diseñada para automatizar la
implementación, escalado y gestión de aplicaciones en contenedores. Ofrece un entorno
robusto para coordinar múltiples contenedores Docker o de otro tipo, permitiendo la
administración eficiente de cargas de trabajo en entornos distribuidos. Funciona
mediante la organización de contenedores en clústeres, proporcionando herramientas
para la automatización de despliegues, escalado dinámico, administración de
almacenamiento y auto-recuperación. Sus ventajas radican en la escalabilidad, la alta
disponibilidad, la portabilidad y la capacidad de actualización sin interrupciones. Sin
embargo, su complejidad puede representar una curva de aprendizaje inicial para los
usuarios. Kubernetes se utiliza ampliamente en entornos de producción para orquestar y
gestionar aplicaciones en contenedores, ofreciendo una base sólida para la
implementación de arquitecturas de microservicios y la gestión eficiente de cargas de
trabajo en la nube. (Kubernetes, 2022)
Instalación de Docker y Kubernetes
Visitamos el sitio web oficial de Docker y descargamos la versión adecuada para
nuestro sistema operativo.
Universidad Técnica de Manabí
Seguimos las instrucciones del instalador descargado:
En Docker Desktop, en la opción "Kubernetes" habilitamos la opción “Enable
Kubernetes”. Esta opción te permite activar o desactivar la funcionalidad de Kubernetes
en Docker Desktop. Cuando está habilitada, Docker Desktop inicia un clúster de un solo
nodo de Kubernetes cuando arrancamos Docker.
Universidad Técnica de Manabí
Utilizamos los comandos docker ps y kubectl get nodes en el PowerShell.
docker ps: Es útil para ver qué contenedores están actualmente en marcha, así
como para obtener información detallada sobre ellos, como su ID, la imagen que están
utilizando, el estado, los puertos expuestos y sus nombres. Este comando es esencial
para el monitoreo y la gestión de contenedores Docker locales. (keepcoding, 2022)
kubectl get nodes: Este comando pertenece a Kubernetes y se utiliza para
obtener información sobre los nodos del clúster de Kubernetes. En lugar de mostrar
contenedores individuales, muestra los nodos disponibles en el clúster, indicando su
estado, roles (como nodos de control o de trabajo), tiempo de actividad (AGE), y la
versión de Kubernetes que están ejecutando. Es útil para verificar el estado y la
disponibilidad de los nodos en el clúster. (Portillo, 2023)
Universidad Técnica de Manabí
Creación de un servicio
Abrimos el terminal y creamos un nuevo directorio para el microservicio, por
ejemplo: mkdir microservicio. Ingresamos al directorio recién creado: cd microservicio.
En el directorio podemos agregar el código fuente, archivos de configuración y
cualquier otra dependencia necesaria para el servicio.
Dockerizar el servicio
Utilizamos un editor de texto para crear un archivo llamado Dockerfile en el
directorio del microservicio y definimos los pasos para construir la imagen del
contenedor. Por ejemplo:
Iniciamos sesión correctamente en Docker Hub utilizando el comando docker
login en el terminal y proporcionando las credenciales de Docker Hub.
Ejecutamos el comando docker build -t jeanexe/imagen1:latest .para construir la
imagen del contenedor.
Universidad Técnica de Manabí
Una vez que la imagen a sido construida con el tag correcto, podemos realizar el
docker push para subirla al repositorio en Docker Hub
Definir recursos de Kubernetes
Creamos un archivo de configuración YAML con el nombre deployment.yaml,
en el directorio del microservicio y definimos los recursos de Kubernetes necesarios
para desplegar tu microservicio.
Ejecutamos el comando kubectl apply -f deployment.yaml para desplegar el
servicio en el clúster local de Kubernetes.
Verificación
Usamos kubectl get pods para obtener una lista de pods desplegados.
Universidad Técnica de Manabí
Universidad Técnica de Manabí
CONCLUSIONES
La implementación de microservicios a través de Docker y Kubernetes ofrece
una arquitectura flexible y escalable para el desarrollo y despliegue de aplicaciones.
Esta combinación permite la modularidad, facilitando la gestión independiente de
componentes, y brinda una mayor eficiencia en el despliegue y escalabilidad. La
separación de servicios en contenedores con Docker y su orquestación con Kubernetes
han demostrado ser fundamentales para la gestión de aplicaciones complejas en
entornos de producción.
RECOMENDACIONES
Para maximizar el potencial de los microservicios con Docker y Kubernetes, es
esencial implementar un sólido conjunto de prácticas. Se recomienda priorizar el
monitoreo continuo del rendimiento y la salud de los servicios desplegados, además de
establecer estrategias de seguridad robustas, incluyendo políticas de acceso y
encriptación de datos. La automatización de pruebas y flujos de implementación
(CI/CD) asegurará la calidad del código y la eficiencia en los despliegues. Asimismo, se
aconseja fomentar una cultura de colaboración y aprendizaje continuo para optimizar la
gestión y evolución de los microservicios.
Universidad Técnica de Manabí
BIBLIOGRAFÍA
Carolina, D. (26 de septiembre de 2023). hostinger. Obtenido de hostinger:
https://www.hostinger.es/tutoriales/que-es-docker
keepcoding. (25 de abril de 2022). Obtenido de keepcoding:
https://keepcoding.io/blog/como-usar-docker-ps/
Kubernetes. (17 de julio de 2022). kubernetes. Obtenido de kubernetes:
https://kubernetes.io/es/docs/concepts/overview/what-is-kubernetes/
Portillo, S. (23 de marzo de 2023). tutorialesit. Obtenido de tutorialesit:
https://tutorialesit.com/comandos-utiles-para-la-gestion-de-nodos-en-
kubernetes/#:~:text=kubectl%20get%20nodes%3A%20Este%20comando%20se
%20utiliza%20para,obtener%20informaci%C3%B3n%20detallada%20sobre
%20un%20nodo%20en%20particular.
Universidad Técnica de Manabí