Despliegue de Microservicios con Kubernetes y GRPC en Google Cloud

8/20
Recursos
Transcripción

¿Qué es Kubernetes y cómo funciona en Google Cloud?

¡Hola a todos! Imagínense gestionar una aplicación moderna de manera eficiente, escalable y rápida. Hoy les hablaremos sobre Kubernetes, una herramienta clave para el manejo de contenedores en entornos híbridos y multinube. Especialmente, exploraremos el Google Kubernetes Engine (GKE) de Google Cloud, que hace posible desplegar aplicaciones complejas en minutos.

Kubernetes es esencial en entornos de aplicaciones distribuidas, y Google Kubernetes Engine es uno de los servicios más potentes para gestionarlo. ¿Listos para sumergirse en el mundo de los microservicios y la orquestación de contenedores?

¿Qué es la demo de microservicios?

Para invertirnos en el mundo de Kubernetes, utilizaremos una demostración práctica. Este proyecto se encuentra en GitHub bajo el nombre de Microservices Demo (también conocido como Online Boutique). Esta tienda en línea es un ejemplo práctico de cómo los microservicios pueden interactuar en un entorno Kubernetes.

Características de la Online Boutique

  • Composición de Servicios: La demo está compuesta de más de doce microservicios, cada uno encargado de una parte distinta del proceso de compra.
  • Interoperabilidad: Cada servicio está escrito en diferentes lenguajes de programación, lo que demuestra la interoperabilidad que ofrece Kubernetes.
  • Comunicación Protocolo GRPC: La comunicación entre servicios utiliza GRPC, un protocolo más eficiente que HTTP, especialmente diseñado para intercambios service-to-service.

¿Cómo se despliega una aplicación en Kubernetes?

Desplegar una aplicación en Kubernetes puede parecer complicado a simple vista, pero su potencial para automatización y eficiencia lo hace muy atractivo. Aquí te mostramos un ejemplo de cómo desplegar la Online Boutique desde Google Cloud Console.

Pasos para preparar el entorno

  1. Habilitar APIs necesarias: Antes de iniciar con el despliegue, asegúrate de habilitar el API de contenedores, monitoreo y otros servicios necesarios en tu proyecto de Google Cloud.

  2. Clonar el repositorio: Usa el comando git clone para tener localmente el código del proyecto y sus archivos de configuración.

  3. Crear un clúster en la nube: Con el comando de GCloud gcloud container clusters create, se puede crear un clúster de Kubernetes especificando el tipo de máquina y el número de nodos.

¿Cómo se efectúa el despliegue?

  1. Estructura de Manifestos: La demostración usa archivos de manifesto de Kubernetes que definen cómo debe desplegarse cada componente del sistema.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: paymentservice
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: paymentservice
      template:
        metadata:
          labels:
            app: paymentservice
        spec:
          containers:
          - name: server
            image: gcr.io/google-samples/microservices-demo/paymentservice:v0.2.3
            ports:
            - containerPort: 50051
    
  2. Desplegar los servicios: Ejecuta el comando kubectl apply -f para desplegar los manifiestos en tu clúster de Kubernetes. Esto crea y configura los pods en cuestión de segundos.

  3. Verificar el despliegue: Comprueba que todos los servicios se hayan levantado adecuadamente usando kubectl get pods y kubectl get services.

Ventajas de usar manifestos y CLI

  • Automatización: Usar comandos simplifica repetir procesos y permite automatización.
  • Tiempo de despliegue: Desplegar complejas aplicaciones de microservicios es rápido y eficiente.
  • Flexibilidad y control: Con manifestos, puedes controlar cada aspecto del despliegue y escalamiento.

¿Qué beneficios ofrece el uso de Kubernetes?

Adoptar Kubernetes ofrece una serie de ventajas para organizaciones de todos los tamaños:

  • Eficiencia Operativa: Optimiza la utilización de recursos y reduce costos operativos.
  • Escalabilidad: Facilita el escalamiento de aplicaciones para adaptarse a la demanda de usuarios.
  • Interoperabilidad: Desde diferentes lenguajes hasta diversos sistemas, Kubernetes facilita la integración.
  • Rapidez en Despliegue: Permite a los desarrolladores implementar cambios y mejoras en tiempo récord.

Kubernetes se ha convertido en un estándar para el despliegue de aplicaciones modernas. Tomar ventaja de su robustez y flexibilidad puede ser la clave para la innovación y eficiencia en el desarrollo de software. Asegúrate de explorar más sobre computación híbrida y multinube para maximizar el potencial de tus aplicaciones en la nube. ¡Anímate y continua aprendiendo!

Aportes 8

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Seleccionar el proyecto de trabajo de GCP:

gcloud config set project {PROJECT_ID}

Crear una variable de estado de nombre PROJECT_ID:

export PROJECT_ID=container-showcase
echo $PROJECT_ID

Instalar y habilitar los servicios necesarios:

gcloud services enable container.googleapis.com --project $PROJECT_ID
gcloud services enable monitoring.googleapis.com \

Crear un directorio dentro del proyecto:

mkdir container-showcase-platzi

En el directorio creado se hace un clone del proyecto en github:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git

cd microservices-demo

Crear clúster:

export ZONE=	us-central1-b

gcloud  container clusters create onlineboutique --project=${PROJECT_ID} --zone=${ZONE} --machine-type=e2-standard-2 --num-nodes=4

Desplegar los manifestos:

kubectl apply -f ./release/kubernetes-manifests.yml
kubectl get pods

Sería genial un curso de grpc

Excelente contenido.

wooow… excelente clase, que practica tan buena, como dijo el profesor, me exploto la cabeza 👍

Al final importante eliminar los deployments y el cluster para evitar cargos extras. ```txt kubectl apply -f ./release/kubernetes-manifests.yaml export CLUSTER_NAME=onlineboutique gcloud container clusters delete ${CLUSTER_NAME} --project=${PROJECT_ID} --zone=${ZONE} ```
gRPC es excelente siempre lo recomiendo a cada ingeniero que me encuentro.

Nunca había visto el despliegue de una aplicación tan compleja tan rapido…

Bueno considerando que la aplicación ya esta probada y todos sus archivos de configuración están super listos.

Sería muy diferente si estuviéramos haciendo la primera prueba para corroborar que no se nos fue nada en el archivo de configuración.

Mr. Pablo me siento chico ante este mundo.
.
Me siento emocionado porque el levantar una infraestructura, automatizada y especificada, se me hace súper complejo pero increíble.

Debería haber un aviso que diga que este curso no es para principiantes. Falta mucha explicación. Para los que no hemos usado esto, parece sacado de un sombrero