Hace poco tiempo recordé mi primera experiencia con GCP. Fue en Londres, poco antes de las Olimpiadas de 2012, en un proyecto del ámbito online gaming, inicialmente pensado para AWS que fue migrado a App Engine – plataforma PAAS que evolucionaría a la actual GCP.

Mi impresión inicial fue buena, aunque la plataforma imponía un cierto número de limitaciones al desarrollo, que serían reducidas posteriormente con el lanzamiento de App Engine Flexible.

Coincidiendo con el lanzamiento de Tensor Flow como framework Open Source en 2015, tuve la suerte de asistir a un workshop sobre redes neuronales – impartido por uno de los científicos AI de Google Seattle – donde tuve mi segunda experiencia con la plataforma. Quedé muy sorprendido por la simplicidad de configuración y despliegue, el concepto NoOps y una oferta de Machine Learning / AI, sin competencia en aquel momento.

¿Sueñan los androides con ovejas eléctricas? Philip K. Dick habría “alucinado” con los sueños eléctricos de las redes neuronales – alimentadas por Tensor Flow.

Examen

La estructura del examen es la habitual en los exámenes de GCP: 2 horas y 50 preguntas, con un formato definitivamente dirigido hacia las preguntas tipo escenario, mezclando preguntas de dificultad alta, con otras más sencillas de dificultad media – baja.

En general, para seleccionar la respuesta correcta hay que aplicar criterios técnicos y de negocio. Es necesario, por tanto, un conocimiento profundo de los servicios desde el punto de vista tecnológico, así como destreza / experiencia para aplicar los criterios de negocio de forma contextual, según pregunta, tipo de entorno, sector, aplicación etc …

Imagen 1, Data Lake, la arquitectura ubicua – Imágen propiedad de GCP

Podemos agrupar los servicios relevantes según los estados (y subestados) del ciclo del dato:

Ingestión, Almacenamiento, Transformación y Análisis.

  • Ingestión Batch / Data Lake : Cloud Storage.
  • Ingestión Streaming: Kafka, Pub/Sub, Computing Services, Cloud IoT Core.
  • Migraciones: Transfer Appliance, Transfer Service, Interconnect, gsutil.
  • Transformación: Dataflow, Dataproc, Cloud Dataprep, Hadoop, Apache Beam.
  • Computación: Kubernetes Engine, Compute Instances, Cloud Functions, App Engine.
  • Almacenamiento: Cloud SQL, Cloud Spanner, Datastore / Firebase, BigQuery, BigTable, HBase, MongoDB, Cassandra.
  • Cache: Cloud Memorystore, Redis.
  • Análisis: / Data Operations: BigQuery, Cloud Datalab, Data Studio, DataPrep, Cloud Composer, Apache Airflow.
  • Machine Learning: AI Platform, BigQueryML, Cloud AutoML, Tensor Flow, Cloud Text-to-Speech API, Cloud Speech-to-Text, Cloud Vision API, Cloud Video AI, Translations, Recommendations API, Cloud Inference API, Natural Language, DialogFlow, Spark MLib.
  • IoT: Cloud IoT Core, Cloud IoT Edge.
  • Seguridad y encriptación: IAM, Roles, Encryption, KMS, Data Prevention API, Compliance …
  • Operaciones: Kubeflow, AI Platform, Cloud Deployment Manager …
  • Monitorización: Cloud Stackdriver Logging, Stackdriver Monitoring.
  • Optimización: Control de costes, Autoscaling, Preemptive instances …

Pre-requisitos y recomendaciones

