Outils internes utilisés pour développer Ellas War

Posted by

Cet article est le second de la série d’articles à propos du développement d’Ellas War. Nous allons voir les différents outils que j’utilise et comment est-ce qu’ils m’aident à optimiser le développement du jeu.

Amélioration du code

ESLint

EsLint est un analyseur de code statique pour JavaScript. Il s’intègre très bien dans la plupart des IDE (Integrated Development Environment, Environnement de Développement Intégré) et possède de nombreuses options.

$ npx eslint . --ext ts
[...]
✖ 4 problems (3 errors, 1 warnings)

J’y travaille, malheureusement certaines erreurs sont difficiles à corriger. J’ai un problème avec une librairie qui n’utilise pas encore Typescript (pour Redis).

Jasmine

Jasmine est un Framework utilisé pour tester le code JavaScript. Après avoir compilé le code et effectué tous les tests, un rapport est généré. Celui-ici peut alors être importé dans SonarQube.

SonarQube

SonarQube est une plateforme couvrant la qualité du code, la sécurité et la détection de bugs. Il fournit aussi des tableaux de bord et de l’aide pour corriger les problèmes.

La règle la plus difficile à suivre est celle de la complexité du code qui doit être de maximum 15. Chaque condition dans une fonction, ajoute un ou plusieurs points suivant sa complexité et sa place dans le code.

Déploiement sur le server

Ansible

Ansible est un gestionnaire de configuration, il utilise le langage YAML pour définir des règles qui seront ensuite appliquées sur la cible. Je l’apprécie beaucoup, pour sa simplicité d’utilisation mais il est assez lent lors des déploiements.

Docker

Qui ne connait pas les conteneurs Docker ?
Grâce à eux, je peux choisir ma version de NodeJS, faire tourner plusieurs fois le jeu sur le même serveur et ajouter un peu de sécurité. J’ai préféré utiliser directement Docker (avec compose) plutôt que Kubernetes pour économiser des ressources. Dans le futur il est possible que je passe à Docker Swarm afin de profiter des benefices d’un orchestrateur.

Monitoring

Grafana

Grafana est un outil de visualisation très puissant, j’utilise des tableaux de bord fournis avec les plugins et des maison. Mes principaux :

  • Ellas War, j’appelle une API afin d’afficher les métriques du jeu
  • Redis, information sur l’instance Redis utilisée par le jeu

Dozzle

Dozzle me permet de visualiser les logs des conteneurs Docker. Il est léger, simple à utiliser et disponible depuis une interface web.

Conclusion

J’essaye d’utiliser des outils simple, afin de réserver les ressources de mon serveur pour le jeu. Malheureusement je ne peux pas faire tourner tous ces services en local our sur mon serveur, cela prendrai trop de ressources. Dans mon prochain article, je parlerai des outils externes au jeu que j’utilise.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *