Accueil Nos publications Blog Otoroshi : une solution d’API Management open source performante et innovante

Otoroshi : une solution d’API Management open source performante et innovante

Hotoroshi

Sommaire

  1. Otoroshi, une solution d’API Management open source
  2. Comment choisir sa solution d’API Management
  3. Les principales forces d’Otoroshi
  4. Otoroshi en pratique
  5. Découverte de l’interface d’administration
  6. L’avis de l’expert sur Otoroshi

Otoroshi, une solution d’API Management open source

L’API Management est un élément essentiel des systèmes d’informations s’appuyant sur de multiples services répartis : il facilite la gestion, la communication, la sécurisation et le suivi des API utilisées par ces services.

Dans cet article, nous présentons Otoroshi, une solution d’API Management open source développée par la MAIF dans le cadre de son initiative #OSSbyMAIF.

L’initiative #OSSbyMAIF

L’initiative #OSSbyMAIF est un programme lancé par la MAIF pour promouvoir et soutenir le développement et l’utilisation de solutions open source dans le secteur de l’assurance et au-delà. Cette initiative vise à encourager la collaboration et le partage de connaissances entre les différents acteurs du secteur, en mettant à disposition des outils, des ressources et des bonnes pratiques en matière de développement et d’utilisation de logiciels open source.

Dans le cadre de cette initiative, la MAIF a notamment développé Otoroshi, une solution open source d’API Management complète, évolutive et cloud-native : configuration, gestion et contrôle des appels, gestion des accès, sécurisation, monitoring,…

Comment choisir sa solution d’API Management

Le choix d’une solution d’API Management n’est pas anodin, car cette solution aura la responsabilité de la bonne communication des API du SI. Par conséquent, avant de s’orienter vers une solution d’API Management particulière, il est important de :

  • Préciser les besoins auxquels la solution doit répondre ;
  • Identifier les utilisateurs et utilisatrices de la solution ;
  • Déterminer comment la solution s’intégrera dans l’infrastructure existante ;
  • Identifier les principaux objectifs attendus et la manière d’en mesurer la réussite ;
  • Adapter le choix de la solution aux besoins de l’organisation ou du projet.

Ces points d’attention se traduisent dans l’orientation du choix technique, pour lequel un certain nombre de critères entrent en considération :

  • La facilité d’installation et de déploiement de la solution
  • La capacité de la solution à gérer l’ensemble du cycle de vie d’une API
  • La possibilité de sécuriser et contrôler les accès aux API
  • La capacité de passage à l’échelle (scalabilité) et les performances associées
  • Les fonctionnalités de monitoring et d’analytique
  • La qualité de la documentation et du support
  • L’extensibilité et la personnalisation de la solution
  • L’intégration de la solution avec d’autres services internes et externes

Les principales forces d’Otoroshi

Otoroshi est une solution d’API Management disposant de caractéristiques concurrentielles :

  • Le panel de fonctionnalités est concurrentiel. Otoroshi propose la plupart des fonctionnalités classiques et avancées que l’on peut attendre d’une solution d’API Management mature.
  • L’API Gateway d’Otoroshi est agnostique de la stack technique utilisée par les API. Toutes les architectures standards d’API sont donc supportées (REST, SOAP, gRPC, GraphQL, etc.), et ce quel que soit le protocole utilisé (HTTP, TCP, UDP).
  • L’intégration d’Otoroshi est simplifiée par l’utilisation d’un livrable unique (une image conteneurisée ou un exécutable JAR), indépendant de la plateforme cible (qu’elle soit cloud ou on-premise), et s’appuie sur un unique fichier de configuration.
  • Le développement d’Otoroshi repose sur l’utilisation d’un framework event-driven permettant à l’API Gateway d’Otoroshi d’être nativement reactive.
  • Otoroshi est développé par une mutuelle française, favorisant ainsi un développement « local » dans le respect des lois françaises et européennes.
  • Le code est entièrement sous licence open source, permettant d’utiliser et adapter la solution selon ses besoins de manière totalement libre et gratuite.

Otoroshi en pratique

Aperçu de l’architecture d’Otoroshi

Lorsqu’il est mis en place, Otoroshi devient le nœud central du système d’information, par lequel passent toutes les communications entre les services du SI. L’intérêt de cette démarche est de faciliter la sécurisation et le suivi des services (contrôle des accès, monitoring, logging,…), tout en améliorant la fiabilité, la résilience et la scalabilité du SI (load-balancing, circuit breaker,…).

La scalabilité et la résilience de cette architecture sont également assurées par la possibilité de déployer Otoroshi en un cluster d’instances réparties en leaders et workers, et dont la configuration et les informations sont synchronisées automatiquement ; un load-balancer frontal se charge alors de répartir les requêtes sur les différentes instances du cluster.

Otoroshi

Les premiers pas

Nous allons voir les étapes à suivre permettant de mettre en place une première instance d’Otoroshi, et d’en expérimenter certaines des fonctionnalités et capacités.

Nous allons dans un premier temps suivre les étapes permettant la mise en place de cette première instance d’Otoroshi (création d’un fichier de configuration personnalisé, téléchargement de l’exécutable d’Otoroshi, lancement d’Otoroshi), puis nous découvrirons quelques unes des fonctionnalités principales d’Otoroshi au travers de son interface d’administration.

Pour notre première expérimentation, nous plaçons notre contexte de travail dans un dossier créé spécifiquement pour cette expérimentation. Dans ce dossier, nous créons deux sous-dossiers « conf » (pour les fichiers de configuration personnalisée) et « filedb » (pour la persistence de nos modifications). Cela donne par exemple :

1	mkdir ./otoroshi & cd ./otoroshi
2	mkdir ./conf ./filedb

Création d’un fichier de configuration personnalisé

Nous allons créer un fichier « otoroshi.conf », qui contiendra uniquement les paramètres dont nous souhaitons personnaliser la valeur pour les besoins de notre première expérimentation.

Pour conserver les modifications que nous réaliserons sur cette instance d’expérimentation, nous nous contentons de choisir un datastore enregistrant ces modifications dans un fichier (de type « fileDB »), à la place du datastore « in-memory » par défaut.

Il n’est pas nécessaire de lister dans ce fichier l’ensemble des paramètres nécessaires au fonctionnement d’Otoroshi : les paramètres dont nous conservons la valeur par défaut seront automatiquement hérités du fichier de configuration de base.

Voici le contenu du fichier de configuration personnalisée, que nous nommons « oto.conf », et que nous enregistrons dans le dossier « ./otoroshi/conf » :

3	include "application.conf"  # configuration de base fournie par Otoroshi
4	
5	otoroshi {
6	  storage = "file"  # nous stockons les paramètres dans un fichier
7	  filedb {
8	    path = "./filedb/state.ndjson"  # chemin vers le fichier du datastore
9	  }
10	}

Téléchargement de l’exécutable d’Otoroshi

Pour cette expérimentation, nous allons utiliser l’image Docker officielle d’Otoroshi ; le téléchargement de l’exécutable se résume à récupérer la dernière version de cette image.

Comme pour toute dépendance ou application, un changement de version peut entraîner des modifications inattendues du comportement. C’est pourquoi il est recommandé d’indiquer explicitement la version utilisée lors de l’utilisation d’une dépendance.

Nous effectuons notre première expérimentation d’Otoroshi avec la dernière version disponible au moment de la rédaction de ce document, soit la version « 16.18.4 ».

1	docker pull maif/otoroshi:16.18.4

Premier lancement d’Otoroshi

Nous disposons maintenant de tous les éléments permettant d’exécuter Otoroshi.

Puisque nous avons créé un fichier de configuration personnalisé « oto.conf », nous devons indiquer le chemin vers ce fichier lors de la création du conteneur Docker, et créer les volumes nécessaires pour accéder à ce fichier de configuration ainsi qu’au dossier où seront persistées nos modifications (sous la forme d’un fichier de type « fileDB ») :

docker run \
  --name="oto" \
  --publish=8080:8080 \
  --volume="$(pwd)/conf:/usr/app/otoroshi/conf" \
  --volume="$(pwd)/filedb:/usr/app/otoroshi/filedb" \
  --env="JDK_JAVA_OPTIONS='-Dconfig.file=/usr/app/otoroshi/conf/oto.conf'" \
  maif/otoroshi:16.18.4

Nous pouvons désormais accéder à l’interface d’administration d’Otoroshi via l’URL « http://otoroshi.oto.tools:8080 » (nous utilisons ici l’URL par défaut, et n’avons pas activé la sécurisation HTTPS ; ces paramètres sont bien sûr modifiables via le fichier de configuration).

Découverte de l’interface d’administration

Comme nous l’avons vu précédemment, Otoroshi propose de nombreuses fonctionnalités que l’on retrouve dans les principales solutions d’API Management. Dans cette section, nous nous limitons à présenter quelques-unes des fonctionnalités que l’on rencontre au début de l’utilisation d’Otoroshi.

Page d’accueil :

Après authentification, nous arrivons sur l’écran d’accueil, présentant trois principales zones :

  1. Affichage des métriques globales en temps réel ;
  2. Raccourci vers les principales fonctionnalités (cette liste est personnalisable) ;
  3. Accès à toutes les fonctionnalités d’Otoroshi.
Otoroshi

Au travers des raccourcis proposés par défaut, nous pouvons voir un tour d’horizon des fonctionnalités majeures proposées par Otoroshi, et que l’on peut attendre de toute solution d’API Management solide :

  • Gestion des API (au travers de routes) ;
  • Gestion du référentiel des services (backends) ;
  • Gestion des apikeys inter-routes, des certificats (TLS), des vérificateurs de tokens JWT ;
  • Paramétrage des modules d’authentification : OAuth 2.0/2.1, OpenID, LDAP, SAML v2 ;
  • Configuration des exportateurs de données (notamment pour les métriques et données analytiques) : Elastic, Webhook, Kafak, S3,…

Affichage des API (routes)

Sur Otoroshi, la gestion des API s’effectue au travers de la configuration de « routes », soit un ensemble d’adresses publiées par Otoroshi (frontend) derrière lesquelles se trouvent des services (backend).

Otoroshi

Création d’une nouvelle route

La création d’une nouvelle route se fait en cliquant sur le bouton « Create new route » sur la page affichant la liste des routes. L’écran de création d’une route propose de nombreux paramètres pour configurer précisément la route selon les besoins.

En particulier, lors de la création de toute route, il est nécessaire de paramétrer les deux éléments suivants :

  1. L’URL de la route qui sera publiée par Otoroshi (frontend) ;
  2. L’adresse du service proposé derrière cette route (backend) :
  • Pour bien organiser les services, il est possible de configurer les informations des backends sur une interface dédiée. Dans ce cas, lors de la création d’une route, il suffit d’indiquer uniquement la référence vers le backend que doit servir cette route.
  • Pour une création rapide d’une route, il est également possible d’indiquer directement les informations du backend à servir.

Configuration des plugins appliqués à une route (designer)

Une fois la route créée, on accède au « Designer », qui permet de configurer les plugins appliqués à chaque requête et réponse transitant entre le client et le service (backend) au travers d’Otoroshi, pour cette route.

On retrouve 3 zones sur cette interface :

  1. La liste des plugins proposés par Otoroshi ;
  2. Le flot de traitement appliqué à chaque requête et réponse, détaillant l’ordre et le statut des plugins configurés.
  3. Les détails de la route actuelle, ou du plugin sélectionné.

Autres fonctionnalités pour l’administration d’une route

Outre la création d’une route et le paramétrage des plugins, d’autres fonctionnalités sont disponibles pour l’administration d’une route publiée par Otoroshi, notamment :

  • Gestion des apikeys associées à cette route ;
  • Métriques en temps réel, données analytiques, healthcheck ;
  • Interface intégrée pour le test de la route.

L’avis de l’expert Néosoft sur Otoroshi

Otoroshi est une solution d’API Management robuste et compétitive sur le marché actuel. Cette solution offre un équilibre intéressant entre simplicité d’utilisation et richesse fonctionnelle, couvrant un large spectre des exigences modernes en API Management.

Il convient de rappeler que le choix d’une solution d’API Management doit toujours être aligné avec les besoins spécifiques de l’entreprise, son infrastructure existante et ses objectifs à long terme. Bien qu’Otoroshi présente de nombreux atouts, une évaluation au cas par cas reste nécessaire pour déterminer l’adéquation de la solution avec les besoins d’une organisation donnée.

En conclusion, Otoroshi s’affirme comme un acteur sérieux du marché de l’API Management, offrant une alternative crédible aux solutions plus établies. Sa capacité à évoluer et à s’adapter aux tendances émergentes du secteur en fait un choix à considérer sérieusement pour les entreprises cherchant à moderniser leur approche de la gestion des API.

En complément d’Otoroshi, Daikoku se présente comme une solution idéale pour la gestion des portails API. Daikoku offre une interface conviviale pour l’administration des portails développeurs, facilitant la documentation, la gestion des plans d’API et l’accès aux API pour les utilisateurs finaux. Ensemble, ces deux solutions open source permettent une gestion complète des API, depuis leur sécurisation jusqu’à leur mise à disposition aux développeurs. 

Vous souhaitez en savoir plus ? Contactez-nous !

Aller au contenu principal