Debido al gran auge que está teniendo el universo cloud, y para poder desempeñar de una manera más óptima mi trabajo en Paradigma Digital, los últimos meses he invertido mi tiempo en la plataforma de Google, Google Cloud Platform (GCP), y he conseguido certificarme como Professional Google Cloud Architect, no siendo éste un camino sencillo. Nada sencillo.

Una de las razones por las que este viaje me ha parecido complicado, además de por la dificultad técnica, es porque Google no provee de ningún tipo de temario al que agarrarse durante la preparación, ni tampoco existen exámenes de prueba que sirvan para validar si los conocimientos adquiridos son suficientes o no.

En este sentido, el único material oficial de Google lo podréis encontrar en su propia documentación: el, en mi opinión, demasiado abstracto plan de estudios y el mini-examen de prueba.

Por estos motivos he decidido escribir un post sobre ello, para intentar ayudar a quien persiga este mismo objetivo, contando qué he estudiado exactamente, los recursos que he utilizado, cómo me he organizado, y qué conceptos considero que son claves dominar con vistas a superar el examen.

¡Empecemos!

Fase 1

Tal y como me recomendó mi compañero Álvaro Linares (Chamo), aconsejo que los primeros pasos a dar en el camino a la certificación sean los cursos de las habituales plataformas de formación. Quizá esta sea la fase en la que invertí más tiempo, ya que simplemente el ver los vídeos conlleva un buen número de horas (recomiendo verlos a 1.25x o 1.5x cuando se pueda), y además, el de Coursera tiene bastantes labs interesantes a completar. Los cursos que recomiendo son:

Google Certified Professional - Cloud Architect de Linux Academy:

Se trata de una serie de tres cursos (el enlace es al primero) bastante enfocados a pasar el examen, con un contenido muy bien explicado en todos ellos:

Architecting with Google Cloud Platform de Coursera:

Se trata de una de las especializaciones de Coursera, compuesta por un total de seis cursos. Aunque pueda dar la impresión que se solapa con el anterior, considero que son bastantes complementarios por la sencilla razón de que esta especialización consigue profundizar en mucha de la temática a cubrir, sin estar especialmente enfocado en el examen, pero con bastante buen criterio a la hora de abordar los contenidos, a mi parecer.

Además, contiene un conjunto de labs que aportan mucho al conocimiento de la plataforma, bajo mi punto de vista, y que recomiendo no saltarse aunque pueda resultar tentador, porque no son necesarios para aprobar la especialización ;-)

Google Cloud Platform Certification - Cloud Architect (GCP) de Udemy

Este es otro curso de las mismas características que los anteriores. Yo no lo hice porque consideré que se solapaba demasiado con los que ya había hecho; así que opté por comprar éste otro de sólo exámenes.

De todas formas, lo incluyo aquí porque considero que es otra opción que puede ser interesante a cubrir.

Fase 2

En esta segunda fase de estudio me centré en profundizar en cada una de las temáticas vistas en los anteriores cursos, pero por mi cuenta y utilizando la documentación de GCP. Para ello, me organicé el trabajo de una manera muy parecida a la que lo hace el curso anterior de Coursera, y fui sacando mis propias conclusiones y material a revisar.

En esta fase invertí menos tiempo que en la fase anterior, aunque también me supuso bastante esfuerzo debido a que a la vez fui agrupando conceptos, construyendo mis propios apuntes, etc.

A continuación he listado las diferentes temáticas en las que trabajé, lo que considero imprescindible dominar con solvencia de cara al examen, y algunos enlaces que considero interesantes:

1 Virtual Networking - Redes

En este apartado es necesario tener claro los diferentes tipos de conexión entre redes (VPN, Interconnect, etc), qué aplicar en cada caso y cómo dar solución a diferentes escenarios de soluciones híbridas.

Además, también es importante realizar alguna práctica interconectando redes mediante VPN y aplicando las dos políticas de routing. Algunos enlaces interesantes en este apartado son:

2 Compute Engine - Máquinas virtuales

Las máquinas virtuales son la base de todos los servicios de GCP. Por esto que es imprescindible dominarlas, conocer sus características, qué se puede realizar con ellas, (como por ejemplo qué cambios admiten en caliente o paradas), o los tipos de facturación y descuentos existentes.

Ahí van algunos enlaces interesantes para complementar los conceptos anteriores:

3 IAM

Ni qué decir tiene que dominar los conceptos de seguridad es básico a la hora de poder superar el examen.

Conocer la diferencias entre los principales roles, cómo se puede realizar la gestión de los usuarios de la plataforma, o cómo securizar las distintas soluciones a implementar, son conceptos clave dentro de este apartado. Ahí va el listado:

4 Storage - Almacenamiento

Sin duda una de las temáticas más recurrentes en el examen y que intervienen en multitud de preguntas. Además de tener claro a nivel técnico cada una de las opciones de almacenamiento que tenemos disponible en la plataforma, es muy importante saber cuándo utilizarlas desde un punto de vista funcional, según el caso de uso planteado.

Además, también es interesante dominar cómo mapear las diferentes opciones actuales de almacenamiento con su análogo cloud,y nociones básicas de cómo adaptar nuestro modelo de datos a la solución de almacenamiento seleccionada.

5 Monitorización

Otro de los puntos clave de GCP. Es bastante importante dominar los distintos productos involucrados en este aspecto, concretamente:

Estos son los enlaces a cada uno de los productos relacionados con la monitorización:

6 Balanceo y autoescalado

En este apartado es importante conocer los balanceadores disponibles en la plataforma, así como estar familiarizados con las políticas de autoescalado y cómo éstas son calculadas para crecer o decrecer el número de instancias.

