En este post quiero compartir mi experiencia sobre cómo obtuve la certificación de Hashicorp Terraform Associate, una certificación que va ganando terreno en el campo de IT, ya que la herramienta es líder en el campo de infraestructura como código (IaC).

Sobre mi experiencia previa y qué gané con la certificación

Mi experiencia con Terraform antes de haber obtenido la certificación era de nivel básico-intermedio, aproximadamente de unos 6 meses trabajando con Terraform. Hacía cosas básicas como una plantilla sencilla sin mucho más que montar una infra en AWS con IaaS, eso quiere decir que desplegaba un Launch Template con Auto Scaling Group y un balanceador ALB con su respectivo Target Group; además de un RDS Multi-AZ.

Luego de haber terminado ese proyecto, comencé una migración donde ya había Terraform que se tenían que modificar y/o refactorizar, además de agregar nuevos recursos. Allí descubrí trabajar con los módulos y no con escribir todo en una sola plantilla.

Al estudiar para la certificación, aprendí muchas cosas nuevas y mejoré el dominio de la herramienta. Por ejemplo, aprendí que “manchar” (taint) un recurso de Terraform para que al momento de hacer una actualización este recurso se destruya y se recree en la próxima implementación.

Profundicé en otros temas que conocía, como el correcto uso de la creación de módulos y el manejo de los local, además de entender mejor el manejo del state por línea de comando. Una experiencia muy enriquecedora para mi nivel profesional.

Hablemos un poco sobre la infraestructura como código (IaC)

Para comenzar vamos a aclarar a qué llamamos infraestructura cómo código (IaC).

Infraestructura cómo código (Infrastructure as Code) es la forma de desplegar infraestructura escribiendo plantillas (código) para nube pública o soluciones on-prem.

La ventaja de ello es que una vez creadas las plantillas, podemos implementar en minutos toda una infraestructura compleja y en minutos destruirla (de ser necesario), o aplicar cambios en “caliente” a la infraestructura según se necesite.

Con Terraform podemos tener una comparativa de lo que hay en la nube pública o en on-prem desplegado y nuestras plantillas, de esa manera sabremos si ha habido o no un cambio hecho de forma manual (algo que no deberíamos hacer nunca si utilizamos infraestructura como código).

Terraform es un producto de una empresa innovadora llamada HashiCorp que siempre ha tenido muchos productos punteros en el mundo de la tecnología. De hecho, si has trabajado con Vagrant, ya has utilizado un producto de HashiCorp.

Acerca del examen

Hablemos ahora de la certificación de HashiCorp Terraform Associate, el examen se realiza de forma online, y tiene un coste de $70.50 USD (sin aplicar impuestos), el idioma es en inglés y tiene el siguiente formato:

  • Selección múltiple.
  • Múltiple respuestas.
  • Rellenar texto con la respuesta.
  • Opción de verdadero o falso.

Los temas que cubre el examen son los siguientes:

  • Understand infrastructure as code (IaC) concepts: preguntan sobre qué es IaC y sus ventajas.
  • Understand Terraform's purpose (vs other IaC): se basa en conocer los beneficios del Multi-Cloud y proveedores agnósticos y explicar los beneficios del state.
  • Understand Terraform basics: sobre el manejo e instalación de Terraform y los provider, describir la arquitectura basada en plug-in, uso de múltiples providers, describir como Terraform busca y usa providers, además de cuándo usar o no los provisioners local-exec y o remote-exec.
  • Use the Terraform CLI (outside of core workflow): basado en un escenario dado, responden preguntas sobre uso de formato de en Terraform, hacer uso de “manchar” (taint) un recurso o no, importar o no al state un recurso previamente creado, cuándo trabajar con workspaces y cuándo habilitar el logging.
  • Interact with Terraform modules: preguntan sobre interactuar con inputs y outputs de módulos, describir el alcance de las variables de los módulos y módulos child, buscar módulos en el Terraform Registry y trabajar con versiones en los módulos.
  • Navigate Terraform workflow: sobre el flujo de trabajo que hay que hacer en Terraform, cómo inicializar un directorio de trabajo, cómo validar la configuración de una plantilla y cómo crear y destruir recursos en con Terraform.
  • Implement and maintain state: se debe conocer el backend local, el state locking, manejar métodos de autenticación de backend, describir y conocer los métodos que hay para crear un state remoto y el efecto de refresh el state.
  • Read, generate, and modify configuration: sobre el uso de variables y outputs, las mejores prácticas de manejo de secrets en Terraform, entender el tipo de datos complejos (map, list, etc), la diferencia y configuración entre resource y data y trabajar con bloques dinámicos.
  • Understand Terraform Cloud and Enterprise capabilities: para finalizar se enfoca en las características y capacidades de los productos de Terraform Enterprise ofrecidos por HashiCorp, y las diferencias que existen entre la versión Open Sources y la Enterprise.

Para mayor información y recursos dejo este enlace.

¿Cómo me preparé para presentar este examen de certificación?

Lo primero es tener experiencia en el producto, eso siempre ayuda mucho al momento de presentarse a un examen de certificación. Para la certificación de Terraform Associate, el fabricante ofrece unas guías de estudio (te aconsejo que lo leas) y además unas preguntas de ejemplo.

La documentación del fabricante es crucial para aprender, os recomiendo revisar los detalles de la misma. Allí se puede encontrar información sobre diversos temas muy importantes que tocan en el examen (como, por ejemplo, el uso en detalle del comando terraform).

Se puede revisar también el Terraform Registry para ver los ejemplos y realizar prácticas, aplicando lo comentado en la documentación y así poder ver mejor lo planteado en las guías de estudio.

Recomiendo ampliamente hacer el curso de Udemy de Zeal Vora que es excelente y se aprende muchísimo :D

¿Cómo me organicé para estudiar?

Lo primero que hice fue dedicarle dos horas diarias a estudiar el material de HashiCorp basado en su guía de estudio.

Realizaba prácticas de despliegue de infraestructura utilizando AWS como nube pública para estudiar; no levantaba una infraestructura grande sino que hacía cosas puntuales para ver el funcionamiento y comportamiento de Terraform basado en la guía de estudio.

Luego de haber terminado la guía de estudio de HashiCorp, comencé el curso de Udemy de Zeal Vora dedicándole también dos horas diarias.

Y para finalizar recomiendo “medir” tus conocimientos utilizando estos test de prácticas de la certificación.

En total yo calculo que me llevó entre un mes o mes y medio preparar la certificación completa.

Recomendaciones para el día de la presentación

El día de presentación del examen es muy importante lo siguiente:

  • Estar frente al ordenador 30 minutos antes del examen y, sobre todo, revisar que la conexión con internet y los requisitos del sistema funcionen al 100%.
  • Estar tú solo en el lugar donde se va a hacer el examen.
  • Ellos te solicitarán que muestres con la cámara del ordenador la sala en un paneo de 360 grados y el escritorio (que debe estar limpio y sin absolutamente nada más que el ratón, teclado y el ordenador).
  • No tener doble monitor.
  • No hablar durante el examen, ni taparse la boca o la cara.
  • Además de no retirar durante el examen la vista de la pantalla del ordenador.
  • Siempre estarás siendo grabado y escuchado por el profesor durante la duración del examen.

Si no cumples estos requisitos puede ser causa para anular el examen y perder el dinero :(.

¿Qué pasa si apruebo el examen?

El resultado del examen es inmediato y no tendrás que esperar a que te den los resultados. Lo que sí tendrás que esperar unos días es el certificado de aprobación digital. Lo puedes consultar en este enlace una vez que recibas el correo electrónico confirmando la aprobación del examen.

Espero que esta experiencia sea enriquecedora para ti y logres una meta más en tu vida profesional :D. ¡Hasta el próximo post!

Cuéntanos qué te parece.

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.