A este nivel de certificación las preguntas no se refieren, en general, a un solo tópico. Es decir, una pregunta del dominio Analytics puede requerir conocimientos más o menos avanzados de Computación, Seguridad, Networking o DevOps para poder resolverla con éxito. Recomiendo estar en posesión de la certificación GCP Associate Cloud Engineer o tener conocimientos equivalentes.

  • Experiencia GCP a nivel arquitecturalEl examen está enfocado, en parte, a la solución de arquitectura, diseño y despliegue de pipelines de datos; selección de tecnologías para solucionar problemas de negocio, y en menor medida al desarrollo. Recomiendo el estudio del mayor número posible de arquitecturas de referencia, como las que muestro en la presente guía.
  • Experiencia GCP a nivel desarrollo. Aunque en mi set de preguntas, y en el examen de prueba, no aparecen preguntas explícitas de programación, el examen requiere conocimiento a nivel técnico de servicios y de APIS: SQL, Python, REST, algoritmos, Map-Reduce, Spark, Apache Beam (Dataflow) …
  • Experiencia GCP a nivel Seguridad. Dominio presente de forma transversal en casi todas las certificaciones. Recomiendo conocimientos (al menos) a nivel de Associate Engineer.
  • Experiencia GCP a nivel Networking. Otro dominio presente de forma transversal. Recomiendo conocimientos (al menos) a nivel de Associate Engineer.
  • Conocimientos de Data Analytics. Es una obviedad, pero es imprescindible conocimiento del dominio. En caso contrario, recomiendo estudiar libros como “Data Analytics with Hadoop” o realizar cursos como Programa especializado: Data Engineering, Big Data and ML on Google Cloud en Español. Así mismo, realizar laboratorios o proyectos pet, para obtener cierta experiencia práctica.
  • Conocimientos del ecosistema Hadoop – Spark, conectado con el punto anterior. Son necesarios conocimientos a alto nivel del ecosistema: Map Reduce, Spark, Hive, Hdfs, Pig, …
  • Conocimientos de Machine Learning e IoT. Imprescindible conocimientos avanzados en Data Science y Machine Learning, aparte del conocimiento específico de los productos de GCP. Hay preguntas exclusivamente sobre este dominio – al nivel de certificaciones como AWS Machine Learning o superior. IoT aparece en el examen de una forma más ligera, pero es imprescindible conocer la arquitectura y servicios de referencia.
  • Experiencia DevOps. Conceptos como CI/CD, infraestructura o configuración como código, son de gran importancia en la actualidad, y así se refleja en el examen, aunque no tiene un gran peso específico.

Preguntas tipo

Pregunta representativa del nivel de dificultad del examen.

Imagen propiedad de GCP

Escenario práctico de migración donde se incluyen servicios cloud y del ecosistema Hadoop, así como conceptos propios del dominio Analytics.

Servicios a estudiar de forma detallada

