GCP Professional Data Engineer Guide – September 2020

I have recently recalled my first experience with GCP. It was in London, shortly before the 2012 Olympics, in an online gaming project, initially thought for AWS, that was migrated to App Engine – PAAS platform that would evolve to the current GCP.

My initial impression was good, although the platform imposed a number of development limitations, which would be reduced later with the release of App Engine Flexible.

Coinciding with the launch of Tensor Flow as an Open Source framework in 2015, I was lucky enough to attend a workshop on neural networks – given by one of the AI scientists from Google Seattle – where I had my second experience with the platform. I was very surprised by the simplicity of configuration and deployment, the NoOps concept and a Machine Learning / AI offering, without competition at the time.

Do Androids Dream of Electric Sheep? Philip K. Dick would have “hallucinated” with the electrical dreams of neural networks – powered by Tensor Flow.

Exam

The structure of the exam is the usual one in GCP exams: 2 hours and 50 questions, with a format directed towards scenario-type questions, mixing questions of high difficulty with simpler ones of medium-low difficulty.

In general, to choose the correct answer, you have to apply technical and business criteria. Therefore, it is necessary a deep knowledge of the services from the technological point of view, as well as skill / experience to apply the business criteria in a contextual way, depending on the question, type of environment, sector, application, etc .. .

Image #1, Data Lake, the ubiquitous architecture – Image owned by GCP

We can group the relevant services according to the states (and substates) of the data cycle:

Management, Storage, Transformation and Analysis.

  • Ingestion Batch / Data Lake: Cloud Storage.
  • Ingestion Streaming: Kafka, Pub/Sub, Computing Services, Cloud IoT Core.
  • Migrations: Transfer Appliance, Transfer Service, Interconnect, gsutil.
  • Transformations: Dataflow, Dataproc, Cloud Dataprep, Hadoop, Apache Beam.
  • Computing: Kubernetes Engine, Compute Instances, Cloud Functions, App Engine.
  • Storage: Cloud SQL, Cloud Spanner, Datastore / Firebase, BigQuery, BigTable, HBase, MongoDB, Cassandra.
  • Cache: Cloud Memorystore, Redis.
  • Analysis / 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.
  • Security & encryption: IAM, Roles, Encryption, KMS, Data Prevention API, Compliance …
  • Operations: Kubeflow, AI Platform, Cloud Deployment Manager …
  • Monitorization: Cloud Stackdriver Logging, Stackdriver Monitoring.
  • Optimization: Cost control, Autoscaling, Preemptive instances …

Pre-requisites and recommendations

At this level of certification, the questions do not refer, in general, to a single topic. That is, a question from the Analytics domain may require more or less advanced knowledge of Computing, Security, Networking or DevOps to be able to solve it successfully. I´d recommend having the GCP Associate Cloud Engineer certification or have equivalent knowledge.

  • GCP experience at the architectural level. The exam is focused, in part, on the architecture solution, design and deployment of data pipelines; selection of technologies to solve business problems, and to a lesser extent development. I´d recommend studying as many reference architectures as possible, such as the ones I show in this guide.
  • GCP experience at the development level. Although no explicit programming questions appeared in my question set, or in the mock test, the exam requires technical knowledge of services and APIS: SQL, Python, REST, algorithms, Map-Reduce, Spark, Apache Beam (Dataflow)
  • GCP experience at Security level. Domain that appears transversally in all certifications – I´d recommend knowledge at the level of Associate Engineer.
  • GCP experience at Networking level. Another domain that appears transversely – I´d recommend knowledge at the level of Associate Engineer.
  • Knowledge of Data Analytics. It’s a no-brainer, but some domain knowledge is essential. Otherwise, I´d recommend studying books like “Data Analytics with Hadoop” or taking courses like Specialized Program: Data Engineering, Big Data and ML on Google Cloud in Coursera. Likewise, practicing with laboratories or pet projects is essential to obtain some practical experience.
  • Knowledge of the Hadoop – Spark ecosystem. Connected with the previous point. High-level knowledge of the ecosystem is necessary: Map Reduce, Spark, Hive, Hdfs, Pig
  • Knowledge of Machine Learning and IoT. Advanced knowledge in Data Science and Machine Learning is essential, apart from specific knowledge of GCP products. There are questions exclusively about this domain – at the level of certifications like AWS Machine Learning or higher. IoT appears on the exam in a lighter form, but it is essential to know the architecture and services of reference.
  • DevOps experience. Concepts such as CI / CD, infrastructure or configuration as code, are of great importance today, and this is reflected in the exam, although they do not have a great specific weight.

Standard questions

Representative question of the level of difficulty of the exam.

