Tools.
Las principales herramientas disponibles en la consola de GCP son:
Cloud Build.
Es una herramienta ideal para establecer pipelines de CI/CD ya que permite construir imágenes de contenedores de forma rápida, consistente y segura en GCP. Permite la construcción de aplicaciones en cualquier lenguaje y empaquetar los artefactos construidos en contenedores de Docker. Tiene una SDK que permite integrarse con otras herramientas de automatización.
Container Registry.
Es una herramienta complementaria a Cloud Build pues provee un repositorio de imágenes de Docker seguro y privado. Se pude usar la consola de Google cloud para subir las imágenes y luego usar un endpoint HTTP para descargar las mismas desde cualquier lugar. Permite aplicar políticas de seguridad IAM a cada imágen.
Source Repositories.
Es un repositorio de código fuente desplegado en Google Cloud basado en GIT con todas las funcionalidades pertinentes. Es una forma segura, privada y organizada donde almacenar el código fuente de las aplicaciones de la organización y a su vez provee una cómoda herramienta de visualización de los archivos versionados. Permite adjuntar políticas de IAM a cada repositorio y usuarios.
Deployment Manager.
Es un servicio de gestión de infraestructura que permite aplicar el principio de DevOps de infraestructura como código. Permite la creación y administración de ambientes mediante el uso de plantilla descriptivas escritas en YAML o Python, que, a su vez, pueden ser almacenadas en Source Repositories.
Cloud Endpoints.
Es una plataforma para desarrollar y gestionar proxys para APIs. Permite controlar fácilmente el acceso a determinadas url de la API para determinados consumidores y establecer monitoreo y trazabilidad. Es muy fácil de implantar y gestionar ya que solo requiere colocar un proxy delante de la capa de servicios de la aplicación y tiene una consola para su propia API.
BigData.
Es la plataforma de Google para el trabajo con BigData cuyo objetivo es aportar gran valor al negocio y la experiencia de usuario de la organización mediante la exploración de sus datos. Son servicios 100% manejados y escalables que no requieren la creación de infraestructura para su uso, aunque sí permite su configuración.
Los servicios disponibles dentro de la Suite de BigData son:
Dataproc.
Es una forma rápida, económica y fácil forma de usar el framework de Apache: Hadoop. Una vez solicitada la creación de un cluster de Dataproc, GCP se encarga de crear y configurar las máquinas virtuales y servicios necesarios en menos de minuto y medio, factura solamente por los segundos que esté en ejecución y permite personalizar las especificaciones tanto de hardware de la VM, como las opciones de Hadoop como tal. Una forma de ahorrar es mediante el uso de máquinas virtuales volátiles (preemtibles) cuyo costo es alrededor de 80% menor.
Dataflow.
Es la herramienta adecuada para trabajar con transmisión directa de datos (streaming) o cuando los datos son de tamaño y cadencia impredecible. Al igual que Dataproc es un servicio 100% manejado y con escalabilidad automática, solo requiere que se defina el pipeline de procesamiento y la plataforma se encarga del resto. El uso principal de esta herramienta es construir flujos de ETL, aunque, es ventajosa también para: detección de fraude, análisis de datos proveniente de aplicaciones IoT, logística, puntos de ventas, etc.
Bigquery.
Es la solución de tipo Data Warehouse analítico de GCP, al igual que los otros servicios de BigData es 100% manejado y escalable hasta el nivel de cientos de terabytes. Ofrece SLA de 99.99%, soporta SQL tradicional como lenguaje de consultas y ofrece diversas formas de cargar los datos, por ej: desde Cloud Storage, DataStore, Dataflow, Hadoop, etc. Separa los costos de almacenamiento y de procesamiento, por lo tanto, solo se factura el tiempo que demoran en ejecutarse las consultas. Compartir datos tampoco incurre en costos extras, ni para el que entrega como el que consume, y tiene una política de descuento para los datos que se almacenan por más de 90 días.
Pub/Sub.
Servicio de mensajería de GCP. Ideal para desacoplar aplicaciones en la plataforma y excelente complemento para DataFlow. Cada mensaje publicado puede ser entregado a más de un consumidor al meno una vez, es importante considerar que bajo algunas raras circunstancias el mismo mensaje puede ser consumido más de una vez. Como los otros servicios de la nube ofrece grandes niveles de escalamiento, del orden de millones de mensajes por segundo, lo que lo hace ideal para aplicaciones IoT de alto tráfico.
Machine Learning.
Es una rama de la inteligencia artificial que permite a las aplicaciones a resolver problemas sin tener que programarlo implícitamente. La suite de ML de Google puede analizar datos de cualquier tipo y tamaño, y de hecho, ya lleva rato en explotación por otros productos de Google, por ejemplo: YouTube, Google Now, Google Maps, Google Photos, Google Translate, etc, sólo que ahora también se ofrece como un servicio en la nube. Provee servicios modernos de aprendizaje de maquina con varios modelos predefinidos y la posibilidad de generar otros nuevos a demanda. Se puede hacer uso de TensorFlow, que es una librería de código libre desarrollada por Google ideal para trabajo con redes neuronales. En el compute Engine hay máquinas virtuales preparadas para el trabajo con Tensor llamadas TPU que soportan hasta 180 teraflops de capacidad.
El tipo de operaciones que se pueden hacer con ML depende del tipo de dato con que se esté trabajando, el mismo se divide en dos categorías:
- Estructurada: Tareas de clasificación y regresión, diagnósticos y pronósticos, detección de anomalías, métricas de logs, etc.
- No estructurada. Análisis de imágenes videos y textos para identificación de lenguaje y análisis de sentimientos.