Categorías
Compus

IaC

La última vez que escribí sobre mi trabajo (y de hecho la última vez que escribí aquí) fue cuando estaba empezando a hacer automatización de pruebas, pero la vida da muchas vueltas y una semana después me llegó la oferta de mi trabajo actual, donde iba a utilizar un stack de tecnología que me interesa mucho más, así es como conocí la IaC, la Infraestructura como Código. Sobre eso les voy a contar por escrito hoy, recordando una plática que di para Software Guru hace unos meses.

Primero, ¿qué es la infraestructura cuando hablamos de compus?

Pues son los fierros, los aparatos físicos en lo que vamos a ejecutar programas, almacenar y procesar información; esas cosas que nos dicen que se caen cuando una página no jala.

Y resulta que antes (antes de que yo naciera por cierto, y en mi infancia), cuando alguien quería desarrollar un sistema más allá de su página web, era necesario contar con los fierros en físico. Esto implicaba un gasto muy grande porque aparte de comprarlos, era necesario poseer o rentar un inmueble con el espacio y las condiciones de temperatura necesarias para tenerlos funcionando. Además es complicado mantener sistemas alojados onsite, porque para empezar es muy fácil excederte al estimar qué necesitas inicialmente, lo que conlleva a adquirir (y mantener) fierros que no necesitas y una vez que no son suficiente, es decir, llegas a su tope de capacidad, hay que escalar (comprar más o con más capacidad) y te encuentras con el mismo problema de tener mucho más de lo necesario (y en los otros casos, quedarte corto de nuevo en poco tiempo). Esto se conoce como la edad de hierro de las compus.

Actualmente, son industrias muy específicas (algunas empresas medio necias) las que siguen en la edad de hierro de las compus, la mayoría tiene sus sistemas alojados en la nube; que no es más que rentar fierros que están en otro lugar del planeta, de manera que se comparten entre varios usuarios y solo pagan por lo que usan. Algunos ejemplos de proveedores de infraestructura en la nube son AWS, GCP, Azure, DigitalOcean, etc.

Además de pagar por lo que usas, lo cual ha beneficiado al nacimiento de muechas startups, usar cómputo en la nube tiene beneficios como permitir escalar la infraestructura más fácilmente, los despliegues son más rápidos y es posible automatizarlos, así como delegar el manteminiento a herramientas. Aquí es donde aparece la IaC.

La Infrastructure-as-Code es un conjunto de herramientas y procesos automatizados mediante los cuales creamos y configuramos un entorno computacional, para implementar sistemas de software; todo esto por medio de código hecho en un lenguaje de programación, en vez de usar la interfaz gráfica del provedor de Infraestructura.

Esto significa que tenemos los beneficios del cómputo en la nube y del código en una sola cosa para manejar la infraestructura, por lo que podemos tener infraestructura adaptable con control de versiones (lo que significa que tenemos ambientes extendibles y replicables, ¡Qué emoción!).

Y aquí las cosas empiezan a tener más sabor, va a haber herramientas para scripting, de gestión de configuración, para server templating, de aprovisionamiento de servidor. Así que hay muchísimas, puedo hablar de ellas en otras entradas.

Además con la Iac podemos tener infraestructura mutable e inmutable, y puede estar escrita de manera imperativa o declarativa.

De todo esto puedo ir profundizando en otras entradas, pero creo que para una introducción, hasta aquí está bien. Si de casualidad alguien está leyendo esto y quiere proponer que hable de algo en particular de IaC, pues soy toda oídos 😀

Aquí mis fuentes:

https://learn.hashicorp.com/tutorials/terraform/infrastructure-as-code

https://speakerdeck.com/devopsdaysgdl/francisco-rodriguez-patterns-of-iac-at-scale

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *