5 Benchmark
Arthur VALIN edited this page 2 years ago
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Benchmark des APIs

Dans le cadre de cette SAE, nous devons créer une API web afin de gérer les transactions entre notre client et notre serveur. Cependant il existe de nombreuses technologies permettant de créer ce type dAPI. Il était important pour nous dutiliser de nouvelles technologies que nous navions jamais vues en cours. Ainsi, nous ne voulions ni utiliser .Net, étant donné que nous létudions actuellement, ni node.js étant donné que nous lavions utilisé lors de la SAE précédente.

Nous avons alors choisi trois technologies dans lobjectif de les comparer, ces technologies sont :

Nous avons choisi Go et Java parce quelles offraient deux manières différentes de coder des APIs. Aussi, nous avons choisi deux frameworks Go dans le but dobserver la réelle différence entre deux framework similaires concernant un même langage.

Nous voulions tout dabord comparer l'efficacité des API via des tests de charge. Nous voulions ainsi apprendre à réaliser ces tests et pour cela nous avons utilisé loutil gatling. Cet outil permet dobtenir des rapports techniques détaillés sous forme de pages HTML comportant de nombreux graphiques.

Le résultat de ces tests fut peu convaincants, les APIs réalisées pour les tests étaient simples afin de pouvoir les réaliser rapidement. Cependant, cela ne permettait pas dobserver de réelles différences entre ces technologies. Malgré cela, l'API Quarkus semble avoir le mieux réagi face aux tests, ce qui nous a surpris puisque nous pensions que les technologies Go seraient plus rapides. Cependant ces tests peuvent être influencés par différents facteurs et ne doivent pas être pris tenus acquis.

Le second point important permettant de comparer ces technologies est la maintenabilité et la praticité. En effet, nous avons peu de temps pour réaliser ce projet et, bien quune technologie puisse être plus efficace quune autre, elle pourrait mener à un code moins rapide et maintenable.

Concernant cette partie, cest Quarkus qui est notre premier choix. En effet nous connaissons déjà le java et la manière de coder lAPI est fortement semblable à ce qui peut être vu en .Net. Ainsi Quarkus se rapproche le plus de ce que nous connaissons. Le projet est également plus facilement structurable. Les APIs réalisées en Go étaient plus similaires à ce que nous avons pu réaliser en node.js, et nous trouvons ce code moins maintenable et pratique pour nous.

Ainsi notre choix concernant la technologie utilisée lors de la SAE se portera sur Quarkus.