Diferencia entre revisiones de «Nomad y bases de datos»

De Hacklab La Paz - r00thouse
(Nomad databases)
 
Sin resumen de edición
Línea 1: Línea 1:
[[Archivo:Work.gif|miniaturadeimagen]]
[[Archivo:Work.gif|miniaturadeimagen]]


TL;DR Se abarca los conocimientos basicos de Nomad para realizar el proyecto en el punto 4.
'''''TL;DR Se abarca los conocimientos basicos de Nomad para realizar el proyecto en el punto 4.'''''


'''1. Nomad'''
'''1. Nomad'''


Orquestador simple y flexible para implementar y administrar contenedores y aplicaciones no contenidas en contenedores en las instalaciones y en la nube a escala.
Es un orquestador simple y flexible para implementar y administrar contenedores y aplicaciones no contenidas en contenedores en las instalaciones y en la nube a escala.


'''2. Nomad vs otros'''  
'''2. Nomad vs otros orquestadores(kubernetes)'''


Nomad solo pretende centrarse en la gestión y programación de clústeres y está diseñado con la filosofía Unix de tener un alcance pequeño mientras se compone con herramientas como Consul para descubrimiento de servicios/malla de servicios y Vault para gestión de secretos.
Nomad solo pretende centrarse en la gestión y programación de clústeres y está diseñado con la filosofía Unix de tener un alcance pequeño mientras se compone con herramientas como Consul para descubrimiento de servicios/malla de servicios y Vault para gestión de secretos.
Línea 13: Línea 13:
'''3. Bases de Nomad'''
'''3. Bases de Nomad'''


Que es un job?
Se usan archivos hcl.
 
¿Que es un job?


Un trabajo es una especificación declarativa de tareas que Nomad debe ejecutar. Los trabajos tienen uno o más grupos de tareas, que a su vez son conjuntos de una o más tareas. Los nombres de los trabajos son únicos por región o espacio de nombres.
Un trabajo es una especificación declarativa de tareas que Nomad debe ejecutar. Los trabajos tienen uno o más grupos de tareas, que a su vez son conjuntos de una o más tareas. Los nombres de los trabajos son únicos por región o espacio de nombres.


Que es un group?
¿Que es un group?


El bloque de grupo define una serie de tareas que deben ubicarse en el mismo cliente Nomad. Cualquier tarea dentro de un grupo se asignará al mismo cliente.
El bloque de grupo define una serie de tareas que deben ubicarse en el mismo cliente Nomad. Cualquier tarea dentro de un grupo se asignará al mismo cliente.


Que es una task?
¿Que es un task?
The task block creates an individual unit of work, such as a Docker container, web application, or batch processing.
 
El bloque de tareas crea una unidad de trabajo individual, como un contenedor Docker, una aplicación web o un procesamiento por lotes.


[https://developer.hashicorp.com/nomad/tutorials/manage-jobs/jobs-configuring mejorar las configuraciones de las tasks]
[https://developer.hashicorp.com/nomad/tutorials/manage-jobs/jobs-configuring mejorar las configuraciones de las tasks]
'''Estructura'''


  job
  job
   \_ group
   \_ group
   |     \_ task
   | \_ task
   |     \_ task
   | \_ task
   |
   |
   \_ group
   \_ group
        \_ task
    \_ task
        \_ task
    \_ task




Línea 39: Línea 44:
'''4. Proyecto Final:'''
'''4. Proyecto Final:'''


[https://thekevinwang.com/2023/09/24/infinite-dbs-with-nomad Infinite Databases with Nomad and Traefik]
'''Proyecto'''
 
Yo seguí un tutorial, tiene una buena explicación que te aconsejo seguirlo, aprenderás  también algunos servicios de AWS.
 
- AMI y EC2
- Route53
- VPC
- Security Groups


- Crear una AMI con packer
''Nota: puedes realizarlo localmente si gustas.''


- Crear los jobs con nomad
tutorial: [https://thekevinwang.com/2023/09/24/infinite-dbs-with-nomad Infinite Databases with Nomad and Traefik]


- Configurar el Route53
Sin embargo tuve que arreglar algunos errores que había en la configuración de traefik, estos posts me ayudaron para arreglar el error del ruteo de tráfico tcp.


- Verificar [http://localhost:4646/ui/jobs ui]
- [https://community.traefik.io/t/running-multiple-databases-via-traefik-and-accessing-the-databases-from-the-host-machine/11369 ejemplo de configuracion tcp]


'''5. Otros proyectos:'''  
- [https://community.traefik.io/t/multiple-mysql-communication-through-tcp-with-tls-based-on-sni/18936/16 correccion tcp]
 
Finalmente, pude comprobar que se pueden crear múltiples contenedores bases de datos usando nomad. Realice una demo puedes encontrarlo en mi repositorio.
 
[https://github.com/libialany/Nomad_Databases nomad databases]
 
'''5. Conclusiones'''
 
Se pueden crear un cluster de base de datos con otros orquestadores como kubernetes(proximos tutoriales).
 
'''6. Otros proyectos'''


[https://developer.hashicorp.com/nomad/tutorials/load-balancing/load-balancing-traefik#prerequisites load balancing]
[https://developer.hashicorp.com/nomad/tutorials/load-balancing/load-balancing-traefik#prerequisites load balancing]
   
   
https://github.com/hashicorp/demo-nomad-101/blob/master/lab-8/demo-webapp-canary.nomad
[https://github.com/hashicorp/demo-nomad-101/blob/master/lab-8/demo-webapp-canary.nomad Ejemplos de Nomad]
 
'''7. Agradecimientos '''
 
Looper

Revisión del 21:15 14 ene 2024

Work.gif

TL;DR Se abarca los conocimientos basicos de Nomad para realizar el proyecto en el punto 4.

1. Nomad

Es un orquestador simple y flexible para implementar y administrar contenedores y aplicaciones no contenidas en contenedores en las instalaciones y en la nube a escala.

2. Nomad vs otros orquestadores(kubernetes)

Nomad solo pretende centrarse en la gestión y programación de clústeres y está diseñado con la filosofía Unix de tener un alcance pequeño mientras se compone con herramientas como Consul para descubrimiento de servicios/malla de servicios y Vault para gestión de secretos.

3. Bases de Nomad

Se usan archivos hcl.

¿Que es un job?

Un trabajo es una especificación declarativa de tareas que Nomad debe ejecutar. Los trabajos tienen uno o más grupos de tareas, que a su vez son conjuntos de una o más tareas. Los nombres de los trabajos son únicos por región o espacio de nombres.

¿Que es un group?

El bloque de grupo define una serie de tareas que deben ubicarse en el mismo cliente Nomad. Cualquier tarea dentro de un grupo se asignará al mismo cliente.

¿Que es un task?

El bloque de tareas crea una unidad de trabajo individual, como un contenedor Docker, una aplicación web o un procesamiento por lotes.

mejorar las configuraciones de las tasks

Estructura

job
 \_ group
 | 	\_ task
 | 	\_ task
 |
 \_ group
   	\_ task
   	\_ task


4. Proyecto Final:

Proyecto

Yo seguí un tutorial, tiene una buena explicación que te aconsejo seguirlo, aprenderás también algunos servicios de AWS.

- AMI y EC2

- Route53

- VPC

- Security Groups

Nota: puedes realizarlo localmente si gustas.

tutorial: Infinite Databases with Nomad and Traefik

Sin embargo tuve que arreglar algunos errores que había en la configuración de traefik, estos posts me ayudaron para arreglar el error del ruteo de tráfico tcp.

- ejemplo de configuracion tcp

- correccion tcp

Finalmente, pude comprobar que se pueden crear múltiples contenedores bases de datos usando nomad. Realice una demo puedes encontrarlo en mi repositorio.

nomad databases

5. Conclusiones

Se pueden crear un cluster de base de datos con otros orquestadores como kubernetes(proximos tutoriales).

6. Otros proyectos

load balancing

Ejemplos de Nomad

7. Agradecimientos

Looper