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!

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