Image property of GCP

Practical migration scenario question, that includes cloud services and the Hadoop ecosystem, as well as concepts from the Analytics domain.

Services to study in detail

Image #2 – property of GCP
  • Cloud Storage – Core service that appears consistently in all certifications, and is central in the Data Lake systems. I´d recommend its study in detail at an architectural level – see Image 1 -, configurations according to the data temperature, and as an integration / storage element between the different services
  • BigQuery – Core service in the Analytics GCP domain as a BI and storage element. Extremely important in the exam, so have to be studied in detail: architecture, configuration, backups, export / import, streaming, batch, security, partitioning, sharding, projects, datasets, views, integration with other services, cost, queries and optimization SQL (legacy and standard) at table levels, keys …
  • Pub / Sub – Core service as an element of ingestion and integration. Its in-depth study is highly recommended: use cases, architecture, configuration, API, security and integration with other services (eg Dataflow, Cloud Storage) – Kafka’s native cloud mirror service.
  • Dataflow – Core service in the Analytics GCP domain as a process and transformation element. Implementation based on Apache Beam that is necessary to know at a high level and pipeline design. Use cases, architecture, configuration, API and integration with other services.
  • Dataproc – Core service in the Analytics GCP domain as a process and transformation element. It is a service based on Hadoop, and therefore, it is the indicated service for a migration to the cloud. In this case, not only knowledge of Dataproc is required, but also in native services: Spark, HDFS, HBase, Pig … use cases, architecture, configuration, import / export, reliability, optimization, cost, API and integration with other services.
  • Cloud SQL, Cloud Spanner – Cloud native relational databases. Use cases, architecture, configuration, security, performance, reliability, cost and optimization: clusters, transactionality, disaster recovery, backups, export / import, SQL performance and optimization, tables, queries, keys and debugging. Integration with other services.
  • Cloud Bigtable – Low latency NoSQL managed database, suitable for time series, IoT… ideal to replace a HBase installation on premise. Use cases, architecture, configuration, security, performance, reliability and optimization: clusters, CAP, backups, export / import, partitioning, performance, and optimization of tables, queries, keys. Integration with other services.
  • Machine Learning – One of the strengths of the certification is the domain “Operationalizing machine learning models”. Much more dense and complex than it may seem at first, since it not only includes the operability and knowledge of the relevant GCP services; likewise, it includes the knowledge of the Data Science fundamentals: algorithm selection, optimization, metrics … The level of difficulty of the questions is variable, but comparable to that of specific certifications, such as AWS Certified Machine Learning – Specialty. Most important services: BigQuery ML, Cloud Vision API, Cloud Video Intelligence, Cloud AutoML, Tensor Flow, Dialogflow, GPU´s, TPU´s
  • Security – Security is a transversal concern across all domains, and appears consistently in all certifications. In this case, it appears as an independent technical topic, crosscutting concern or as a business requirement: KMS, IAM, Policies, Roles, Encryption, Data Prevention API …
Image #3, IoT Reference Architecture – owned by GCP

Very important services to consider

  • Networking – Cross-domain that can appear in the form of separate technical issues, cross cutting concerns, or as business requirements: VPC, Direct Interconnect, Multi Region / Zone, Hybrid connectivity, Firewall rules, Load Balancing, Network Security, Container Networking, API Access ( private / public) …
  • Hadoop – The exam covers ecosystems and third-party services like Hadoop, Spark, HDFS, Hive, Pig … use cases, architecture, functionality, integration and migration to GCP.
  • Apache Kafka – Alternative service to Pub / Sub, so it is advisable to study it at a high level: use cases, operational characteristics, configuration, migration and integration with GCP – plugins, connectors.
  • IoT – It can appear in various questions at the architectural level: use cases, reference architecture and integration with other services. IoT core, Edge Computing.
  • Datastore / Firebase – Document database. Use cases, configuration, performance, entity model, keys and index optimization, transactions, backups, export / import and integration with other services. It doesn’t carry as much weight as the other data repositories.
  • Cloud Memory Store / Redis – Structured data cache repository. Use cases, architecture, configuration, performance, reliability and optimization: clusters, backups, export / import and integration with other services.
  • Cloud Dataprep – Use cases, console and general operation, supported formats, and Dataflow integration.
  • Cloud Stackdriver – Use cases, monitoring and logging, both at the system and application level: Cloud Stackdriver Logging, Cloud Stackdriver Monitoring, Stackdriver Agent and plugins.

