Offrant à tous nos clients un nouvel espace centralisé au travers d’un portail permettant d’accéder à tous les services disponibles dans le cadre de l'abonnement Bonita Enterprise (support technique, Expert Corner, audit, mise à jour des versions, formation et demandes de services professionnels), notre nouveau ‘Customer Service Center’ (CSC) a été développé pour offrir une expérience utilisateur actualisée et optimisée.
En tant que responsable technique du projet (dimensionnement, conception de l'architecture, mise en œuvre de certaines fonctionnalités…), je souhaitais à travers cet article vous exposer les différents défis techniques auxquels nous avons été confrontés et vous faire part, à mon tour, de mon expérience utilisateur de la plateforme Bonita Cloud.
De consultant expert à client utilisateur
En tant que consultant en services professionnels chez Bonitasoft depuis plusieurs années, j'ai accompagné un certain nombre d'utilisateurs ‘Bonita Enterprise’ dans la migration de leurs processus métier vers notre plateforme cloud.
Lorsque nous avons commencé à développer en interne le centre de service clients sur Bonita, mon rôle est ainsi passé de ‘consultant expert’ à ‘client utilisateur’. Ce changement de position m’a ouvert de nouvelles perspectives et a renforcé certaines de mes convictions dont je compte faire bénéficier nos clients à terme.
Mais avant toute chose, je voudrais dire quelques mots de Bonita cloud…
Qu'est-ce que Bonita ?
Bonita est une plateforme ouverte d'automatisation des processus numériques (DPA) basée sur le Business Process Management (BPM), qui permet de créer des applications basées sur des processus. Les équipes informatiques et commerciales l'utilisent pour créer rapidement des applications métier complètes. Bonita Cloud repose sur l'ensemble de la plateforme Bonita proposée sous forme de plateforme en tant que service (PaaS) sécurisée, tolérante aux pannes et évolutive. Elle est exploitée et gérée par Bonitasoft et les utilisateurs peuvent s’appuyer dessus pour développer leurs propres applications d'entreprise.
En tant que consultant services professionnels, je travaille avec les équipes du support client (ce que nous appelons le « Customer Success »). Ainsi, lorsque les clients rencontrent des doutes et des difficultés ou ont des choix difficiles à faire, ils font appel à l’équipe dont je fais partie pour leur fournir l'expertise dont ils ont besoin et, de notre côté, nous travaillons avec les équipes de Cloud Ops et de R&D pour leur fournir des solutions adéquates.
L'édition Bonita Cloud, comme l'édition Bonita ‘on premise’, est une plateforme à code réduit, riche et extensible pour créer des applications. Certaines des pratiques utilisées dans le développement ‘on premise’ sont limitées dans Bonita Cloud, ce qui c’est aussi bizarrement avéré être une opportunité pour construire une meilleure application.
En quoi certaines contraintes peuvent-elles repousser les limites du possible ?
Si l'extensibilité est l'une des propositions clés et fondamentales de Bonita, le mode PaaS peut entraîner certaines contraintes en la matière.
Aussi, lorsqu'un client est confronté à une contrainte, nous nous efforçons de proposer une approche alternative qui soit compatible avec le mode cloud ou de trouver une solution externe standard à brancher sur la plateforme. Dans ce dernier cas, notre rôle se borne alors à fournir des explications et des directives, mais nous n’intervenons pas dans la mise en œuvre.
Mais, lors du développement du centre de service clients, il a bien fallu « s’y coller » et repousser nos limites. Ce projet nous a alors donné l'occasion de voir comment combiner la plateforme cloud avec d'autres services internes proposés en mode cloud.
Comment avons-nous relevé les défis du développement de ce nouveau centre ?
Avant de plonger dans les défis techniques que nous avons rencontrés, j'aimerais vous rappeler le contexte. Le centre de service clients est le principal point de communication entre l'entreprise et ses clients. Les développeurs et les utilisateurs professionnels l'utilisent pour ouvrir des demandes d'assistance, d'expertise et de formation. Ils doivent ainsi pouvoir télécharger des versions de produits ou générer des licences. Lorsqu'il y a des informations à partager, l'entreprise peut également l'utiliser pour partager des conseils, en sachant que le niveau d’accès aux services délivrés par le centre est conditionné au niveau d'abonnement de chaque client.
Il doit être évolutif, fiable et sécurisé
Déployé dans le cloud, l'environnement de production du centre de service clients est regroupé sur des conteneurs fonctionnant derrière un équilibreur de charge et les bases de données sont sauvegardées chaque jour. Le protocole HTTPS est appliqué par défaut, ainsi que par les politiques de sécurité.
Intégrer Salesforce ? Oui, c'est possible !
Le centre de service est centré sur les clients. Alors que nous utilisons Salesforce comme CRM pour notamment son riche ensemble d'API avec lesquelles communiquer, nous souhaitions afficher les informations contenues dans différents objets Salesforce dans des tableaux récapitulatifs ou des vues détaillées. Cependant, demander des objets à Salesforce chaque fois qu'ils sont nécessaires est lent et peut dégrader considérablement l'expérience utilisateur. Pour atténuer ce problème, nous avons décidé de mettre les informations en cache. Comme la plateforme basée sur le cloud fonctionne dans un environnement en cluster, nous avons choisi d'utiliser Hazelcast, un cache distribué.
Le stockage des fichiers repose sur des solutions AWS intégrées
Alors que certaines fonctionnalités du centre de service clients nécessitent l'envoi et la réception de fichiers (comme joindre des fichiers journaux à un cas, télécharger des versions de produits ou encore générer des fichiers de licence…) et que l'utilisation du système de fichiers locale n'est pas une option en mode Paas, nous ne souhaitions pas nous appuyer sur (S)FTP(S) pour des raisons de sécurité. Dans un environnement cloud, l'approche la plus naturelle a donc été de s'appuyer sur le stockage d'objets. Tous les fournisseurs de cloud offrent des SDK Java qui facilitent l'intégration dans les connecteurs d'intégration et les extensions Rest API et nous les avons donc largement utilisés dans le cadre de ce projet.
Surmonter les limites du PaaS avec des fonctions
Pour générer des licences, nous avons dû exécuter des jars exécutables, l'une des principales limites du mode PaaS étant que vous ne pouvez pas avoir accès aux systèmes sous-jacents, en particulier à l'infrastructure. Sur site, il est possible d'exécuter des éléments de code externes (scripts shell, jars, etc.) à partir de l'environnement de la plateforme. Dans un environnement cloud, ce n'est pas possible !
Nous avons donc décidé d'utiliser des fonctions car elles sont simples à intégrer via les SDK Java de la plupart des fournisseurs de cloud computing. De plus, cette option offre une gamme complète de possibilités, car il est possible d’écrire des fonctions dans un large éventail de langages pour de nombreux cas d’usages.
Rendons tout visible
Dans une application basée sur les processus métier, les processus se déroulent étape par étape par le biais de tâches ou d'actions. Mais, dans le cadre du centre de service clients, nous voulions que des notifications visuelles de l'avancement d'un processus puissent s’afficher. Une solution simple a alors consisté à exposer une extension Rest API afin de vérifier l'état du processus à partir du cache distribué Hazelcast.
La construction d’un véritable laboratoire au service de l’innovation
Notre projet de développement s'est ainsi avéré être un excellent laboratoire pour un consultant comme moi, car il m’a permis d'expérimenter l’ensemble des possibilités de notre propre plateforme Bonita cloud.
La fréquence et la qualité des interactions entre les équipes de projet m'ont convaincu de l’excellence de nos développeurs et de leur capacité à répondre aux attentes de nos clients.
Avec le soutien de l'ensemble de l'écosystème, notre équipe de service clients a construit une solution innovante, qui devrait pouvoir proposer une nouvelle expérience, plus « responsive » et plus performante !