terraform + ansible + inspec...shift left testing •enfoque que considera mover las actividades de...

12
Terraform + Ansible + InSpec Automatización y control de la infraestructura y la configuración Álvaro Beleño Rodríguez

Upload: others

Post on 01-Jan-2021

20 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

Terraform + Ansible + InSpecAutomatización y control de la infraestructura y la configuración

Álvaro Beleño Rodríguez

Page 2: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

INTRODUCCIÓN A LAS HERRAMIENTAS A UTILIZAR

Page 3: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

¿Qué es Terraform?

• Herramienta desarrollada por HashiCorp.

• Se encarga de la orquestación de la infraestructura, la cual definiremos mediante código de alto nivel:• HCL (HashiCorp Configuration Language), ficheros .tf• JSON (JavaScript Object Notation), ficheros .tf.json

• A partir de este código se generará un plan de ejecución mediante el cual se desplegará nuestra infraestructura en el proveedor elegido:• OpenStack• AWS• Microsoft Azure• https://www.terraform.io/docs/providers/

Page 4: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

¿Qué es Microsoft Azure?

• Plataforma cloud de Microsoft.

• IaaS (Infraestructure as a Service).

• Presenta un plan de pago por uso.• El precio a pagar dependerá del uso que hagamos de los recursos.

Page 5: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

¿Qué es Ansible?

• Herramienta desarrollada por Red Hat.

• Se encarga de aprovisionar equipos (Gestión automatizada de la configuración).

• Se definen playbooks (Jugadas), en los que habrá diferentes tasks(Tareas).

• Idempotencia.

Page 6: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

¿Qué es InSpec?

• Herramienta desarrollada por Chef.

• Framework diseñado para testear aplicaciones e infraestructura.

• Funciona comparando el estado actual del sistema con el estado deseado que establecemos en código propietario de InSpec.

• Podemos hacer tests tanto en local como en equipos o aplicaciones en remoto.

Page 7: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

METODOLOGÍA DE TRABAJO

Page 8: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

Shift left testing

• Enfoque que considera mover las actividades de testing a un lugar más temprano en el ciclo de vida de la infraestructura o aplicación.

• Normalmente se lleva a cabo en aplicaciones, aunque también se puede aplicar a los sistemas.

• Introducido por primera vez por Larry Smith hace más de 15 años.

Page 9: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

Shift left testing

Requisitos Diseño Código Test Aprobación Producción Mantenimiento

T E S T I N G

Page 10: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

DEMO

Page 11: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

¿Qué vamos a hacer?

• Despliegue de dos máquinas virtuales en Azure con 4GiB de RAM y 8 GiB de almacenamiento temporal mediante Terraform.

• Aprovisionamiento con Ansible:• Nodo 1: PostgreSQL

• Nodo 2: Apache + Drupal

• Testing con InSpec:• Azure

• Nodo 1

• Nodo 2

Page 12: Terraform + Ansible + InSpec...Shift left testing •Enfoque que considera mover las actividades de testinga un lugar más temprano en el ciclo de vida de la infraestructura o aplicación

DEMO(Ahora de verdad)