Other services

  • MongoDB, Cassandra – NoSQL databases that can appear in different scenarios. Use cases, architecture and integration with other services.
  • Cloud Composer – Use cases, general operation and web console, configuration of diagram types, supported formats, import / export, integration with other services, connectors.
  • Cloud Data Studio – Use cases, configuration, networking, security, general operation and environment, and integration with other services.
  • Cloud Data Lab – Use cases, general operation and web console, types of diagrams, supported formats, import / export and integration with other services.
  • Kubernetes Engine – Use cases, architecture, clustering and integration with other services.
  • Kubeflow – Use cases, architecture, environment configuration, Kubernetes.
  • Apache Airflow – Use cases, architecture and general operation.
  • Cloud Functions Use cases, architecture, configuration and integration with other services – such as Cloud Storage and Pub / Sub, in Push / Pull mode.
  • Compute Engine – Use cases, architecture, configuration, high availability, reliability and integration with other services.
  • App Engine – Use cases, architecture and integration with other services.

Bibliography & essential resources

Google provides a large number of resources for the preparation of this certification, in the form of courses, official guide book, documentation and mock exams. These resources are highly recommended, and in some cases, I would say essential.

The Certification Preparation Course, contained in the Data Engineering Specialized Program, includes an extra exam, lots of additional tips and materials and labs – using the external Qwik Labs tool.


Bibliography (selection) that I have used for the preparation of the certification

As I have previously indicated, I find the Google courses on Coursera to be excellent, as they combine a series of short videos, reading material, labs, and test questions, thus creating a very dynamic experience. In any case, they should only be considered as a starting point, being necessary the deepening – according to experience – in each one of the domains using, for instance, the excellent GCP documentation.

But you should not limit yourself to online courses. I can’t hide the fact that I love books in general, and IT books in particular. In fact, I have a huge collection of books dating back to the 80s, which at some point I will donate to a local Cervantina bookstore.

Books provide a deeper and more dynamic experience than videos, which can be a bit monotonous if they are too long – as well as being a much more passive experience – like watching TV. The ideal is the combination of audiovisual and written media, thus creating your own learning path.

Laboratories

Image #4 – Data Lake based upon Cloud Storage – owned by GCP

Part of the job as a Data Engineer consists of creating, integrating, deploying and maintaining data pipelines, both in batch and streaming mode.

The Data Engineering Quest contains several labs that introduce the creation of different data transformation, IoT, and Machine Learning pipelines, so I find them excellent exercises – and not just for certification.

Is it worth it?

The level of certification is advanced, and in general, it should not be the first cloud certification to obtain. It covers a large amount of material and domains, so tackling it without a certain level of prior knowledge can be quite a complex task.

If we compare it with the mirror certification on the AWS platform, it covers almost twice as much material, mainly due to the inclusion of questions about the Machine Learning / Data Science domain – which in the case of AWS have been eliminated, to be included in its own certification. Therefore, it is like taking two certifications in one.

Is it worth? of course, but not as a first certification – depending on the experience provided.

Certifications are a good way, not only to validate knowledge externally, but to collect updated information, validate good practices and consolidate knowledge with real practical cases (or almost).

Good luck to you all!

GCP Professional Data Engineer – Guía Septiembre 2020

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!

AWS Certified Developer Reloaded

I’m going to share my recent experience with the re-certification – June 2020AWS Developer, one of my favorites, without a doubt. An experience that has been very different from the previous one, since, if my memory serves me well, I didn’t find any repeated question.

The structure of the exam is the usual one for the associated level: 2 hours and 65 questions, with an evolved format, even more, towards scenario-type questions. I don’t recall any direct questions, and certainly not extremely easy ones. That said, it seems to me to be a much more balanced exam than the previous version, where some services had much more weight than others – API gateway, I’m looking at you.

Virtually all Core / Serverless services – important ones – are represented in the exam:

  • S3
  • In Memory Databases: Elastic Cache, Memcache, Redis
  • Databases: RDS, DynamoDB …
  • Security: KMS, Policies ..
  • CI / CD, IAC: ElasticBeanstalk, Codepipeline, Cloudformation …
  • Serverless: Lambda functions, API Gateway, Cognito …
  • Microservices: SQS, SNS, Kinesis, Containers, Step Functions …
  • Monitorización: Cloudwatch, Cloudwatch Logs, Cloudtrail, X-Ray …
  • Optimización: Cost control, Autoscaling, Spot Fleets …

Developer is the Serverless certification par excellence, although some services, such as Step Functions or Fargate Containers, are poorly represented – just one or two questions, and of high difficulty.

Serverless is a great option for IoT Sytems

Prerequisites and recommendations

I will not repeat the information that is already available on the AWS website; instead, I will give my recommendations and personal observations.

Professionals with experience in Serverless development – especially in AWS – Microservices, or experience with React-type applications, will be the most comfortable when preparing and facing this certification.

  • AWS Experience. Certification indicated for professionals with little or no experience on AWS. I´d recommend getting the AWS Certified Cloud Practitioner, though.
  • Dev Experience. It’s essential to possess a certain level, since many of the questions are eminently practical, and are the result of experience in the development field. Knowledge of programming languages like Python, Javascript or Java is something very desirable. The exam poses programming problems indirectly, through concepts, debugging and optimization. The lack of this knowledge or experience generates the impression in many professionals that this certification is of a very high level of difficulty, when in my opinion it is not.
  • Architecture experience. The exam is largely focused on the development of Cloud applications, especially Serverless – Microservices. However, some questions may require knowledge at the Cloud / Serverless / Containers architecture pattern level.
  • DevOps Experience. Concepts such as CI / CD, infrastructure or configuration as code are of great importance today, and this is reflected in the exam. Obviously, the questions focus – for the most part – on AWS products, but knowledge of other products like Docker, Jenkins, Spinaker, Git and general principles can go a long way. Let’s not forget that this certification, together with SysOps, are part of the recommended path to obtain the AWS DevOps Pro certification, and obtaining them automatically re-certifies the two previously mentioned.

Neo, knowing the path is not the same as walking it” – Morpheus. The Matrix, 1999


Imagen aws.amazon.com

AWS Technical Essentials: introductory course, low level. Live remote or in person.

Developing on AWS: course focused on developing AWS applications using the SDK. It is intermediate level, and the agenda seems quite relevant to the certification. Live remote or in person. Not free.

Advanced Developing on AWS: interesting course, but focused on AWS Architecture: migrations, re-architecture, microservices .. Live remote or face-to-face. Not free.

Exam Readiness Developer: essential. Free and digital.

AWS Certified Cloud Practitioner: Official certification, especially aimed at professionals with little knowledge of the Cloud in general, and AWS in particular.

Exam

As I have previously commented, the exam format is similar to most certifications, associated or not. That is, “scenario based”, and in this case of medium difficulty, medium-high. You are not going to find “direct” or excessively simple questions. As it is an associated level exam, each question focuses on a single topic, that is, if the question is about DynamoDB, the question will not contain cross cutting concerns, such as Security, for instance.

Let’s examine a question taken from the certification sample questionnaire:

Very representative question of the medium – high level of difficulty of the exam. We are talking about a development-oriented certification, so you will find questions about development, APIs, configuration, optimization and debugging. In this case, we are presented with a real example of configuring and designing indexes for a DynamoDB table.

DynamoDB is an integral part of the AWS Serverless offering and the flagship database – with permission from Aurora Serverless. Low latency NOSQL database ideal for IoT, events, time – series etc … Its purely Serverless nature allows its use without the need to provide and manage servers, or the need to place it within a VPC. This fact provides a great advantage when accessing it directly from Lambda functions, since it is not necessary that they would “live” within a VPC, with the added expense of resource management and possible performance problems – “enter Hyperplane”.

DynamoDB hardly appears in the new AWS Databases certification, so I´d recommend that you study it in depth for this certification, due the number of questions that may appear.

Services to study in detail

The following services are of great importance – not just to pass the certification – so I highly recommend in-depth study.

Imagen aws.amazon.com
  • AWS S3 – Core service. It appears consistently across all certifications. Use cases, security, encryption, API, development and debugging.
  • Seguridad – It appears consistently in all certifications: KMS encryption, Certificate Manager, AWS Cloud HMS, Federation, Active Directory, IAM, Policies, Roles etc….
  • AWS Lambda – Use cases, creation, configuration-sizing, deployment, optimization, debugging and monitoring (X-RAY).
  • AWS DynamoDB – Use cases, table creation, configuration, optimization, indexes, API, DAX, DynamoDB Streams.
  • AWS API Gateway – Use cases, configuration, API, deployment, security and integration with S3, Cognito and Lambda. Optimization and debugging.
  • AWS ElastiCache – Use cases, configuration-sizing, API, deployment, security, optimization and debugging. It weighs heavily on the exam – at least in my question set.
  • AWS Cognito – Use cases, configuration and integration with other Serverless and Federation services. Concepts like SAML, OAUTH, Active Directory etc … are important for the exam.
  • AWS Cloudformation – Use cases, configuration, creation of scripts, knowledge of the nomenclature / CLI commands.
  • AWS SQS – Use cases, architecture, configuration, API, security, optimization and debugging. Questions of different difficulty levels may appear.

Very important services to consider

  • AWS SNS – Knowledge of use cases at architecture level, configuration, endpoints, integration with other Serverless services.
  • AWS CLI – Average knowledge of different commands and nomenclature. In my set of questions not many appeared, but in any case, it is very positive to have some ease at the console level.
  • AWS Kinesis – Some more complex questions appear in this version of the exam than in the previous embodiment. Use cases, configuration, sizing, KPL, KCL, API, debugging and monitoring.
  • AWS CloudWatch, Events, Log – It appears consistently across all certifications. Knowledge of architecture, configuration, metrics, alarms, integration, use cases.
  • AWS X-RAYUse cases, configuration, instrumentation and installation in different environments.
  • AWS Pipeline, CodeBuild, Cloud Deploy, CodeCommit, CodeStar – High-level operation, architecture, integration and use cases. I´d recommend in depth study of CodePipeline and CodeBuild.
  • AWS ELB / Certificates – Use cases, ELB types, integration, debugging, monitoring, security – certificate installation.
  • AWS EC2, Autoscaling – Use cases, integration with ELB.
  • AWS Beanstalk – Architecture, use cases, configuration, debugging and deployment types – very important for the exam: All at Once, Rolling etc …
  • AWS RDS – One of the star services of AWS and the Databases Certification. Here it makes its appearance in a limited way: use cases, configuration, integration – caches – debugging and monitoring.

Other Services

  • AWS Networking – architecture and basic network knowledge: VPC, security groups, Regions, Zones, VPN … They appear in a general and limited way, compared to the rest of the certifications. It is one of the reasons why this certification is ideal for beginners. Network architecture on AWS can be a very complex and arid topic.
  • AWS Step FunctionsA service widely used in the business environment, but which appears circumstantially in certifications. I recommend studying architecture, use cases and nomenclature – the questions are not easy.
  • AWS SAM – Use cases, configuration and deployment. SAM CLI Commands.
  • AWS ECS / Fargate – Its appearance in the certifications is quite disappointing – and more so when compared to Google Cloud´s certifications, where Kubernetes – GKE – has a main role – logical, since it´s Google’s native technology. I´d recommend studying the architecture, use cases – microservices – configuration, integration and monitoring (X-RAY).
  • AWS Cloudfront – General operation and use cases. Integration with S3.
  • AWS Glue – General operation and use cases.
  • AWS EMR General operation and use cases.
  • AWS DataPipeline – General operation and use cases.
  • AWS Cloudtrail – General operation and use cases.
  • AWS GuardDuty – General operation and use cases.
  • AWS SecretsManager – General operation and use cases.

Essential Resources

  • AWS Certification Website.
  • Sample questions
  • Readiness course – recommended, with additional practice questions,
  • AWS Whitepapers – “Storage Services Overview“, “Hosting Static Websites on AWS“, “In Memory Processing in the Cloud with Amazon ElastiCache“, “Serverless Architectures with AWS Lambda“, “Microservices“.
  • FAQS – specially for Lambda, API Gateway, DynamoDB, Cognito, SQS and ElastiCache.
  • AWS Compute Blog
  • Practice Exam – highly recommended, level of difficulty representative of the exam.

Laboratories

I´d like to propose you an incremental practical exercise, cooked by me, that can be useful for preparing for the exam.

Serverless Web App

Imagen aws.amazon.com
  • Create a static website and host it on S3. Use AWS CLI and APIS to create a bucket and copy the contents.
  • Create a repository with CodeCommit and upload the files from the Web to it.
  • Integrate S3 and Cloudfront – creating a Web distribution.
  • Create a Serverless backend with API Gateway, Lambda and DynamoDB, or alternatively Aurora Serverless, using Cloudformation and the AWS SAM model.
  • Code the Lambdas functions with one of the supported runtimes – Python, Javascript, Java … – and use BOTO to insert and read in DynamoDB. Each Lambda will correspond to an API Gateway method, accessible from the Web.
  • Integrate X-Ray to trace Lambdas.
  • Create the Stack from the console.
  • Upload the generated YAML´s files to CodeCommit.
  • Optional: create a pipeline using CodePipeline and CodeCommit.
  • Optional: integrate Cognito with API Gateway to authenticate, manage, and restrict API usage.
  • Optional: replace DynamoDB with RDS and integrate Elasticache.
  • Optional: add a SQS queue, which will be fed from a Lambda. Create another Lambda that consumes the queue periodically.

Is it worth it?

Certifications are a good way, not only to validate knowledge externally, but to collect updated information, validate good practices and consolidate knowledge with real (or almost) practical cases.

Obtaining the AWS Certified Developer seems to me a “no brainer” in most cases, as I explained previously in another post, and in this one.

Good luck to everyone!

AWS Certified Developer Recargado

Voy a compartir mi reciente experiencia con la recertificación – Junio 2020 – AWS Developer, una mis certificaciones favoritas, sin ninguna duda. Una experiencia que ha sido muy distinta a la de la convocatoria anterior, ya que, si mi memoria no me engaña, no encontré ninguna pregunta repetida.

La estructura del examen es la habitual para el nivel asociado: 2 horas y 65 preguntas, con un formato evolucionado, aún más, hacia las preguntas tipo escenario. No recuerdo ninguna pregunta directa, y desde luego, ninguna extremadamente fácil. Dicho esto, me parece un examen bastante más equilibrado que la versión anterior, donde algunos servicios tenían mucho más peso que otros – API gateway, I´m looking at you.

Prácticamente, todos los servicios Core / Serverless – importantes – tienen representación en el examen:

  • S3
  • In Memory Databases: Elastic Cache, Memcache, Redis
  • Bases de datos: RDS, DynamoDB …
  • Seguridad y encriptación: KMS, Policies ..
  • Despliegue, Configuración e IAC: ElasticBeanstalk, Codepipeline, Cloudformation …
  • Serverless: Funciones Lambda, API Gateway, Cognito …
  • Microservicios: SQS, SNS, Kinesis, Contenedores, Step Functions …
  • Monitorización: Cloudwatch, Cloudwatch Logs, Cloudtrail, X-Ray …
  • Optimización: Control de costes, Contenedores, Autoscaling, Spot Fleets …

Developer es la certificación Serverless por excelencia, aunque algunos servicios, como Step Functions o Contenedores tipo Fargate, están pobremente representados – apenas una o dos preguntas, y de dificultad elevada.

Serverless es una gran opción para sistemas IoT

Pre-requisitos y recomendaciones

No voy a repetir la información que ya está disponible en la web de AWS; en cambio, voy a dar mis recomendaciones y observaciones personales.

En el siguiente post reflexiono sobre la presente certificación, y cómo debería ser la primera obtenida, en muchos casos:

https://metanube.org/2020/06/22/aws-certified-solutions-architect-mas-alla-del-hype/

Profesionales con experiencia en desarrollo Serverless – sobre todo en AWS – Microservicios, o experiencia con aplicaciones de tipo React, son los que más cómodos se encontrarán a la hora de preparar y enfrentarse a esta certificación.

  • Experiencia AWS. Certificación indicada para aquellos profesionales con poca o ninguna experiencia en AWS. Recomiendo al menos obtener la AWS Certified Cloud Practitioner.
  • Experiencia en Desarrollo. Imprescindible poseer un cierto nivel, ya que muchas de las preguntas son eminentemente prácticas, y son fruto de la experiencia en el campo de desarrollo. Conocimientos de lenguajes de programación como Python, Javascript o Java es algo muy deseable. El examen plantea problemas de programación de forma indirecta, mediante conceptos, depuración de errores y optimización. La falta de este conocimiento o experiencia, genera la impresión en muchos profesionales que esta certificación es de un nivel de dificultad muy elevada, cuando en mi opinión, no lo es.
  • Experiencia en Arquitectura. El examen está enfocado en gran parte al desarrollo de aplicaciones Cloud, especialmente Serverless – Microservicios. Sin embargo, algunas preguntas pueden requerir conocimientos a nivel de patrones arquitectura Cloud / Serverless / Containers.
  • 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. Obviamente, las pregunta se centran – mayoritariamente – en productos AWS, pero el conocimiento de otros productos – Docker, Jenkins, Spinaker, Git – y principios generales pueden ser de gran ayuda. No olvidemos que esta certificación, junto con SysOps, forman parte del path recomendado para obtener la certificación AWS DevOps Pro, y su obtención re-certifica automáticamente las dos anteriormente mencionadas.

Neo, no es lo mismo conocer el camino que recorrerlo” – Morpheus. The Matrix, 1999


Imagen aws.amazon.com

AWS Technical Essentials: curso introductorio, nivel bajo. Live remoto o presencial – de pago.

Developing on AWS: curso centrado en el desarrollo de aplicaciones AWS usando la SDK. Es de nivel intermedio, y el temario me parece bastante relevante para la certificación. Live remoto o presencial – de pago.

Advanced Developing on AWS: interesante curso, pero centrado en Arquitectura AWS: migraciones, re-arquitectura, microservicios … Live remoto o presencial – de pago.

Exam Readiness Developer: imprescindible. Gratuito y digital.

AWS Certified Cloud Practitioner: certificación oficial AWS, especialmente dirigida a aquellos profesionales con escasos conocimientos sobre Cloud en general, y AWS en particular.

Examen

Como he comentado previamente, el formato del examen es similar a la mayoría de certificaciones, asociadas o no. Es decir, “scenario based”, y en este caso de dificultad media, media-alta. No vais a encontrar preguntas “directas” o excesivamente sencillas. Al ser un examen de nivel asociado cada pregunta se centra en un sólo tópico, es decir, si la pregunta es sobre DynamoDB, la pregunta no contendrá cross cutting concerns, como Seguridad, por ejemplo.

Examinemos una pregunta tomada del cuestionario de ejemplo la certificación:

Pregunta muy representativa del nivel de dificultad medio – alto del examen. Estamos hablando de una certificación orientada al desarrollo, por lo que os vais a encontrar con preguntas de carácter técnico, conocimiento profundo de API´s, configuración, optimización y depuración. En este caso, nos plantean un ejemplo real de configuración y diseño de índices para una tabla de DynamoDB.

DynamoDB es parte integral de la oferta Serverless de AWS y la base de datos estrella – con permiso de Aurora Serverless. Base de datos NOSQL de baja latencia ideal para IoT, eventos, time – series etc … Su naturaleza puramente Serverless permite su utilización sin necesidad de proveer y gestionar servidores, o la necesidad de situarla dentro de una VPC. Este hecho proporciona una gran ventaja a la hora de acceder a la misma de forma directa desde funciones Lambda, ya que no es necesario que estas “vivan” dentro de una VPC, con el gasto añadido de gestión de recursos y posibles problemas de rendimiento – “enter Hyperplane“.

DynamoDB apenas aparece en la nueva certificación AWS Databases, por lo que recomiendo su estudio para la presente certificación, por la profundidad y número de preguntas que pueden aparecer.

Servicios a estudiar de forma detallada

Los siguientes servicios son de gran importancia – no solo para aprobar la certificación – por lo que recomiendo su estudio en profundidad.

Imagen aws.amazon.com
  • AWS S3 – Servicio Core. Aparece de forma consistente en todas las certificaciones. Casos de uso, seguridad, encriptación, API, desarrollo y depuración.
  • Seguridad: Aparece de forma consistente en todas las certificaciones: encriptación KMS, Certificate Manager, AWS Cloud HMS, Federación, Active Directory, IAM, Policies, Roles etc …
  • AWS Lambda – Casos de uso, creación, configuración-sizing, despliegue, optimización, depuración y monitorización (X-RAY).
  • AWS DynamoDB – Casos de uso, creación de tablas, configuración, optimización, índices, API, DAX, DynamoDB Streams.
  • AWS API Gateway – Casos de uso, configuración, API, despliegue, seguridad e integración con S3, Cognito y Lambda. Optimización y depuración.
  • AWS ElastiCache – Casos de uso, configuración-sizing, API, despliegue, seguridad, optimización y depuración. Tiene gran peso en el examen – al menos en mi set de preguntas.
  • AWS Cognito – Casos de uso, configuración e integración con otros servicios Serverless y Federación. Conceptos como SAML, OAUTH, Directorio Activo etc … son importantes para el examen.
  • AWS Cloudformation – Casos de uso, configuración, creación de scripts, conocimiento de la nomenclatura / comandos CLI.
  • AWS SQS – Casos de uso, arquitectura, configuración, API, seguridad, optimización y depuración. Pueden aparecer preguntas de diferente nivel de dificultad.

Servicios muy importantes a tener en cuenta

  • AWS SNS – Conocimientos de casos de uso a nivel arquitectura, configuración, endpoints, integración con otros servicios Serverless.
  • AWS CLI – Conocimiento medio sobre distintos comandos y nomenclatura. En mi set de preguntas no aparecieron muchas, pero en cualquier caso, es muy positivo tener cierta soltura a nivel consola.
  • AWS Kinesis – En esta versión del examen aparecen algunas preguntas de mayor complejidad que en la encarnación anterior. Casos de uso, configuración, sizing, KPL, KCL, API, depuración y monitorización.
  • AWS CloudWatch, Events, Log – Aparece de forma consistente en todas las certificaciones. Conocimientos arquitectura, configuración, métricas, alarmas, integración, casos de uso.
  • AWS X-RAYCasos de uso, configuración, instrumentación e instalación en diferentes entornos.
  • AWS Pipeline, CodeBuild, Cloud Deploy, CodeCommit, CodeStar – Funcionamiento a alto nivel, arquitectura, integración y casos de uso. Recomiendo un estudio más detallado de Pipeline y CodeBuild.
  • AWS ELB / Certificates – Casos de uso, tipos de ELB, integración, depuración, monitorización, seguridad – instalación de certificados.
  • AWS EC2, Autoscaling – Parecido al caso interior. Casos de uso, integración con ELB.
  • AWS Beanstalk – Arquitectura, casos de uso, configuración, depuración y tipos de despliegue – muy importante para el examen: All at Once, Rolling etc …
  • AWS RDS – Uno de los servicios estrella de AWS y de la Databases Certification. Aquí hace su aparición de forma limitada: casos de uso. configuración, integración – caches – , depuración y monitorización.

Otros servicios

  • AWS Networking – arquitectura y conocimientos básicos de red: VPC, security groups, Regiones, Zonas, VPN … Aparecen de forma general y limitada, en comparación con el resto de certificaciones. Es una de las razones por la cual esta certificación es ideal para principiantes. La arquitectura de red en AWS puede ser un tema muy complejo y árido.
  • AWS Step FunctionsUn servicio muy utilizado en el entorno empresarial, pero que en las certificaciones aparece de forma circunstancial. Recomiendo estudiar arquitectura, casos de uso y nomenclatura – las preguntas no son sencillas.
  • AWS SAM – Casos de uso, configuración y despliegue. Comandos SAM CLI.
  • AWS ECS / Fargate – Su aparición en las certificaciones es bastante decepcionante, y más si lo comparamos con las certificaciones de Google Cloud, donde Kubernetes – GKE – tiene un papel principal – lógico, ya que es una tecnología nativa de Google. Está claro que la estrategia de AWS es otra, ya que los contenedores son unas de las tecnologías más utilizadas hoy en día – obvio espejo de Serverless. Recomiendo estudiar la arquitectura, casos de uso – microservicios – configuración, integración y monitorización (X-RAY).
  • AWS Cloudfront – Funcionamiento general y casos de uso. Integración con S3.
  • AWS Glue – Funcionamiento general y casos de uso.
  • AWS EMR Funcionamiento general y casos de uso.
  • AWS DataPipeline – Funcionamiento general y casos de uso.
  • AWS Cloudtrail – Funcionamiento general y casos de uso.
  • AWS GuardDuty – Funcionamiento general y casos de uso.
  • AWS SecretsManager – Funcionamiento general y casos de uso.

Recursos esenciales

  • AWS Certification Website.
  • Preguntas de ejemplo
  • Curso de preparación – recomendado, con preguntas de práctica adicionales.
  • AWS Whitepapers – “Storage Services Overview“, “Hosting Static Websites on AWS“, “In Memory Processing in the Cloud with Amazon ElastiCache“, “Serverless Architectures with AWS Lambda“, “Microservices“.
  • FAQS para cada servicio – especialmente para Lambda, API Gateway, DynamoDB, Cognito, SQS y ElastiCache.
  • AWS Compute Blog
  • Examen de práctica – recomendado, nivel de dificultad representativo del examen.

Laboratorios

Os propongo un ejercicio práctico incremental, de mi propia cosecha, que puede ser de utilidad de cara a la preparación del examen.

Aplicación Web Serverless orientada a Microservicios

Imagen aws.amazon.com
  • Crear una web estática y alojarla en S3. Utilizar AWS CLI y APIS para crear un bucket y copiar los contenidos.
  • Crear un repositorio con CodeCommit y subir los ficheros de la Web al mismo.
  • Integrar S3 y Cloudfront, creando una distribución Web.
  • Crear un backend Serverless con API Gateway, Lambda y DynamoDB, o en su defecto Aurora Serverless, utilizando Cloudformation y el modelo AWS SAM.
  • Codificar las Lambdas con uno de los runtimes soportados – Python, Javascript, Java … – y utilizar Boto para insertar y leer en DynamoDB. Cada Lambda se corresponderá con un método de API Gateway, accesibles desde la Web.
  • Integrar X-Ray para tracear las Lambdas.
  • Crear el Stack desde desde la consola.
  • Subir los ficheros YAML´s generados a CodeCommit.
  • Opcional: crear un pipeline usando CodePipeline y CodeCommit.
  • Opcional: integrar Cognito con API Gateway para autenticar, gestionar y restringir el uso de la API.
  • Opcional: sustituir DynamoDB por RDS e integrar ElasticCache.
  • Opcional: añadir una cola SQS. que será alimentada desde una Lambda. Crear otra Lambda que consuma la cola de forma periódica.

¿Merece la pena?

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).

La obtención de la AWS Certified Developer me parece un “no brainer” en la mayoría de los casos, como he explicado anteriormente en otro post, y en este mismo.

¡Buena suerte a todos!