7 Recursos, Deployment Manager y Automatización

Aquí he agrupado todo lo que tiene que ver con los distintos recursos de la plataforma y la automatización de su gestión.

De este modo en este apartado destacaría que es importante distinguir qué recursos tenemos disponibles en la plataforma, cuáles de ellos son globales/regionales/zonales, y cómo podemos automatizar los despliegues en la plataforma vía plantillas (Jinja2/Python) y archivos de configuración (yaml).

Los enlaces a destacar en cuanto a los recursos son:

Y la documentación relacionada con la automatización de los despliegues (Deployment Manager) es:

8 Managed Services - Servicios gestionados

Por último, en este apartado he incluido todos aquellos servicios gestionados que nos ofrece la plataforma y que están construidos sobre los pilares vistos en las otras secciones: App Engine, Container Engine, Functions, Pub/Sub, etc.

En líneas generales, para poder pasar el examen se puede decir que no es necesario conocer en profundidad ninguno de estos componentes, pero sí es esencial saber trabajar con ellos a un nivel básico, y, sobre todo, saber aplicarlos en los diseños de arquitectura que puedan plantearse.

A continuación los enlaces que me parecieron más interesantes revisar a la hora de cubrir estos aspectos:

Fase 3

En este último apartado he recopilado lo que considero que es importante estudiar en la recta final antes del examen. Esta fase fue la que menos tiempo me llevó y en la que estuve centrado en mis dos últimas semanas de preparación, aproximadamente. A destacar:

Soluciones de arquitectura

La documentación de Google es bastante extensa, y bastante buena. Y una de las cosas que encontré de especial utilidad es la parte de ella que habla de soluciones ya implementadas mediante Google Cloud Platform en distintos sectores de negocio.

Además, da la excelente casualidad que algunos de estos casos de negocio coinciden en su naturaleza con los propuestos para el examen, por los que los considero de doble utilidad.

Este es el listado de soluciones de arquitectura que, en mi opinión, merece más la pena revisar, aunque recomiendo revisar el máximo número de soluciones posible:

Prácticas

Por supuesto, toda experiencia real trabajando con la plataforma es muy útil, o en su defecto, todo que se pueda practicar mediante los labs disponibles:

Documentación de repaso final

También hacer hincapié en que, de cara al examen, considero muy importante repasar todo el contenido estudiado, como es lógico. Sobre todo si tenemos en cuenta que la materia es bastante extensa (como se ha podido comprobar en secciones anteriores).

Personalmente, y aunque esto puede variar dependiendo de las capacidades o el expertise de cada uno, yo encontré bastante útil la siguiente documentación como material de repaso ‘de último minuto:

Y, por supuesto:

¿Cómo es el examen?

El examen consta de 50 preguntas tipo tests, algunas con respuesta única y otras de multirespuesta (te indican el número de respuestas válidas en todo caso). Te conceden dos horas para hacerlo, tiempo que considero más que suficiente. Es más, creo que el tiempo para hacer el examen es el menor de los problemas para superarlo.

En cuanto a la tipología de las preguntas, al menos en mi caso, no se parecieron demasiado a los otros exámenes que hice en los distintos cursos que comentaba anteriormente, ni los que hice de Coursera y Linux Academy, ni los de Udemy (éste), aunque considero que son muy útiles en el proceso de formación.

Recuerdo que me encontré con todo tipo de preguntas: de código de bastante bajo nivel, de conocimiento concreto de algunas tecnologías de la plataforma, de diseño de arquitectura de bastante alto nivel, etc.

Además, tal y como te comentan en propia documentación, muchas de las preguntas (no sé decir exactamente cuántas, pero fueron un número importante) están basadas en los casos de estudio que plantean, así que, aunque permiten ver los casos prácticos durante el examen, es importante llevarlos bien preparados y con una solución prediseñada en la cabeza el día del examen.

Por lo demás, es como otro examen de certificación, con la salvedad de que no se puede realizar desde casa (a diferencia de otros como MongoDB o Spring Enterprise), sólo desde alguno de sus centros homologados, y que no se sabe cuantas preguntas respondidas correctamente se necesitan para superarlo (yo al menos lo desconozco).

¿Realmente merece la pena?

Aunque pueda parecer mucho trabajo, puedo decir que realmente merece la pena por todo lo que he aprendido. Además, hay que tener en cuenta que las arquitecturas cloud están cada vez más de moda. Esto no es ningún secreto. Y lo están por razones como las siguientes:

Conclusiones

Por último, me gustaría decir también que, en cualquier caso, esto no es una guía de cómo sacarse la certificación, aunque lo pueda parecer en un primer momento, ni garantiza absolutamente nada en ningún sentido, sino que sólo describe lo que me ha funcionado a mí, personalmente, en el camino hacia la certificación: cómo me he organizado y cómo me he preparado, nada más.

Además, y aquí hago un poco de spoiler, en el examen se cubren algunos conceptos que no son exclusivos de la plataforma, y que no se cubren de manera explícita en la documentación de Google (que yo sepa), como pueden ser conceptos de ALM, cuestiones de diseños de arquitectura de alto nivel, o buenas prácticas, por ejemplo.

Es por esto que considero que, además de estudiar y practicar todo lo que sea posible, obviamente, si se cuenta con experiencia como Arquitecto y/o Devops en otros proyectos, mejor que mejor.

Espero que este artículo resulte de utilidad y ayude a conseguir la certificación a todo aquel que se lo proponga, así, que, por último, sólo decir a estos valientes:

¡Ánimo y mucha suerte!

Cuéntanos qué te parece.

Enviar.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.