Principales servicios de Google Cloud

Principales servicios de Google Cloud

Cuando empezamos a desarrollar aplicaciones web, tarde o temprano aparece la necesidad de utilizar servicios externos para almacenar información, autenticar usuarios, guardar archivos o incluso mostrar mapas. Google Cloud es una plataforma que reúne muchos de estos servicios en un mismo lugar. La idea principal es que no tengamos que construir toda esta infraestructura desde cero, sino utilizar servicios que ya están preparados para integrarse con nuestras aplicaciones.

Cloud SQL

Uno de los servicios más conocidos es Cloud SQL, que permite utilizar bases de datos relacionales como MySQL, PostgreSQL o SQL Server. Por ejemplo, una aplicación de ventas podría utilizar PostgreSQL para almacenar usuarios, productos y pedidos. La ventaja es que Google se encarga de buena parte de la administración de la infraestructura y nosotros podemos concentrarnos en desarrollar la aplicación.

Cloud Storage

Para almacenar archivos existe Cloud Storage. Aquí podemos guardar imágenes, documentos, videos, archivos PDF y prácticamente cualquier otro tipo de archivo que necesite nuestra aplicación. Por ejemplo, si tenemos un sistema donde los usuarios pueden subir una fotografía de perfil, podemos almacenar la imagen en Cloud Storage y guardar en nuestra base de datos únicamente la dirección o referencia del archivo.

Google Drive API

Otro servicio interesante es Google Drive API (REST API v3), que permite que una aplicación interactúe directamente con Google Drive mediante código. Por ejemplo, podemos crear, buscar, descargar, modificar o compartir archivos desde nuestra propia aplicación. Esto resulta útil si queremos que un sistema genere automáticamente documentos y los guarde en el Drive de un usuario. Al ser una API REST, podemos realizar peticiones HTTP como GET, POST, PATCH o DELETE para trabajar con los archivos.

GET https://www.googleapis.com/drive/v3/files

Para utilizarla normalmente necesitamos autenticar al usuario y solicitar los permisos correspondientes. Una vez autorizado, nuestra aplicación puede utilizar el token de acceso para realizar operaciones sobre su Google Drive, por ejemplo, consultar los archivos disponibles o subir uno nuevo. Esto permite integrar Google Drive directamente dentro de aplicaciones web sin obligar al usuario a realizar manualmente todas estas operaciones desde la interfaz de Drive.

Google Maps Platform

Otro servicio muy conocido es Google Maps Platform, que permite integrar mapas y diferentes funciones relacionadas con ubicaciones. Una aplicación puede utilizarlo para mostrar un mapa, obtener coordenadas, buscar lugares o calcular rutas. Por ejemplo, una aplicación de entregas podría utilizar Google Maps para mostrar dónde se encuentra un cliente y calcular una ruta para llegar hasta él.

Google Identity Services

Para la autenticación podemos utilizar Google Identity Services. Este servicio permite incorporar el inicio de sesión con una cuenta de Google en una aplicación web. En lugar de implementar desde cero todo el proceso de autenticación, podemos permitir que el usuario pulse "Continuar con Google" y recibir las credenciales necesarias para identificarlo.

<div id="g_id_onload"
     data-client_id="TU_CLIENT_ID"
     data-callback="handleCredential">
</div>

Compute Engine

Cuando necesitamos un servidor virtual con mayor control, podemos utilizar Compute Engine. Básicamente permite crear máquinas virtuales dentro de la infraestructura de Google. En ellas podemos instalar Node.js, Java, Python, Docker, Nginx o cualquier otra herramienta que necesitemos. Es una opción interesante cuando queremos controlar directamente el entorno donde se ejecuta nuestra aplicación.

Cloud Run

Por otro lado, Cloud Run permite ejecutar aplicaciones y APIs mediante contenedores sin tener que administrar directamente los servidores. Por ejemplo, podemos tener un backend desarrollado con Java y Spring Boot, crear una imagen Docker y desplegarla en Cloud Run. Incluso podemos hacerlo utilizando comandos como:

gcloud run deploy mi-api --source .

Firebase

Para aplicaciones web y móviles también encontramos Firebase, que está muy integrado con el ecosistema de Google. Firebase proporciona servicios como autenticación, bases de datos, almacenamiento y hosting. Esto permite construir rápidamente aplicaciones que necesitan usuarios, información almacenada en la nube y otros servicios de backend sin tener que desarrollar toda la infraestructura desde cero.

BigQuery

Cuando una empresa comienza a generar grandes cantidades de información, aparece BigQuery. Este servicio está orientado al análisis de datos y permite realizar consultas sobre enormes conjuntos de información. Por ejemplo, podríamos analizar millones de ventas para conocer qué productos se venden más, cuáles son las regiones con mayor actividad o cómo cambian las ventas durante el año.

SELECT producto, COUNT(*) AS ventas
FROM pedidos
GROUP BY producto
ORDER BY ventas DESC;

Cloud Functions

También existen servicios como Cloud Functions, que permiten ejecutar código como respuesta a determinados eventos. Por ejemplo, podríamos configurar una función para que se ejecute automáticamente cuando alguien suba una imagen a Cloud Storage. La función podría procesarla, cambiar su tamaño y después guardar el resultado.

Pub/Sub

Para conectar diferentes partes de una aplicación podemos utilizar Pub/Sub. Este servicio permite enviar mensajes entre diferentes componentes. Por ejemplo, cuando un usuario realiza una compra, nuestro backend podría publicar un mensaje indicando que se creó un pedido. Otro servicio podría recibir ese mensaje y encargarse de enviar el correo de confirmación, mientras otro actualiza las estadísticas.

Secret Manager

Finalmente está Secret Manager, que resulta especialmente útil para guardar información sensible como contraseñas, claves de API y tokens. En lugar de escribir directamente una contraseña dentro del código, nuestra aplicación puede obtenerla desde Secret Manager. Esto ayuda a mantener las credenciales fuera del código fuente y facilita su administración cuando tenemos diferentes ambientes como desarrollo, pruebas y producción.

Combinar los servicios

La verdadera utilidad de Google Cloud aparece cuando combinamos estos servicios. Por ejemplo, podríamos tener un frontend desarrollado con Angular, un backend en Java ejecutándose en Cloud Run, PostgreSQL en Cloud SQL, imágenes en Cloud Storage, autenticación mediante Google Identity Services y mapas mediante Google Maps Platform. Cada servicio tiene una responsabilidad diferente, pero todos pueden formar parte de una misma aplicación. Esa es, en esencia, la idea de una plataforma cloud: utilizar infraestructura y servicios especializados para construir aplicaciones completas sin tener que desarrollar y administrar todo desde cero.