Noticias

Observabilidad de la aplicación fácil de Django

La observabilidad es crítica para las operaciones de red para garantizar que la aplicación funcione como se esperaba e identificar cualquier problema potencial. Sin embargo, establecer la observabilidad ha sido tradicionalmente un desafío, ya que puede llevar horas construir toda la infraestructura, el código de instrumentos y permitir la observabilidad de la producción. Pero ahora hay una mejor manera de usar el soporte nativo para Django en Charmcraft y Rockcraft, ¡que puede estar incorporado y listo!

En esta publicación usaremos rockcraft y encanto E implementar Jujuy agregarle observabilidad utilizando solo unos pocos comandos. Esto muestra los beneficios clave del uso del ecosistema Juju (incluidas la mayoría de las tuberías que espera de nubes modernas como la observabilidad, las bases de datos, las admisiones, etc.) usar encantos, porque podremos establecer la observabilidad en minutos en lugar de horas. Rockcraft y Charmcraft también admiten frascos, Fastapi y van localmente, y las siguientes instrucciones también se aplican a estas instrucciones.

Hemos seguido Escriba su primer encanto de Kubernetes para aplicaciones Django Tutorial, completo Ciclo de desarrollo parte. En esta etapa, las aplicaciones de Django deben implementarse e integrarse con PostgreSQL y Nginx Ingresator Integrator y deben verse así:

$ juju status --relations

Model               Controller      Cloud/Region        Version  SLA          Timestamp
django-hello-world  dev-controller  microk8s/localhost  3.6.3    unsupported  00:52:54+11:00

App                       Version  Status  Scale  Charm                     Channel        Rev  Address         Exposed  Message
django-hello-world                 active      1  django-hello-world                         1  10.152.183.175  no       
nginx-ingress-integrator  24.2.0   active      1  nginx-ingress-integrator  latest/stable  130  10.152.183.214  no       Ingress IP(s): 127.0.0.1
postgresql-k8s            14.15    active      1  postgresql-k8s            14/stable      495  10.152.183.83   no       

Unit                         Workload  Agent  Address      Ports  Message
django-hello-world/0*        active    idle   10.1.157.79         
nginx-ingress-integrator/0*  active    idle   10.1.157.78         Ingress IP(s): 127.0.0.1
postgresql-k8s/0*            active    idle   10.1.157.77         Primary

Integration provider                  Requirer                              Interface          Type     Message
django-hello-world:secret-storage     django-hello-world:secret-storage     secret-storage     peer     
nginx-ingress-integrator:ingress      django-hello-world:ingress            ingress            regular  
nginx-ingress-integrator:nginx-peers  nginx-ingress-integrator:nginx-peers  nginx-instance     peer     
postgresql-k8s:database               django-hello-world:postgresql         postgresql_client  regular  
postgresql-k8s:database-peers         postgresql-k8s:database-peers         postgresql_peers   peer     
postgresql-k8s:restart                postgresql-k8s:restart                rolling_op         peer     
postgresql-k8s:upgrade                postgresql-k8s:upgrade                upgrade            peer

En este punto, si envía una solicitud curldebería volver Hello, world!

$ curl  \
    --resolve django-hello-world:80:127.0.0.1 
Hello, world!

El siguiente paso es implementar la observabilidad e integrarla con su aplicación Django. Para hacer esto, necesitamos habilitar el equilibrador de carga en MicroK8, que es lo que Traefik requiere, que servirá como entrada a la pila de observabilidad de especificaciones:

$ IPADDR=$(ip -4 -j route get 2.2.2.2 | jq -r '.[] | .prefsrc')
$ sudo microk8s enable metallb:$IPADDR-$IPADDR
$ microk8s status --wait-ready

Ahora podemos implementar Pila de observabilidad de especificaciones Implementará Grafana, Loki, Prometheus y AlertManager, así como directorios para acceder a todos los servicios y Traefik:

$ juju deploy cos-lite --trust
$ juju integrate django-hello-world grafana
$ juju integrate django-hello-world prometheus
$ juju integrate django-hello-world loki

Acabamos de terminar muchas tareas, así que vamos a darle unos minutos para completar. Al mismo tiempo, podemos monitorear el progreso:

LEER  Ryzen V2000 Mini PC habilitado para Ubuntu comienza en $ 639
$ juju status --watch 2s

Una vez que todo esta aquí active y idleechemos un vistazo a los paneles creados. Ejecute el siguiente comando para recuperar el punto final de observabilidad:

$ juju show-unit catalogue/0 | grep url
$ juju run grafana/leader get-admin-password

Esto mostrará algunas URL junto con la contraseña administrativa predeterminada. El que nos interesa grafana El sufijo debería verse como (Su dirección IP variará). Para acceder a la descripción general del tablero. /dashboards Código postal, luego haga clic en General y seleccione el tablero del operador Django. Deberías ver algo como esto:

Como no hemos realizado ninguna solicitud, el tablero actualmente no informa ninguna actividad. Enviemos el siguiente comando curl varias veces para generar tráfico:

$ curl  --resolve django-hello-world:80:127.0.0.1 

En los próximos minutos, los datos se actualizarán y deberían verse así:

Hasta ahora, hemos implementado con éxito nuestras aplicaciones y pilas de observabilidad: ¡obtenga paneles sin tener que definirlas usted mismo! También tenemos acceso a los registros de la aplicación. Para verlos, seleccione django-hello-world Desde el menú desplegable al lado del filtro de aplicación Juju en la parte superior de la página:

Cuando se desplaza hacia abajo, verá el registro de la aplicación:

¡Ese es un paquete! Creamos una aplicación Django y la integramos en la observabilidad. Exploramos el tablero predeterminado, dándonos una idea de cómo usar la aplicación y también accedimos al registro de la aplicación. Con varios comandos, agregamos una herramienta de observabilidad completa en nuestra aplicación Django sin tener que manejar manualmente la implementación y la configuración de cada aplicación.

Si desea obtener más información sobre cómo crear imágenes y encantos de OCI para su aplicación Django, puede seguir Escriba su primer encanto de Kubernetes para aplicaciones Django Tutoriales y aproveche el ecosistema Juju completo. Si tiene alguna pregunta o desea contactarnos, ¡no dude en contactarnos en nuestro canal de matriz de la comunidad!

LEER  Lanzamiento de KDE Plasma 5.22.2 con mejor compatibilidad con Flatpak y Wayland

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba