¿Qué es Google Cloud Platform?

Este post forma parte de un seguido de posts relacionados con la Google Cloud Platform. Al ser el primero, vamos a introducir los diferentes productos y servicios que integra la plataforma para tener una idea de su potencial y versatilidad.

Introducción

Gooogle Cloud Platform, es una suite que contiene diversos servicios que funcionan en la misma infraestructura que utiliza Google de manera interna, por ejemplo con servicios como Youtube o Google Search. El conjunto de herramientas que proporciona la suite abarca Cloud Computing, Networking, Data Storage, Data Analytics, Machine learning, etc.

Google Cloud Platform
Cloud Platform provee los productos, servicios y herramientas para poder diseñar, realizar testing y lanzar las aplicaciones en la plataforma garantizando una gran escalabilidad y seguridad gracias al diseño de la infraestructura proporcionada por Google.

Esta infraestructura se divide en regiones y zonas. Al trabajar en distintas regiones se debe tener en cuenta el coste adicional para el tráfico de red entre éstas. Este enlace contiene información más detallada sobre este tema.

Dentro la variedad de productos y servicios dentro de la plataforma, vamos a mencionar las siguientes categorías:

  1. Computing   
  2. Networking   
  3. Storage   
  4. Big data   
  5. Machine learning

1. Computing

Conjunto de productos que brindan un rango escalable de opciones para satisfacer necesidades relacionadas con la computación. Estos productos abarcan desde servicios globales y de balanceo de carga a máquinas virtuales flexibles de una sola instancia.

Computin App Engine

Servicio enfocado a la creación y puesta en marcha de aplicaciones (web, Android, etc). La principal ventaja que tiene App Engine con respecto a otras plataformas es que ésta trata de liberar al desarrollador de todas las tareas de gestión de recursos, haciendo que éstos se puedan centrar en la lógica de la aplicación.

El método de pago de este servicio va en relación con las peticiones que recibe y es auto-escalable según la carga de recursos consumidos, por lo que es capaz de adaptarse a los requisitos de cada aplicación y a los picos de tráfico. App Engine está soportado por una variedad de lenguajes de programación como Java, Go, PHP o Python, entre otros.

Compute Engine

Plataforma que nos permite dotar de poder computacional a nuestras máquinas en el cloud. A diferencia de la App Engine, Compute Engine se centra en tener una infraestructura como servicio, en la cual tenemos que configurar cada aspecto de esta infraestructura y hacer la gestión de nuestros recursos. Este servicio se cobra por uso de recursos. Se puede utilizar cualquier lenguaje ya que tenemos todo el control sobre nuestras máquinas.

Kubernetes Engine

Sistemas basados en contenedores Kubernetes aprovechan las características de los dos productos anteriores para crear un sistema híbrido. Estos son capaces de aprovechar la auto escalabilidad para adaptarse a las diferentes cargas de trabajo y pueden almacenar grandes cantidades de datos. Destaca que se puede utilizar cualquier lenguaje de programación en su uso.

2. Networking

Networking

Servicio formado por el conjunto de herramientas mostradas en el diagrama. Estos permiten administrar todo lo relacionado con el funcionamiento de la red.

Por ejemplo, conectar las diferentes VM (virtual machine) entre sí o aislarlas  según las políticas que el usuario establezca en el flujo para compartir los recursos, configurar la red incluyendo información detallada de intervalos IP, cortafuegos, rutas, VPN, Cloud Router, publicar y mantener dominios mediante el servicio de DNS o gestionar el balanceo de carga según nuestro tráfico.

 

3. Storage

Conjunto de productos de almacenamiento de datos en la nube. El almacenamiento de objetos abarca las diferentes necesidades y precios, además de ofrecer administración MySQL y de bases de datos NoSQL escalables a nivel mundial con el mayor rendimiento de la industria.

Cloud Storage

Sistema de almacenamiento de objetos, que permite archivar datos no estructurados y ficheros de gran tamaño (PB), autogestionables y fácilmente integrables con el resto de servicios de la Google Cloud Platform. Abarca desde el suministro de los datos activos, hasta el aprendizaje automático y análisis de datos. Entre otras funcionalidades, se encuentra el sistema gestor de ficheros el cual posibilita la gestión y organización del almacenamiento de datos, recuperación y distribución de estos.

Datastore
Base de datos NoSQL altamente escalable y diseñada para almacenar datos de aplicaciones. A diferencia de una base de datos, almacena objetos que pueden ser usados directamente en nuestra aplicación. Tiene soporte para las transacciones ACID (Atomicity, Consistency, Isolation, Durability) y se puede integrar con la App Engine (entre otros). En cuanto costes, su tarifa diaria es gratuita y es auto escalable, además de ser totalmente administrada  (por lo que no es necesario configurarlo).

Cómo ventajas permite empezar a crear un sistema consistente de forma rápida, siendo una gran opción por ejemplo, para el almacenaje catálogos de cara a la implementación del backend de una aplicación. En las desventajas encontramos algo de latencia, no es una BBDD analítica, y aunque permita escalar mucho no es una escalabilidad infinita.

Bigtable
Servicio de base de datos NoSQL con enorme escalabilidad, diseñado para administrar cargas de trabajo colosales con baja latencia y alto rendimiento uniformes. Debido a ello puede gestionar  sin problemas millones de operaciones por segundo. Bigtable se utiliza en herramientas como Google Analytics, Gmail, Maps y el motor de Búsqueda de Google, entre otras.

Es especialmente útil con datos de tipo “timeseries”, batches y streamings de MapReduce. Esta base de datos tiene una única clave que se utiliza para poder realizar las queries. Ergo, se debe definir teniendo en cuenta las Queries que se harán para que sea lo más eficiente posible.

Es ideal para aplicaciones analíticas, IoT, análisis de usuarios y análisis financieros. Además se puede integrar en herramientas como Hadoop y productos de Google como Dataflow y DataProc, también es compatible con la API de software libre Hbase.

SQL

Servicio para bases de datos MySQL y PostgreSQL totalmente administrado, facilitando así su configuración, mantenimiento y administración. Garantiza altos niveles de rendimiento, escalabilidad horizontal y vertical. También permite la programación de la generación de backups para el mantenimiento de los datos y cuenta con la seguridad de Google. Es perfecto como servicio para aplicaciones de comercio electrónico y CRMs. Por último ofrece una sencilla integración con productos como App Engine o Compute Engine.

Spanner

Definido por Google como el servicio que proporciona la primera y única base de datos relacional, sin inconsistencia y horizontalmente escalable, garantizando una replicación síncrona de datos a baja latencia y gestionando cargas de trabajo muy pesadas.

Como ventaja permite tener la información replicada en miles de máquinas de todo el mundo, además cuando se realiza un cambio, este se actualiza en todas las demás réplicas, con un margen de error mínimo. Como se puede intuir es ideal para empresas con un target de negocio global. Es muy útil para mercados financieros, garantizando así un control de la información y operaciones que se realizan a nivel mundial, en un sistema autoescalable, seguro, rápido y sincronizado.

Comparing Storage
4. Big Data

Consta de un conjunto de servicios que permiten procesar y consultar Big Data en el cloud para obtener respuestas de forma rápida.

BigQuery

Base de datos interactiva para hacer análisis a grandes volúmenes de datos con tiempos de respuesta muy rápidos. Es una base de datos de tipo WORM (write once read múltiple) en la que se pueden insertar datos vía batch o streaming hasta 100k filas por segundo. No es necesario manejar la infraestructura ni los recursos para un funcionamiento rápido y eficiente. Utiliza una tarifa por uso y almacenamiento en la que se puede definir límites de cuotas diarias para controlar el uso de la herramienta y el gasto. El almacenaje de datos columna a columna permite una compresión y encriptación muy eficiente.

Pub/Sub
Cloud Pub/Sub servicio que ingesta streams de eventos y los pasa a Cloud Dataflow para su procesamiento y a BigQuery para un posterior análisis. Está diseñado para el envío de mensajes síncronos, fiables y con varios remitentes y destinatarios entre aplicaciones.

Dataflow

Modelo de programación unificado y administrado para el desarrollo y ejecución de una gran variedad de patrones de procesamiento de datos como ETL’s, operaciones informáticas, feature engineering, etc. tanto por lotes como por streaming. El uso de este modelo nos evita preocuparnos de tareas como la administración de recursos u optimización del rendimiento.

Se puede conectar con Pub/Sub, Bigtable, BigQuery, SQL, Datastore e interactuar con Appache Kafka y HDFS. Tiene SDK para Python y Java.

Dataproc

Herramienta para administrar la infraestructura y optimización de servicios de Hadoop, Spark, Pig y Hive. Nos permite levantar nuestros clusters de cualquier tamaño y lanzar en ellos nuestras tareas desactivando estas cuando terminen. La gestión y actualización del sistema y además consta de una administración automática de clusters y un coste relativamente bajo por uso.

Datalab

Herramienta interactiva de gran potencia para explorar datos, analizarlos y visualizarlos, así como desarrollar modelos de aprendizaje automático en la Cloud Platform. Se ejecuta en la Compute Engine y se conecta fácilmente al resto de servicios de la Cloud sin necesidad de autenticación para poder centrarse en las tareas relacionadas con la explotación de datos.

Basado en Jupyter (IPython), contando así con un ecosistema de módulos y una sólida base de conocimientos para enfocarte en Data Science. Datalab permite utilizar Python, SQL y JavaScript. Posibilita documentar los resultados de informes y análisis en un formato de Notebook.

DataPrep
Servicio inteligente de datos que permite explorar, limpiar y preparar los datos visualmente estructurados o no para su análisis. Data prep funciona sin la necesidad de servidores y a cualquier escala, tampoco necesita una implementación ni administración de la infraestructura. Además, los datos pueden prepararse fácilmente mediante clics, evitando generar código para limpiarlos. Todo esto es posible gracias a la potente IU que pone a nuestra disposición el servicio. Como otros servicios dentro de la rama de Big Data es auto escalable según la demanda para satisfacer las necesidades de los usuarios.

Genomics
Base de datos preparada para el procesamiento eficiente de ingentes cantidades de datos genómicos. Ofrece la misma tecnología utilizada para Google Search y Google maps de cara al almacenaje, procesamiento en paralelo, análisis y distribución de grandes conjuntos de datos complejos.

Cabe destacar que la división encargada de Google Genomics colabora con la comunidad científica, optimizando así  la herramienta para el uso de datos genómicos. Esta colaboración ha permitido desarrollar Genomics con los estándares abiertos del sector definidos por la Global Alliance for Genomics and Health. También se ha adaptado la infraestructura de google para garantizar la seguridad de la información según los requisitos de Health Insurance Portability and Accountability Act.

5. Machine Learning

Machine Learning

Disciplina perteneciente a las Ciencias de la computación y de la rama de inteligencia artificial cuyo objetivo consiste en desarrollar técnicas que permitan identificar patrones y que un ordenador pueda aprender de estos

Google proporciona su propio servicio Cloud Machine Learning Engine de cara al desarrollo de proyectos que se sirvan de los principios de Machine Learning.El servicio administrado completamente, escalable, y distribuido gracias a la aceleración de GPU para los conjuntos de datos más grandes, proporcionando así un entrenamiento predictivo balanceado, escalable y automático compilado en modelos matemáticos que nos permiten comprender la información extraída del dataset y generar visualizaciones de cara a extraer conclusiones para obtener un valor añadido de la información almacenada en los servicios de Storage comentados anteriormente.

Cloud Machine Learning Engine soporta  las siguientes librerías y APIs:


Librería open source para crear y manejar modelos con redes neuronales. Soporta  APIs de varios lenguajes (Python, C++, Java y Go), pero la que está más completa y sencilla de usar es en Python.

Vision API

Vision API nos ofrece un modelo entrenado en el reconocimiento de imágenes. Este modelo es capaz de detectar caras, logos y etiquetas.
Permite transcribir texto a partir de una imagen y generar un análisis sentimental de la imagen. Se puede usar para desarrollar herramientas de detección de contenido inapropiado, extracción de datos de imágenes u otro análisis sobre las imágenes más avanzado.

Speech API

API para transformar datos en formato audio a texto fácilmente y con alta precisión incluso en entornos ruidosos, aplicando modelos de redes neuronales. Es capaz de reconocer más de 80 idiomas y variantes, lo que facilita el procesamiento de este tipo de datos incluso si se trata de datos a nivel internacional. También es posible transcribir audio en tiempo real.

API que disecciona la estructura y el significado de un texto mediante modelos de aprendizaje automático fáciles de usar, es decir, analiza nuestro lenguaje natural. Puede ser utilizada para extraer información sobre personas, lugares, eventos y muchos más elementos que se mencionan en el texto. También podemos realizar un análisis sentimental sobre el texto y así descubrir opiniones e intenciones que puede llevar el texto.

Translate API

Tal y como da a entender el nombre, es una API que sirve para traducir texto de cualquier idioma a otro. Puede reconocer de manera automática el idioma del texto introducido y así traducirlo al idioma deseado.  El modelo detrás de esta API se está actualizando constantemente para mejorar las traducciones, así como para incluir nuevos idiomas.

En definitiva, como se puede ver después de esta introducción al mundo de la Google Cloud Platform, tenemos un montón de posibilidades para desarrollar nuevo software que nos genere un valor y se pueda comercializar a cliente.

Autor:

Graduado de Ingeniería Informática en Mención de Computación por la Universitat Autònoma de Barcelona. Mis campos de interés son Data Science, Business Intelligence y el Marketing Digital.

Leave Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.