Infraestructura como código

Definición de una Matriz

Definimos una matriz de servicios web que se despliegan ‘automágicamente’ en cualquier servidor, con la metodología Numérica.


Por ejemplo, este sitio se define así en un archivo numerica.yml :

--- 
althost: numerica
matrix:
  - service_name: blog 
    roles: 
      - wordpress 
    domains: 
      - numerica.cl
      - www.numerica.cl
    force_https: yes

Así damos de alta este WordPress — y si al lado quisiéramos una nube Nextcloud, la agregaríamos así en la matriz:

  - service_name: nube
    roles:
      - nextcloud
    domains:
      - nube.numerica.cl
    force_https: yes

y obtendremos algo como: https://nube.numerica.cl


Automatización

En el ejemplo anterior, solamente definimos una matriz, mapeando servicios a dominios. Todo el trabajo de desplegar al servidor y configurarlo para que funcione lo hizo Ansible, nuestro programa de automatización. En este, dividimos cada función del sistema en roles.

Roles

Si le dan un vistazo al código, verán que existe una carpeta roles, y dentro hay carpetas para cada tipo de servicio, que ya están automatizados por la metodología.

El rol althost, es interno de Numérica, y es el encargado de combinar el despliegue automático de software (Ansible) con la arquitectura de servicios empaquetados en contenedores (Docker).

proxy

El rol proxy es un servidor web Nginx, que hace de fachada para todo el tráfico HTTP(s), ruteándolo a los servicios correspondientes.

A la vez, se encarga de la seguridad TLS/SSL gracias a la integración de certificados automáticos de Let’sEncrypt.


Colaboremos por medio del 0xacab, publicando el código bajo control obrero con la Licencia de Producción de Pares.

Este sitio utiliza cookies.    Leer más
Privacidad