Imagen 2 – propiedad de GCP
  • Cloud Storage – Servicio core que aparece de forma consistente en todas las certificaciones, y figura central en los entonor denominados Data Lake. Recomiendo su estudio en detalle a nivel arquitectural – ver Imagen 1 – configuraciones según la temperatura del dato, y como elemento de integración / almacenamiento entre los diferentes servicios
  • BigQuery – Servicio central en el dominio Analytics GCP como elemento de BI y almacenamiento. Fundamental en el examen, por lo que es conveniente estudiarlo en detalle: arquitectura, configuración, backups, export/import, streaming, batch, seguridad, partitioning, sharding, proyectos, datasets, vistas, integración con otros servicios, coste, querys y optimización SQL (legacy y standard) a niveles de tablas, keys …
  • Pub / Sub – Servicio central como elemento de ingesta y de integración. Su estudio en profundidad es muy recomendable: casos de uso, arquitectura, configuración, API, seguridad e integración con otros servicios (p.e Dataflow, Cloud Storage) – servicio “mirror” cloud nativo de Kafka.
  • Dataflow – Servicio central en el dominio Analytics GCP como elemento de proceso y transformación. Implementación basada en Apache Beam que es necesario conocer a alto nivel y de diseño de pipelines. Casos de uso, arquitectura, configuración, API e integración con otros servicios.
  • Dataproc – Servicio central en el dominio Analytics GCP como elemento de proceso y transformación. Es un servicio basado en Hadoop, y por lo tanto, es el servicio indicado para una migración al cloud. En este caso, no solo son necesarios conocimientos de Dataproc, sino también en los servicios nativos: Spark, HDFS, HBase, Pig… casos de uso, arquitectura, configuración, import/export, reliability, optimización, coste, API e integración con otros servicios.
  • Cloud SQL, Cloud Spanner – Bases de datos relacionales nativas cloud. Casos de uso, arquitectura, configuración, seguridad, performance, reliability, coste y optimización: clusters, transaccionalidad, disaster recovery, backups, export/import, performance y optimización SQL, tablas, queries, keys y depuración. Integración con otros servicios.
  • Cloud Bigtable – Base de datos manejada NoSQL de baja latencia, indicada para time series, IoT, … ideal para reemplazar una instalación HBase on premise. Casos de uso, arquitectura, configuración, seguridad, performance, reliability y optimización: clusters, CAP, backups, export/import, partitioning, performance, y optimización de tablas, queries, keys. Integración con otros servicios.
  • Machine Learning – Uno de los puntos fuertes de la certificación es el dominio “Operationalizing machine learning models”. Mucho más denso y complejo de lo que puede parecer en un principio, ya que no solo incluye la operatividad y el conocimiento de los servicios relevantes de GCP; así mismo, incluye el manejo a nivel conceptual de los fundamentos Data Science: selección de algoritmos, optimización, métricas … El nivel de dificultad de las preguntas es variable, pero comparable al de certificaciones específicas, como AWS Certified Machine Learning – Specialty. Servicios más importantes: BigQuery ML, Cloud Vision API, Cloud Video Intelligence, Cloud AutoML,Tensorflow, Dialogflow, GPU´s, TPU´s
  • Security – La Seguridad es transversal a todos los dominios, y aparece de forma consistente en todas las certificaciones. Es este caso, aparece como tópico técnico independiente, crosscutting concern o como business requirement: KMS, IAM, Policies, Roles, Encriptación, Data Prevention API
Imagen 3 – IoT Arquitectura de Referencia – propiedad de GCP

Servicios muy importantes a tener en cuenta

  • Networking – Dominio transversal que puede aparecer en forma de cuestiones técnicas independientes, cross cutting concerns o como business requirements: VPC, Direct Interconnect, Multi Region / Zone, Hybrid connectivity, Firewall rules, Load Balancing, Network Security, Container Networking, API Access (private / public)
  • Hadoop – El examen cubre ecosistemas y servicios de terceros como Hadoop, Spark, HDFS, Hive, Pig… casos de uso, arquitectura, funcionalidad, integración y migración a GCP.
  • Apache Kafka – Servicio alternativo a Pub/Sub, por lo que es recomendable estudiarlo a alto nivel: casos de uso, características operacionales, configuración, migración e integración con GCP – plugins, conectores.
  • IoT – Puede aparecer en varias preguntas a nivel arquitectural: casos de uso, arquitectura de referencia e integración con otros servicios. IoT core, Edge Computing.
  • Datastore / Firebase – Repositorio NoSQL tipo documental. Casos de uso, configuración, performance, modelo de entidades, keys y optimización de índices, transaccionalidad, backups, export/import e integración con otros servicios. No tiene tanto peso como los otros repositorios de datos.
  • Cloud Memory Store / Redis – Repositorio tipo caché de datos estructurados. Casos de uso, arquitectura, configuración, performance, reliability y optimización: clusters, backups, export/import e integración con otros servicios.
  • Cloud Dataprep – Casos de uso, funcionamiento a nivel general y consola, formatos admitidos e integración con Dataflow.
  • Cloud Stackdriver – Casos de uso, monitorización y logging, tanto a nivel de sistema como aplicación: Cloud Stackdriver Logging, Cloud Stackdriver Monitoring, Stackdriver Agent y plugins.

Otros servicios

  • MongoDB, Cassandra – Bases de datos NoSQL que pueden aparecer en distintos escenarios . Casos de uso, arquitectura e integración con otros servicios.
  • Cloud ComposerCasos de uso, funcionamiento a nivel general y consola web, configuración tipos de diagramas, formatos admitidos, import / export, integración con otros servicios, conectores.
  • Cloud Data Studio – Casos de uso, configuración, networking, seguridad, funcionamiento a nivel general y entorno e integración con otros servicios.
  • Cloud Data Lab – Casos de uso, funcionamiento a nivel general y consola web, tipos de diagramas, formatos admitidos, import / export e integración con otros servicios.
  • Kubernetes Engine – Casos de uso, arquitectura, clustering e integración con otros servicios.
  • Kubeflow – Casos de uso, arquitectura, configuración entorno, Kubernetes.
  • Apache Airflow – Casos de uso, arquitectura y funcionamiento general.
  • Cloud Functions Casos de uso, arquitectura, configuración e integración con otros servicios – como Cloud Storage y Pub/Sub, en modo Push / Pull.
  • Compute Engine – Casos de uso, arquitectura, configuración, high availability, reliability e integración con otros servicios.
  • App Engine – Casos de uso, arquitectura e integración con otros servicios.

Bibliografía & recursos esenciales

Google proporciona una gran cantidad de recursos para la preparación de esta certificación, en forma de cursos, libro guía oficial, documentación y exámenes de prueba. Estos recursos son muy recomendables, y en algunos casos, diría que esenciales.

El Curso de Preparación para la certificación, contenido en el Programa Especializado Data Engineering disponible en Coursera, incluye un examen extra, y una gran cantidad de consejos y materiales adicionales, así como laboratorios – utilizando la herramienta externa Qwik Labs.

Bibliografía (selección) que he utilizado para la preparación de la certificación

Como he indicado previamente, los cursos de Google en Coursera me parecen excelentes, ya que combinan una serie de videos cortos, material de lectura, laboratorios y preguntas de prueba, creando de esta manera una experiencia muy dinámica. De cualquier forma, deben considerarse solamente como punto de partida, siendo necesaria la profundización – según experiencia – en cada uno de los dominios utilizando, por ejemplo, la excelente documentación de GCP.

Pero no solo de documentación y cursos vive el hombre. No puedo ocultar que me encantan los libros en general, y los libros de IT en particular. De hecho, poseo una enorme colección de libros que data desde los años 80s, que en algún momento donaré a librería Cervantina local.

Los libros proporcionan una experiencia más profunda y dinámica que los vídeos, que pueden resultar un poco monótonos si son de larga duración – además de ser una experiencia mucho más pasiva – como ver TV. Lo ideal es la combinación de medios audiovisuales y escritos, creando así tu propio camino de aprendizaje.

Laboratorios

Imagen 4 – Data Lake basado en Cloud Storage – propiedad de GCP

Parte del trabajo como Data Engineer consiste en la creación, integración, despliegue y mantenimiento de pipelines de datos, tanto en modalidad batch como streaming.

Data Engineering Quest contiene varios laboratorios que introducen a la creación de distintas pipelines de transformación de datos, IoT y Machine Learning, por lo que me parecen excelentes ejercicios – y no solo de cara a la certificación.

¿Merece la pena?

El nivel de la certificación es avanzado, y en general, no debería ser la primera certificación del ámbito cloud a obtener. Abarca gran cantidad de material y dominios, por lo que afrontarla sin un cierto nivel de conocimientos previos, puede ser una tarea bastante compleja.

Si la comparamos con la certificación espejo en la plataforma AWS, cubre casi el doble de material, debido sobre todo a la inclusión de preguntas sobre el dominio Machine Learning / Data Science – que en el caso de AWS han sido eliminadas para pasar a su propia certificación. Por tanto, es como tomar dos certificaciones en una sola.

¿Merece la pena? desde luego, pero no como una primera certificación – dependiendo de la experiencia aportada.

Las certificaciones son un buen modo, no solo de validar los conocimientos de forma externa, sino de recopilar información actualizada, validar buenas prácticas y consolidar conocimientos con casos prácticos reales (o casi).

¡Buena suerte a todos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s