DEV Community

Cover image for De mon application Go à un service exploité sur Kubernetes : Point de départ et objectifs de mon mentorat
Anatole HAGBE
Anatole HAGBE

Posted on

De mon application Go à un service exploité sur Kubernetes : Point de départ et objectifs de mon mentorat

J'ai créé BMI, une application qui calcule l'indice de masse corporelle. Le sujet concerne beaucoup de monde, mais surtout, c'est un support que je maîtrise de bout en bout pour travailler ce qui m'intéresse vraiment : l'exploitation d'un service.

BMI Form

BMI Response

Les captures d'écran montrent l'état actuel de BMI. Un formulaire demande le nom, la taille et le poids. Une fois validé, un modal affiche l'IMC, la catégorie correspondante (normal, surpoids, etc.) et un court message, par exemple une invitation à revoir son alimentation. Aucune donnée n'est stockée, il n'y a pas d'authentification et aucun secret à gérer. Le code est en Go, avec la seule bibliothèque standard pour l'instant. Plus tard, j'imagine un compte utilisateur, un historique pour suivre son évolution et des notifications.

Côté DevOps, il y a déjà une base. Le code est sur GitLab, et un pipeline exécute les tests unitaires, construit l'image Docker, la scanne, puis la pousse sur Docker Hub. Un environnement de test tourne sur AWS et l'application expose un healthcheck. En revanche, il n'y a pas encore de supervision. C'est là que se situe la différence entre une application qui fonctionne et un service exploitable.

BMI n'a jamais été soumise à de vraies conditions de production. Je ne sais pas encore comment elle réagit quand un déploiement échoue, quand un pod redémarre ou quand il faut comprendre une panne à partir de ce qu'on observe plutôt que de ce qu'on suppose. Un healthcheck dit si le service répond, pas pourquoi il ne répond plus.

Pour travailler ces questions, je serai accompagné pendant quatre semaines (deux séances de deux heures par semaine) par Edouard HINVI, Senior Ingénieur DevOps et mentor chez Help All Skills qui organise cet accompagnement. Nous avons posé un backlog dès la première séance. Je joue à la fois le rôle de développeur et de DevOps, mais le mentorat cible uniquement le second.

Cette semaine, j’ai mis à jour la documentation de BMI en y ajoutant, entre autres, le schéma de l’architecture cloud. J’ai opté pour un cluster K3s mono-nœud, compte tenu de mon budget limité. J’ai enfin mis en place le pipeline qui construit l’image, la scanne, puis la pousse dans le registre Docker Hub.

Cluster architecture

La semaine prochaine, je créerai le cluster avec Terraform, y déploierai BMI et mettrai l’application en ligne en HTTPS.

Je passe mes journées à découvrir de nouveaux outils, à lire et à pratiquer, notamment en m’appuyant sur le blog de Stéphane ROBERT. Mais manipuler Kubernetes ne signifie pas encore savoir réellement l’exploiter. C’est précisément cet écart que je veux combler. C’est ambitieux pour quatre semaines, et je ne sais pas encore si tout tiendra dans le délai imparti. Les inconnues seront listées dès la première étape. Je publierai un article par semaine sur ce qui avance, mais aussi sur ce qui résiste.

Top comments (0)