VT2020 - Flogo Fiche
Résumé
Flogo est un framework entièrement codé en Golang ultra léger qui permet la création d'applications événementielles de manière très simplifiée à l'aide d'un Web UI très intuitif.
Il utilise la notion de triggers et de actions pour construire l'application.
Triggers et Actions
Triggers
Les triggers gèrent tout ce qui est réception de données et l'envoi de réponses.
C'est également ces triggers qui vont par exemple paramétrer le port via lequel on va recevoir/envoyer les flux de données.
Handlers
Un handler est simplement ce qui permet d'attribuer les événements aux actions.
Actions
Les actions c'est ce qui va gérer toute la logique de l'application et les différentes opérations qui vont être effectués après réception des données.
C'est également les actions qui vont déterminer ce qui va être renvoyé pas l'application avant de passer par les trigger.
Déploiement et compatibilités
Dépoloiement
On a le choix entre plusieurs possibilités de déploiement ce qui est très agréable :
On peut déployer l'application sur un cloud avec AWS lambda, ce qui est pratique car Flogo a un support natif de AWS lambda ce qui permet d'avoir des fonctions serverless et donc avoir moins de ops. Cela permet de consommer moins de ressources mais aussi d'économiser de l'argent.
On peut aussi publier dans un container avec Docker. On connaît tous les avantages d'un tel déploiement donc c'est en effet très intéressant.
On peut également déployer comme un binaire statique pour intégrer l'application à des objets orientés IoT (internet des objets).
Compatibilités
Si vous utilisez Apache Kafka ou Pulsar vous pouvez très facilement faire par exemple du Machine Learning à l'aide de Flogo et revenir dans Pulsar ou Kafka.
Structure du projet
Si vous adorez coder et ne souhaitez pas utiliser le web UI, vous pouvez ! Vous allez avoir besoin d'un fichier JSON et de fichiers Go.
Metadata
Pour la metadata, Flogo utilise tout simplement un fichier JSON. Les champs nécessaires sont les suivants :
- name : nom de l’activité - version : version de l'activité - type : type de contribution - title : titre de l’application - description : description de l’application - settings : un tableau qui contient les paramètres de l’activité - input : un tableau qui contient les paramètres des entrées - output : un tableau qui contient les paramètres des sorties
Logique
Pour la logique de l'application, Flogo utilise des fichiers Go. On aura besoin de trois fichiers : activity.go, activity_test.go et metadata.go.
- activity.go contient l'implémentation de l'activité en go. - activity_test.go contient les test unit de l'activité. - metadata.go contient la metadata basique de input, output et settings.