BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Articles Startup Architecture : Conuxio

Startup Architecture : Conuxio

A l'occasion de l'Azure Camp qui a lieu le 24 juin, InfoQ FR a pu rencontrer les startups participant à la conférence afin de faire un retour d'expérience sur leurs systèmes de production, InfoQ FR a pu rencontrer Arnaud Lecoufle de la startup Conuxio.

InfoQ FR : Bonjour Arnaud, pouvez-vous vous présenter et nous introduire votre startup, Conuxio ?

Arnaud Lecoufle : Anciennement Consultant IT, j'ai étudié à Epitech (promo 2005) avant de rejoindre des SSIIs pendant lesquelles j'ai acquis 8 ans d'expériences dans la mise en œuvre de projets IT pour des clients grands comptes, le plus souvent utilisant les technologies Microsoft. Cette année, je me suis enfin lancé dans la réalisation de ma propre solution pour mettre à profit ce que j'ai appris durant mes précédentes missions.

Aujourd'hui, je suis le CTO et cofondateur de Conuxio dont le projet est une solution Web & Mobile de conception et de partage de checklistes intelligentes à destination du grand public. Avec Conuxio, on peut présenter les étapes d'une expérience ou d'une connaissance sous forme d'étapes prêtes à l'emploi et que l'on peut envoyer à ses amis ou ses collègues. Ensuite, ceux-ci peuvent s'en inspirer pour leurs propres projets. Par exemple : Si je souhaite partager mon organisation d'un voyage au Japon, avec Conuxio (voir l'exemple sur notre site de démonstration) je peux détailler chacune des étapes à prévoir avant de partir, ainsi que pendant le séjour. Ceci, afin de m'organiser au mieux et mettre toutes les chances de mon côté pour réussir mon voyage.

Enfin, si l'on parle de checkliste intelligente, c'est parce que chacune des tâches de la liste peut être organisée selon une séquence déterminée, un groupe donné ainsi qu'une série de questions/réponses pour mieux guider l'utilisateur dans ses actions. A chaque étape, l'utilisateur peut enrichir la liste avec le contenu le plus adapté (vidéo, audio, image, articles HTML, liens ou commentaires).

InfoQ FR : Quels sont les gros challenges techniques pour Conuxio ?

Arnaud Lecoufle : J'identifie trois gros challenges techniques :

  1. Développer un outil d'édition des checklistes (HTML5 + JavaScript + CSS)
    Pour notre site web, il est impératif d'aider l'utilisateur à construire sa checkliste de la façon la plus intuitive et la plus rapide possible. Un éditeur de checklistes a été entièrement développé dans ce sens, il permet la construction d'une checkliste dont les tâches peuvent s'imbriquer entre elles aussi bien que dans un véritable arbre de décision. L'éditeur de checklistes facilite la mise en place de groupe de tâches ainsi que les retours et boucles dans les actions. Aussi un éditeur de texte pour composer des articles HTML lui a été associé.

  2. Architecture orientée multi plateformes
    Aujourd'hui, il n'est plus possible de proposer un simple site web, pour exister il faut posséder une application dédiée sur chacune des plateformes (Android, iOS, Windows Phone) et être compatible dans tous les formats (mobile, tablette, navigateur). Une certaine rigueur s'impose lors de la conception, même si ça semble être un luxe quand on est une startup qui a besoin de démontrer des résultats rapides.

  3. Architecture haute disponibilité
    Pour que les checklistes Conuxio puissent aider au mieux les utilisateurs, elles doivent être accessibles depuis n'importe quel endroit 24h/24. Dans ce cas, le challenge est de proposer une architecture haute disponibilité.

InfoQ FR : Pouvez-vous nous décrire votre infrastructure de production actuelle ?

Arnaud Lecoufle : L'architecture PaaS 3 tiers se compose de la façon suivante :

  • Front Office (1 Web Site)
    HTML 5 + JavaScript (Frameworks : Durandaljs + Knockoutjs)
    Le front end est totalement exécuté côté client. Tous les contrôles sont développés en Javascript et les dialogues se font en AJAX vers l'API REST. DurandalJS permet de cadrer les développements selon le modèle MVC, son moteur se charge de la navigation entre les vues. KnockoutJS est un framework qui permet aux données d'un contrôle d'être liées dynamiquement à la page.

  • Middle Office (1 Web Site)
    ASP.NET Web API Controllers
    L'objectif de cette API est le cœur de tous les échanges de la solution. C'est le point commun à tous les devices qui vont consommer les ressources de checklistes. C'est dans cette brique que sont concentrés tous les appels à la base de données. Les contrôleurs sont développés en C# et la couche d'accès aux données utilisent les librairies ADO. Par la suite, nous envisageons d'intégrer la nouvelle fonctionnalité proposée par Microsoft Azure : API Management afin de piloter au plus près notre Back End.

  • Module d'authentification avec Mobile Services NodeJS
    Ce module nous a permis de mettre en place rapidement un système d'authentification vers les différents providers d'identité tels que Facebook, Google et Microsoft. C'est directement depuis le script JS que nous récupérons le token envoyé par le provider d'identité choisi, il n'y a plus qu'à paramétrer les différentes configurations depuis le portail Azure.

  • Back Office
    SQL Azure Database
    C'est ici que sont stockées les checklistes de façon dématérialisées. Les données utilisateurs et leurs parcours sont stockés dans cette base de données. Les tables, vues et procédures stockées peuvent être codées depuis un projet Visual Studio facile à compiler et à déployer dans Azure ; une simple connectionString stockée dans les DeploymentSettings.

  • Blob Storage
    Pour tout le stockage média des checklistes (vidéos, image, commentaires, articles HTML, …) afin de ne pas alourdir la base de données. Et c'est aussi une bonne idée d'un point de vue économique puisque la base de données est plus chère que le storage dans Azure. Attention à l'upload depuis un site web : il est impératif de faire le découpage des paquets côté client et non depuis l'API sans quoi le serveur risque d'avoir trop de traitements de découpage des données.

InfoQ FR : Concernant votre API, peut-elle rencontrer des problèmes de performances ?

Arnaud Lecoufle : Notre API est une couche Web Services REST qui harmonise les échanges entre nos différents devices consommateurs de checklistes.

Par la suite, à l'aide de l'API Management, notre API deviendra publique et les utilisateurs pourront mettre en place leurs propres interfaces de gestion de checklistes. C’est-à-dire dans un site web externe, développer son propre aperçu d'une checkliste restitué par Conuxio.

Ce module se positionne entre l'utilisateur et le backend, il devient le proxy sécurisé vers les traitements d'arrière plans. Aussi, nous pourrons surveiller l'état des différentes requêtes à la base de données à partir de l'API Management.

InfoQ FR : L'adoption du cloud par opposition à des hébergeurs classiques était-elle évidente pour vous, et ce choix a-t-il eu des répercussions sur votre architecture et votre manière de travailler ?

Arnaud Lecoufle : Pour une startup comme la nôtre, le choix du cloud est une évidence. Au démarrage, il est difficile de déterminer le nombre d'utilisateurs de notre produit, par conséquent le cloud nous permet de démarrer facilement sans investir dans une infrastructure trop coûteuse au départ.

Notre architecture doit donc rester simple et efficace car elle doit s'adapter en fonction de la charge demandée.

Nous devons être capables a tout moment d'augmenter notre nombre d'instances rapidement en cas de montée en charge et de la même manière, nous devons adapter notre infrastructure lors d'une baisse d'activité. Avec le cloud, c'est possible en quelques clics et la facture s'adapte.

Le cloud est donc la solution idéale pour nos besoins d'hébergements. Et comme j'avais déjà l'expérience des technologies Microsoft, c'est Azure que nous avons choisi naturellement.

InfoQ FR : Quelles évolutions d'architecture et de production envisagez-vous dans un futur proche ?

Arnaud Lecoufle :

Naturellement, on souhaiterait avoir la possibilité d'augmenter le nombre de nos instances mais aussi de dédier certains serveurs à l'indexation de nos contenus.

C'est plus en termes de fonctionnalités supplémentaires qu'il faut voir les choses, nous envisageons le développement d'un moteur d'exécution dédié aux tâches de chaque checkliste, il faudra être prêt à s'adapter.

Aussi lorsque nous aurons développé le moteur d'exécution des tâches, nous devrons alors lui apporter une infrastructure adaptée.

Vous pouvez regarder la conférence de Arnaud Lecoufle à l'Azure Camp dans le replay ci-dessous.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT