Observabilité

Une fois déployé, on aura besoin d’un aperçu de ce qui se passe avec notre application et le cluster afin que nous puissions intervenir et ajuster notre application et configuration en fonction des besoins du monde "réel"

[Challenge 4.1] Beginner

Il est très important de pouvoir observer ce qui se passe dans le cluster. Que ce soit pour voir si une application utilise trop de ressources, ou être alerté en cas de charge inhabituelle, etc. Vous allez découvrir que OpenShift a par défaut déjà pas mal de façons d’observer le cluster/les workloads/les projets etc. Pour ce challenge vous allez devoir trouver des dashboards avec les métriques suivantes:

  1. Memory Usage du déploiement "antennas-front" [dans la vue Topology]

  2. CPU Usage du déploiement "antennas-incident" dans les dernières 5 minutes [dans la vue Developer > Monitoring (ou Observe selon la version du cluster)]

  3. CPU Quota de tous les projets du cluster [dans la vue Administrator > Monitoring (ou Observe selon la version di cluster) ]

Preuves à fournir

  • [Challenge 4.1.1] Screenshots (3) des observations

[Challenge 4.2] Advanced

On va jouer un peu avec les "requests" et "limits" de notre déploiement antennas-front et observer ce qui se passe si on ne donne pas assez de resources à nos applications.

  1. Rajoutez des limits et request au déploiement 'antennas-front'. Bien sûr en modifiant votre repo et en redéployant avec GitLab CI/CD

    • CPU Requests: 50 millicores

    • CPU Limits: 60 millicores

    • Memory Requests: 40 Mi

    • Memory Limits: 60 Mi

  2. Observer le déploiement. Cherchez pourquoi l’application "tombe en panne". À vous de nous le dire, et pourquoi :) Et de nous expliquer la différence entre "requests" et "limits"

  3. Ajuster les limits/requests de manière à ce que l’application fonctionne, mais sans utiliser trop de ressources.

Preuves à fournir

  • [Challenge 4.2.1] Screenshots du yaml du déploiement

  • [Challenge 4.2.2] Nouvelles valeurs de limits/requests avec la raison pour laquelle vous avez choisi ces valeurs.

BONUS challenge

Avec Quarkus c’est assez facile de rajouter des fonctionnalités qui peuvent être utiles dans des déploiements Kubernetes. Essayez de rajouter l’extension Quarkus qui s’appelle 'micrometer' pour intégrer des métriques Java dans l’observabilité de OpenShift. Voici un lien pour commencer: https://quarkus.io/blog/micrometer-prometheus-openshift/

  • [Challenge 4.3.1] Screenshot de Developer > Observe > Metrics avec les résultats de la custom query jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",}