retours d'expÉriences...

16
DeS STaRTUPS VoUS PRéSenTenT leUR UTiliSaTion De l'oPen SoURce DanS aZURe RETOURS D'EXPÉRIENCES TECHNIQUES SALES PROSPECTING REINVENTED

Upload: vuongphuc

Post on 13-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Des startups vous présentent leur utilisation

De l'open source Dans azure

RETOURSD'EXPÉRIENCES TECHNIQUES

SALES PROSPECTING REINVENTED

Le Cloud, composantincontournable du développeur le cloud computing a réellement émergé en 2008. vu comme une bêtecurieuse, le développeur a testé, regardé les différents services. le saas aété la première couche à rencontrer le succès. si l’entreprise a mis plusieursannées à y venir (avec le iaas et le paas), la startup s’est posée moins dequestions. le cloud apportait une flexibilité et une liberté que l’on nepouvait pas avoir avec une infrastructure classique ou en infogérance.

en limitant les investissements, la startup peut monter des prototypes,tester un service en quelques heures. un pic de fréquentation ? enquelques minutes, l’infrastructure cloud monte en charge. et inversement,on déprovisionne tout aussi facilement. surtout, on ne s’occupe plus dumatériel, de l’infrastructure, de sa maintenance, de son déploiementphysique ! les développeurs, les équipes se concentrent sur leur métier, surleurs compétences.

le développeur tire naturellement profit du cloud : nombreux services àdisposition, une ouverture toujours plus grande, facilité de déploiement. lessDK, api, librairies facilitent la vie du développeur que se soit pour desdéveloppements from scratch (nouvelles applications) ou des migrations,en 100 % cloud ou en modèle hybride.

iaas et « Web sites » s’utilisent dans une très grande diversité de projets,de développements, d’usages : paiements, gestion et analyse de données,back-end mobile… on peut tout faire, ou presque. azure fournit desservices paas qui permettent au développeur de se concentrer sur le codeet non sur l’infrastructure.

Dans ce cahier spécial Microsoft azure, le focus a été mis sur des retoursd’expérience réels de startups ciblant des services et des marchés trèsdifférents. l’un des aspects les plus intéressants est de voir comment lesdéveloppeurs ont utilisé et intégré des briques open source dans leursarchitectures iaas et paas.

François TonicDirecteur de la publication & rédacteur en chef de Programmez !

IIIJanvier 2015

édito sommaire

>2ressources

>4aperçu de Microsoft azure

>6semsoft

>8salezeo

>10 captain contrat

>12alkemics

>14Movidone

Réalisation NEFER-IT / Programmez! - Siège social : 7 avenue Roger Chambonnet 91220 Brétigny sur Orge (France) - Directeur de la publication / rédacteur : François TonicCoordination Microsoft : Cécilia Gouby - Contributeur : Benjamin Guinebertière - Maquette : Pierre Sandré - Secrétaire de rédaction : Olivier Pavie Imprimé en France - Dépôt légal : janvier 2015 - Photos et illustrations tous droits réservés. Document non contractuel.

IV < Janvier 2015

L’ouverture sur les services PaaSAzure propose des services PaaS quipermettent au développeur de seconcentrer sur le code, sans se préoccuperde l’infrastructure. Ils aident à créer, à déployer et à exécuterdes applications. Pour ce faire, le PaaS utilisedes runtimes pour supporter tel ou tellangage et technologie. Des SDK (kits de développement)permettent aux développeurs de créer des applications Azure et d’intégrer lesservices Cloud.Au début, Azure supportait uniquement leslangages .Net et Visual Studio. Mais, aujourd’hui, Azure est très ouvert et

supporte de nombreux langages non-Microsoft : Java, PHP, Node.JS, Python,Ruby… Ainsi, si vous avez des applications etprojets dans ces langages, vous pourrez lesmigrer sur Azure et profiter des avantagesde la plateforme comme la réplication, lamontée en charge automatique, la qualitéde service (SLA), etc. Par exemple, si vous utilisez Java et Eclipse,un SDK Java est disponible ainsi qu’un plug-in pour Eclipse. Azure supporte Tomcat etJenkins. Ces librairies sont disponibles surWindows, Linux et OS X. D’autre part,Microsoft et Oracle collaborent étroitementpour faciliter le déploiement et l’usage desserveurs et frameworks Java sur le Cloud :JDK 8, WebLogic.Même chose pour PHP : le développeur PHPpourra utiliser le SDK dédié et ses outilshabituels. Le framework Symfony, un desplus importants frameworks dans l’universPHP, est disponible sur Azure.

Azure + Linux : le couple parfaitUniquement PaaS à l’origine, Azure proposeune solution offre d’infrastructure (IaaS).Azure Machines Virtuelles permet de créeret d’exécuter des machines virtuellesWindows, Linux et des workloads dédiés(SQL Server, SharePoint, Oracle, Puppet,Chef, Docker, etc.). Sur la partie Linux, vous pouvez déployer enquelques minutes une distribution UbuntuServer, SUSE/OpenSUSE, CoreOS, CentOS.Ce sont les workloads proposés par défautdans le portail Azure. Microsoft travaillebeaucoup avec les communautés, et,pour faciliter les publications des machines virtuelles Open Source pré-packagées, vous disposezde VM Depot. VM Depot est géré et maintenu parMicrosoft Open Technologies. Plusieurscentaines d’images virtuelles sont

Microsoft Azure : diversité, open source, ouvertureMicrosoft azure héberge etexpose aussi bien destechnologies et servicesissus des plateformesWindows et .net que desenvironnements nonMicrosoft. cette ouvertureest primordiale pourpouvoir s’intégrer à unenvironnementtechnologique toujours plushétérogène, mêlantlogicielspropriétaires/commerciauxet open source. il s’agitd’utiliser le meilleur dechaque « monde ». azureoffre aujourd’hui unecouverture technique etfonctionnelle très largeallant du stockage auxoutils de big data,d’analyses à la demande, enpassant par les mécanismeshybrides pour connecter leslogiciels et données on-premises au monde cloud.

VJanvier 2015

accessibles et utilisables sous Azure : Linux,BSD, GitLab, Drupal, Alfresco, Apache, etc.Des images LAMP (Linux, Apache, MySQL,PHP) sont disponibles sur le dépôt. Vous pouvez rapidement créer votre propreenvironnement LAMP : http://aka.ms/rf2jivSur VM Depot vous pouvez déposer desimages qui peuvent être utilisées depuis leportail Azure. Si vous ne trouvez pas votre workload, vouspouvez rapidement créer et déployer votrepropre environnement, en créer unemachine virtuelle Linux, et en y installanttoutes les piles techniques nécessaires à vos

applications et environnements serveurs. LeIaaS Azure est très souple. Et vous bénéficiez de tous les mécanismes(activés par défaut ou disponibles enoption) de réplications, de load balancing,de montée en charge automatique (auto-scaling).

Web Sites : la diversité du Web à votre portéeLe Web est une des plateformes les plushétérogènes, avec de nombreuses solutionsopen source. Tout naturellement, Azure

Rappel : qu’est-ce qu’Azure ?Azure est la solution Cloud Computing de Microsoft. Nous y trouvons à la fois desservices PaaS (plateforme) et des services IaaS (infrastructure). À cela se rajoutentdes fonctions de big data, d’HPC, de cloud hybride, entre autres. Azure permet de déployer (ou de migrer) des applications, des sites Web, desinfrastructures en quelques minutes. Ces services sont disponibles dans le mondeentier grâce à 16 datacenters, dont deux en Europe.

Au-delà du PaaS et du IaaS, Azure permet de mettre en place une démarcheDevOps grâce à des outils très puissants tels que Release Management, les outilsde tests, Application Insight, Visual Studio Online ou encore les fonctions de Build.

Web Sites supporte cette diversité :- Node.JS, PHP, Java, Python, HTML 5,- Git, GitHub pour gérer les sources et les

ressources,- MySQL, MongoDB pour la base de

données.À cela se rajoutent des packages Web prêtsà l’emploi : WordPress, Umbraco, Joomla,Drupal… En quelques minutes, vousdéployez la solution Web que vouspersonnalisez ensuite. Idéal pour une startupou un site Web événementiel à courte duréede vie, mais avec une très forte charge. Les sites Web hébergés sur Azurebénéficient du load balancing, de la montéeen charge automatique (autoscaling), dudéploiement continu. Vous pouvez essayer gratuitement MicrosoftAzure. Si vous êtes une startup, vous pouvezbénéficier du programme BizSpark donnantdroit, pour une durée de 3 ans, à desressources Azure, des outils dedéveloppement, et aux supports techniques.

u

Une seule adresse : http://azure.microsoft.com/fr-fr/

La virtualisation des machines est lefondement du Cloud Computing tel quenous le connaissons aujourd’hui. Pourtant, ilsemble que les grands acteurs du Cloudpublic s’intéressent de plus en plus auxmécanismes de virtualisation à base deconteneurs (ou containers), ainsi qu’auxsolutions permettant de les gérer plusefficacement. Parmi celles-ci, le projet OpenSource Docker suscite une forte adhésion.Docker se fonde sur les mécanismes decontainer LXC, une technologie devirtualisation sous Linux.

Faciliter la portabilité et ledéploiementSi le container d’application offre demultiples analogies avec celui du transfertmaritime (empaquetage de tout typed’application et de ses dépendances,exécution sur n’importe quelenvironnement, isolation…), Docker, luis’inspire directement de son homologueportuaire en facilitant le chargement et ledéchargement de ces fameux containers, safinalité étant de garantir une cohérence etune simplification des modèles dedéploiement. Un container Docker seprésente comme un répertoire intégrant les

prérequis liés à l’exécution d’uneapplication. Chaque container est isolé desautres containers qui peuvent s’exécutersimultanément sur le même système. Cetteapproche offre une meilleure utilisation desressources et permet d’envisager une plusgrande densité d’applications.Un container est créé à partir d’une imageDocker. Docker permet aux développeurs decréer, de personnaliser et de composer desimages d’application accessibles en lectureseule et de les télécharger vers desréférentiels privés ou publics (ex. : DockerHub), participant ainsi à la construction detout un écosystème…Microsoft propose de déployer desenvironnements Dockers sur des machinesvirtuelles Ubuntu ou CoreOS déployées dans

Azure et offre un outilOpen Source devisualisation desclusters Kubernetespour gérer desconteneurs Docker àgrande échelle.Côté Windows, encomplément du ClientDocker, une nouvelletechnologie de

container sera incluse dans la prochaineversion de Windows Server pour laquelleMicrosoft proposera également uneimplémentation Open Source de Docker. Ildeviendra alors possible de gérer desapplications composées sur la based’images Linux et Windows depuis le mêmeenvironnement Docker client. Enfin, lesimages Docker Hub seront fédérées dans laMarketPlace du nouveau portail Azure. Dequoi assurer un futur prometteur à Dockeret, qui sait, peut-être transformer le

mythe du « Write once, runanywhere » en réalité ? u

AVEC DOCKER, LE CLOUD COMPUTING EST-IL SUR LE POINT DE FRANCHIR UN NOUVEAU CAP ?

Stéphane GoudeauCloud ArchitectMicrosoft France

Semsoft est un essaimage d’Orange Labs ets’appuie sur 12 ans de R&D développésconjointement avec l’INRIA et le laboratoirede Recherche en Informatique d’Orsay.L’éditeur permet aux entreprises d’accélérerleur transformation numérique pour innover,mieux opérer et mieux décider, enmobilisant toutes les données disponibles,maintenant. Aggrego réduit par unfacteur 10 les coûts et les délais de projetsd’intégration traditionnellement mis enœuvre avec des technologies de type ETL,Datawarehouse et MDM.

Concrètement, il s’agit d’une solution SaaSde portail, qui agrège à la demande desdonnées multisources permettant auxutilisateurs fonctionnels de :- Générer des fichiers de données sur la

base de requêtes en langage naturel,- Enrichir des fichiers ou bases de données à

partir de données multisources par simpleparamétrage fonctionnel,

- Exposer des données au travers d’APIsconfigurables, permettant à desapplications (portails, etc.) et outils(décisionnels, analytiques, etc.) tiersd’accéder à l’ensemble des donnéescomme si elles étaient présentes au seind’une même base de données, sanscentralisation ni programmation.

L’innovation de la solution réside dansl’automatisation de tous les traitements surles sources (train de requêtes, jointures,réconciliation…), en se basant sur unparamétrage du sens métier des sources.Cette innovation apporte les gains suivants :- Réduction par 10 des temps et délais de

projet d’intégration de données parrapport aux solutions traditionnellementutilisées de type ELT/Datawarehouse/MDM,

- Totale agilité pour faire évoluer lepérimètre des sources, par simpleconfiguration,

AGGREGO de SemsoftUne base de données virtuelle en mode Cloudsemsoft a été fondé en 2009. il édite la plate-forme aggrego qui permet d’exploiterinstantanément toutes les données pour des besoins applicatifs ou décisionnels. aggregoassemble dynamiquement l’information fragmentée dans des silos tant internesqu’externes, sans centralisation des données ni programmation. c’est en fait une base dedonnées virtuelle qui permet d’avoir une vue 360° des utilisateurs, des clients, desproduits, des contenus.

- Autonomie des utilisateurs fonctionnelsqui peuvent avec  des outils simples etconviviaux « prendre le pouvoir sur lesdonnées » cloisonnées en silos pour mieuxopérer et décider, sans nécessiter detransformer le SI tout en pouvant exploiterles données externes.

Un large choix technologiqueAu départ, Semsoft utilisait une plateformed’hébergement « classique ». La décision demigrer vers Microsoft Azure s’est faite pourdeux raisons : les technologies Microsoftavait un très fort engagement sur le Cloudet la richesse de l’écosystème autour de cestechnologies. Pour Semsoft, ce n’était pas qu’un choixtechnique à court terme (montée en charge,richesse fonctionnelle, coût, support).

La solution étant vendue à de grandesentreprises soucieuses de la sécurité etde la disponibilité, Azure apporte unecrédibilité qu’un autre partenairen’aurait pas. Par ailleurs, le choix Microsoft est aussiun choix d’écosystème qui regroupedes services cloud, des partenaires deservices, d’autres éditeurs, dessolutions de front-end (Office365, PowerBI,Dynamic CRM, etc…). Le choix s’est donc basé sur une réflexionsur le long terme.

Il était à l’origine contre-nature pourSemsoft ayant une forte culture Java etOpen Source, et peu de culture du mondeWindows ou .Net.

Comment fonctionne Aggrego ?Comme dit précédemment, Aggrego estune base de données virtuelle. Son but est de pouvoir « agréger »

dynamiquement des données provenant dedifférentes sources pour pouvoir lesmanipuler, les analyser, les intégrer.

AGGREGO fait du mash up dynamique deWeb services autour d’un modèlesémantique, métier, configurable. Il repose sur un hub d’intégrationsémantique orchestrant dynamiquement leséchanges entre les différentes sourcesd’information pour en extraire les donnéesutiles et construire, à la demande, desréponses correctes, complètes ethomogènes à la vision métier del’entreprise. Cette vision métier del’entreprise est matérialisée sous la formed’un graphe de connaissances (plusprécisément une ontologie conceptuelle)explicitant les éléments d’information (c.-à-d. les concepts et les propriétés) exploitésau quotidien par les collaborateurs et sur labase desquels sont alignées les différentessources d’information.En automatisant, pour chaque demandeutilisateur, l’interrogation des sources, ainsique les processus d’agrégation et deréconciliation des données retournées,AGGREGO se distingue de toute solutionexistante sur le marché en apportant uneagilité sur les données sans équivalent.

L’architecture a été pensée pouraccompagner l’évolution des besoins desclients tant sur le périmètre des sources quesur la montée en charge. Pour permettre cette montée en charge etcette fiabilité, tout en garantissant desniveaux de sécurité importants, Azure a étéchoisi :- scalabilité : Azure fournit des modules de

gestion de la montée en charge quiajustent le nombre de serveurs en fonctiondu trafic et de la charge,

- sécurité : contrôle d’accès du plus simple(HTTPS, IP) au plus spécifique (OAuth)

VI < Janvier 2015

- fiabilité : supervision et contrôle du SLA autravers d’un portail « user-friendly » nouspermettant très facilement d’avoir une vueglobale sur l’état et l’utilisation de tousnos services.

Par ailleurs, Azure supporte le systèmed’exploitation Ubuntu (distribution Linux)qui est l’environnement maîtrisé par leséquipes techniques.

Le déploiement de la solution AGGREGO surAzure a été extrêmement rapide et aucunedéfaillance n’est survenue.

Semsoft capitalise sur la richesse de l’offreAzure (par exemple : stockage des logsd’AGGREGO, des fichiers de configuration etdu cache dans des bases NoSQL telles que

MongoDB) pour ajouter des fonctionnalitésfacilitant la manipulation des données. Enfin,Aggrego se connecte nativement auxprotocoles standardisés, comme oData. Lesclients peuvent ajouter des sourcesrespectant ce format et c’est encore plussimple lorsqu’elles sont disponibles surAzure Marketplace !

Le service est facturé à l’usage ou surabonnement, selon un périmètre dedonnées et d’usage défini. Les abonnementsvont de 20 à 100 000 €/an.

Combien ça coûte ?Le prix dépend globalement du contexte liéau projet client (charge, sécurité, etc.). Celaétant, Semsoft faisant partie du programme

BizSpark, la startup bénéficie des prix sanséquivalent sur le marché. Dans ce « prix », ilfaut prendre en compte le support apportépar les équipes de Microsoft. Ce support estcommercial, pour potentiellement avoir lesupport des équipes Microsoft auprès d’unclient qui cherche à être rassuré sur lasolution provenant d’une start-up.

C’est aussi un support technique, avecl’engagement de la division DX auprès destart-up. Ce support permet de rapidementappréhender les nouveaux services d’Azureet l’ensemble du portefeuille de produitsMicrosoft. Ce point est particulièrementimportant pour Semsoft qui n’est pas néavec une culture technique Microsoft.

u

VIIJanvier 2015

L’idée de départ est de briser l’approchetraditionnelle de la prospection commercialeet du métier même de commercial etnotamment de ne plus être dans des silosétanches, sans échanges. Salezeo veut améliorer l’efficacité de laprospection commerciale avec un accès plusrapide aux informations, une réduction dessaisies de données chronophages et unreporting clair et immédiat, le tout dans unesolution mobile et disponible partout.

La donnée au centre de tout

Tout part de la donnée, donc de la base dedonnées. Celle-ci repose sur de multiplessources : réseaux sociaux, communiqués depresse, Wikipédia, Google, géolocalisation,données de l’entreprise, etc. C’est une base B2B contenant un million etdemi de prospects référencés etdocumentés, 20 000 membres actifs et plusde 50 000 nouveaux contacts chaque mois.Cette base a été construite selon le principedu crowdsourcing.

SalezeoRéinventer la prospection commercialesalezeo a été créée il y a 3 ans. aujourd’hui, la startup compte une trentaine depersonnes, et a levé 1,5 million d’euros auprès du fonds d’investissement newfund.Dès le départ, la société a misé sur le cloud computing et des services saas. le but desalezeo est simple : proposer une solution de prospection commerciale collaborativeinnovante en combinant des technologies open source et azure.

Le crowdsourcing est une approchecollaborative pour créer du contenu etcollecter des informations. On mutualiseainsi les données provenant des membrespour alimenter la base de données etcompléter les informations existantes.Chaque membre échange en ligne, partageavec la communauté, un peu comme unwiki. Salezeo est une plate-formed’échanges avec des mécanismes de BigData comme la collecte permanente decontenus et de données provenant du Web.Il s’agit de capter l’empreinte numériquedes prospects, des entreprises. L’idée est de proposer aux commerciaux desinformations plus complètes et actualiséesafin de mieux cibler et de mieuxcomprendre les besoins du client et êtreainsi plus efficace, plus pertinent dans ladémarche commerciale et le développementde nouvelles activités.

Les principaux enjeux techniques du serviceconcernent la collecte, le traitement etl’accès à de grands volumes d’informationsmulti-sources.

VIII < Janvier 2015

Le Cloud et l’open source : une flexibilité nécessaire

Dès son lancement, Salezeo avait l’ambitionde construire une architecture logicielle etsystème suffisamment flexible, notammentpour supporter un déploiement àl’international et une forte croissance desvolumes de données à traiter, tout enconservant une capacité d’évolution destechnologies utilisées et des coûts adaptés.

La solution repose sur des briques opensource pour construire des architecturesSaaS. La partie front-end s’appuie sur leFramework PHP, Symfony, un choix dictéprincipalement par les compétencesdisponibles et la richesse de la communautéen France. Le back-end qui est au cœur dutraitement et de la valorisation des données,utilise Java (JEE 1.7). La couche serveur Javaest de l’Apache sur lesquelles on y trouvedes API internes et externes. L’informationcollectée alimente ce moteur interne basésur des algorithmes dédiés et des moteurs

d’apprentissage (Machine Learning). La basedont le volume croît rapidement possèdeplusieurs dizaines de millions de lignes etest beaucoup sollicitée pour les analyses etles traitements des données.

Le choix de la base de données s’est portérapidement sur MariaDB, un fork de MySQL,notamment pour ses performances entermes de réplication de base et lapossibilité de mettre en œuvre des clustersde base de type Galera pour répondre auxproblématiques de montée en charge.

L’un des points majeurs pour ce service estl’accès à la donnée, que ce soit pour lemoteur de recherche mis à disposition dufront-end ou pour le traitement de ladonnée. Pour ce faire, Elastic Search (basésur Lucene — fondation Apache), associé àKibana pour visualiser les informations, a étémis en place pour un accès rapide à ladonnée, sa flexibilité face à une montée encharge et pour libérer la base de donnéesdes accès en lecture. La particularité d’ElasticSearch est d’utiliser une architecturedistribuée et de s’interfacer avec des basesSQL ou NoSQL. Il supporte REST et JSON.Les performances de l’indexation sont unedes problématiques des développeurs.

Les instances utilisées dans cettearchitecture sont des Machines Virtuelles OSLinux (Debian) dont les performancesdoivent pouvoir évoluer continuellementpour répondre à la montée en charge de laplateforme. Le tout fonctionne sur lesservices IaaS d’Azure depuis presque 3 ans.

Ce choix a été dicté par la robustesse del’offre et le sérieux de la plateforme. Il fallaitaussi un Cloud mondial capable d’assurer ladisponibilité et les performances partoutdans le monde ; en Europe dans un premiertemps et rapidement sur d’autrescontinents. Salezeo est entré dans leprogramme Bizspark+ de Microsoft. Ceprogramme accompagne les sociétés à fortpotentiel, identifiées comme telles parMicrosoft, en proposant support techniqueet ressources pour accélérer leur croissance.

La performance au cœur des préoccupations

Comme souvent, Salezeo a mis en place desinstances de production et depréproduction sur Azure. La préproduction sert à valider lesmodifications de codes et l’ajout denouvelles API des partenaires externes. Ce n’est qu’après la phase de validation quele déploiement des évolutions se fait enproduction.

Pour les équipes techniques, les enjeux deperformances sont importants,particulièrement en ce qui concerne la basede données et les performances d’écriture.La solution de stockage temporaire baséesur des disques SSD a permis de répondre àcette exigence.

L’infrastructure doit être très flexible sur lefront-end et sur le back-end. L’autoscalingest une des fonctions utilisées pour assurerla montée en charge et l’automatisation.

IXJanvier 2015

Le loadbalancing est tout aussi crucial. C’estpour cela que Salezeo utilise 2 Clouds chez2 fournisseurs différents avec des fonctionsde backups et de réplication de données.L’architecture Open Source et la non-adhérence technologique sont les deuxéléments clés pour pouvoir basculer d’unfournisseur à un autre immédiatement et surla même architecture. En cas de panne,Salezeo bascule sur le fournisseur desecours.

SLA

La double architecture mise en œuvre parSalezeo assure un niveau de service dehaute disponibilité et permet le déploiementd’instances pour chaque brique OpenSource déployée (base, indexation, back-end…) La supervision de la plate-forme est réaliséeavec un outil Open Source, Icinga, et lesupport de la partie IaaS est assurée parMicrosoft, avec un support on-line réactif.

Combien ça coûte ?

Chaque plate-forme (production etpréproduction) représente un coût d’environ1 100 €/mois.

u

RessourcesPour suivre Salezeo :http://entreprise.salezeo.comhttps://twitter.com/Salezeohttps://www.linkedin.com/company/salezeohttps://www.facebook.com/Salezeo

La startup a développé un algorithme àdestination des avocats qui permetd’automatiser une partie de la productionde documents juridiques et ainsi de baisserles prix. Le logiciel comprend les réponsesde l’entrepreneur à différentes questions etest capable de modéliser de 80 % à 100 %du document. Ainsi l’avocat intervient toutde suite après que le logiciel ait généré unepremière version du document et ne seconcentre que sur la partie où sa valeurajoutée est la plus forte (le conseil juridiqueet la personnalisation avancée dudocument). Ainsi, les honoraires proposéspour la rédaction des documents juridiquespar des avocats sont également plus faibles.

Quand le numérique aide l’avocatEn travaillant avec des cabinets d’avocats surla façon dont ils rédigent des documentsjuridiques pour leurs clients, Captain Contrata constaté des structures communes dans lafaçon de collecter les informations (série dequestions posées au client) et de mobiliserces informations pour rédiger le documentfinal. De nombreux éléments relèvent du

Captain ContratLe numérique au service du juridiquecaptain contrat est un siteinternet sur lequel desentrepreneurs/sociétéspeuvent acheter desdocuments juridiques àtravers une mise en relationavec un avocat à un prixabordable.

secrétariat et il est possible de l’automatiser.L’innovation réside dans l’algorithme pourchaque document. Ainsi, l’avocat ne fait plusde secrétariat juridique et peut seconcentrer sur le conseil juridique.Captain Contrat a participé à l’accélérateurMicrosoft Ventures ce qui a permis un suivides développements du service SaaS.L’objectif de ce logiciel SaaS est depermettre à tout profil, y compris et enparticulier des personnes n’ayant pas decompétences en développementinformatique, de créer leurs propresdocuments automatisés et de définir desarbres de décision pour la générationautomatique de ces documents.

L’architecturePour concevoir la plateforme, CaptainContrat a mis en place une architecture sousforme de services. Deux applications RubyOn Rails hébergées dans des machines

Fig.1

X < Janvier 2015

virtuelles Linux assurent la partie Web pourle site et le questionnaire dynamique. Lesbases de données SQL ont été externaliséesdans un service dédié, qui assure laréplication et la redondance. Un CDN pourles assets et des services de cache ont étémis en place pour la rapidité et lesperformances. Un Worker Azure, déployé enquelques clics(1) via le SDK Azure pourVisual Studio, et quelques services destockages et échanges de messagesassurent la communication entre lesapplications Ruby et .NET Fig.1.

La personnalisation des documentsL’utilisateur accède au service par le siteprincipal https://captaincontrat.com/, choisit undocument et fournit les détails sur sonentreprise. L’outil de collecte d’informations est uneapplication Web Ruby On Rails qui à la findu questionnaire exporte un fichier XMLcontenant l’ensemble des réponses vers undes 3 Blob Storage Azure utilisés pour leséchanges.

Fichiers réponses

Matrices de document juridiques

Fichiers finaux personnalisés

3 Blob Storage Azure pour les échanges de fichiers

Un message contenant la tâche à exécuterest envoyé dans une Queue de type ServiceBus et le fichier matrice est stocké dans un

Architecture de Captain Contrat

PRÉCISIONS SUR L'ASTAST (abstract syntax tree), est une structure dedonnées qui va contenir une expression issue d'unlangage de programmation en la décomposant entokens et qui va respecter la syntaxe de ce langage.Cet outil est principalement utilisé par lescompilateurs. Exemple : dans beaucoup de langages,nous pouvons réaliser une addition, celle-ci possèdela forme 2 + 2 (nombre + nombre). Si nous avons 2 +( 4 + 8), nous avons une priorité d'opération (d'abords le 4 + 8, puis le 2 + (12)), il fautla représenter sous une forme qui permet au compilateur de faire son travail.Cette représentation va permettre au compilateur de comprendre qu'il doit d'abordtraiter 4 + 8, et d'utiliser ce résultat pour faire l'opération suivante ( result + 2).

Fig.2

second Blob Storage. La communicationentre Ruby On Rails et les services Azure sefait avec le SDK pour Ruby disponible surGithub(2) qui permet l’upload/récupérationde fichier et l’envoi de message en assurantla communication avec les APIs Azure pourles services Blobs/Queues Storage et ServiceBus Queues Fig.2. Un Worker Azure requête la queuerégulièrement dans l’attente d’une tâche àexécuter. Quand une tâche est disponible, ilrécupère les informations des documents àassembler, fournis dans le message. La sauce secrète de Captain Contrat setrouve dans ce service qui à partir d’unematrice au format Docx et des réponsesobtenues, personnalise un documentjuridique aux besoins du client. Legénérateur de documents est développé eninterne en C#.Lorsqu’un nouveau questionnaire est créédans l’interface Web, la matrice dudocument est mise à disposition del’assembleur dans le stockage dédié auxmatrices. Le générateur peut ensuite allerrécupérer ces matrices ainsi que les fichiersXML de réponses dans les stockages pourcommencer l’assemblage et appliquer lesalgorithmes.Une bibliothèque de classes C# a étédéveloppée, qui donne un fichier .dll unefois compilé, et fait appel à plusieurs autreslibrairies disponibles en Open source etfournies par Microsoft, principalement :- Open XML SDK 2.5(3)(4) permettant la

manipulation de document office. RenduOpen Source en juin 2014(5).

- .NET Compiler Platform(6) (« Roslyn »)permettant des traitements complexes

XIJanvier 2015

(Roslyn permet entre autres de pouvoirgénérer des AST à partir d’un code C#,d’interpréter du code C# stocké sousforme de string au runtime…).

Ces librairies sont installées via le systèmeNuget package(7), disponible dans VisualStudio, qui permet le téléchargement delibrairies externes(8) et la gestion desréférences au sein du projet.Dans le fonctionnement de l’assembleur,Open XML SDK est indispensable. Cettelibrairie permet la manipulation des nodesXML et attributs au sein de document auformat Office Open XML(9) (docx, xlsx,pptx…) et assure la validation du schémaXML(10) en sortie. Elle est difficilementremplaçable au vu de sa compatibilité avecle format de fichier et sapuissance/simplicité d’utilisation.Roslyn fournit un compilateur de codessources C# et des API d’analyse de codes. Ilest utilisé pour évaluer les expressions et lalogique stockée dans les matrices. Tous lestraitements associés sont développés sousforme de module remplaçable pour pouvoirajouter ou supprimer des fonctionnalités ou

faire évoluer la librairie si nécessaire.Les matrices de document au formatOffice 2013 contiennent des marqueurs detype Content Controls (défini par la normeECMA 376(11), qui précise les conventionsde format de fichier Open Office XML(12).Ces marqueurs indiquent les blocs où destraitements vont intervenir et lamanipulation a appliqué (Ex : l’insertiond’une valeur donnée par le client, Calcul del’âge, Conversion de nombres en lettres…).Les algorithmes d’assemblage sontappliqués sur la matrice à partir desinformations fournies. Le fichier assemblé(au format .docx) est uploadé sur lestockage final et une notification estenvoyée à l’application principale pourqu’elle le récupère et le communique àl’avocat qui va relire et ajouter sa touchefinale.

Le développementDes heures de lecture de la documentationMSDN, des normes et des ressources du siteOpenXmlDeveloper(13) ont été nécessairespour comprendre le format Office XML, lemanipuler et développer un plug-in Office.Des développements sont encore en coursavec le .NET Compiler Platform (« Roslyn »),pour une partie du traitement logique desdocuments.Pour le développement, Visual Studio 2013,Office 2013 et Azure SDK pour Visual studiosont utilisés. Ces outils ont été obtenus dansle cadre du programme Bizspark Plus(14). Ledernier permettant la simulation en local del’environnement Azure et le déploiement del’ensemble dans le Cloud.

Combien ça coûte ?Aujourd’hui la plateforme consommeenviron 200 € du crédit par mois pourquelques services : machine virtuelle,stockage, service Bus, CDN. Captain Contrata été finaliste du concours Frenchweb/Azure 2014 ce qui donne accès à desressources pendant 24 mois. u

HDocs — Communicationentre l’outil de questionnaire(QDocs) et le Worker Azure

(1) http://msdn.microsoft.com/en-us/library/azure/jj149831.aspx(2) https://github.com/Azure/azure-sdk-for-ruby(3) https://github.com/OfficeDev/Open-XML-SDK(4) http://msdn.microsoft.com/fr-fr/library/office/cc471858%28v=office.15%29.aspx#BKMK_Introduction(5) http://blogs.office.com/2014/06/25/open-xml-sdk-goes-open-source/(6) http://msdn.microsoft.com/fr-fr/vstudio/roslyn.aspx(7) https://www.nuget.org(8) http://msdn.microsoft.com/fr-fr/magazine/hh547106.aspx(9) http://fr.wikipedia.org/wiki/Office_Open_XML(10) http://fr.wikipedia.org/wiki/XML_Schema(11) http://www.ecma-international.org/publications/standards/Ecma-376.htm(12) http://msdn.microsoft.com/fr-fr/library/office/gg607163%28v=office.14%29.aspx(13) http://openxmldeveloper.org(14) http://www.microsoft.com/BIZSPARK/plus/default.aspx

L’équipe technique regroupe des profilscomplémentaires :- des profils orientés mathématiques

appliquées et statistiques, pour ledatamining et le machine learning,

- des profils très techniques sur lesproblématiques big data, notamment surla gestion des infrastructures, bases dedonnées et outils.

Algorithme et machine learningAu cœur du fonctionnement de laplateforme Alkemics, nous trouvons desalgorithmes de Traitement du langage (NLP)et du Machine Learning (ML) pour traiter lesimportants volumes de données produits etutilisateurs.

L’approche est basée sur l'utilisation d'ungraphe sémantique pour représenter à lafois les produits, les utilisateurs et surtoutles relations qui les lient.

L'utilisation d'un graphe, à la fois pour lemodèle de données et son implémentationpermet d'avoir une vision très limpide desrelations. Le marketing est avant tout une

Alkemics entre algorithme et machine learningla startup alkemics propose une plateforme de normalisation etd’enrichissement des données produits aux acteurs de la grande distribution.Grâce à cette solution, l’éditeur propose des services de moteur de recherche,substitution et recommandation basés sur la forte compréhension des donnéesproduits et des interactions des utilisateurs avec ces produits.

histoire de relations, cette approche estdonc particulièrement pertinente pour lesclients.

Ce graphe est mis à disposition desmarques en tant que plateforme SaaS, lesbesoins en capacité de traitement desrequêtes évoluent donc au gré descampagnes marketing de ces utilisateurs,d'où la nécessité d'une infrastructure Cloud.

Comment ça marche ?L’infrastructure de production est unearchitecture orientée services, constituéed'une cinquantaine de composants,communiquant grâce à un broker RabbitMQet des requêtes HTTP. Cette architecturepermet beaucoup de flexibilité en termes dechoix technologiques pour l'implémentationdu back-end.

Alkemics a pu ainsi choisir et faire évoluerchacun des services indépendamment lesuns des autres pour répondre au mieux auxbesoins de développement. Cettearchitecture a l’avantage de permettred’adapter dynamiquement les ressourcespour chacun des services sollicités, pour

XII < Janvier 2015

mieux répondre aux besoins réels detraitement. C’est la flexibilité du Cloud.

La plupart des services sont historiquementécrits en Python. En effet, l'utilisation dePython donne accès à de très nombreuseslibrairies open source (ntlk, scikit-learn,scipy, numpy) pour le traitement du langagenaturel et le Machine Learning. À mesureque la plateforme évolue, les équipestechniques intègrent de plus en plus decomposants Go, pour les microservices et enScala pour interagir avec Spark.

Les APIs sont exposées en HTTP via desserveurs Web nginx ou en AMQP viaRabbitMQ. Ces services communiquent avecdes backends variés en fonction des besoins :- Couchbase pour les vues matérialisées et

le cache distribué, primordial pourconserver les performances raisonnablesalors que la volumétrie de donnéesaugmente,

- ElasticSearch pour les moteurs derecherche,

- Cassandra pour le stockage de timeseriesd'analytics, les vues matérialisées dematrices pour la recommandation, un

event store pour les événements généréssur notre plateforme et le backend destockage pour l'ensemble des informationsnormalisées d'interactions des utilisateurs.

En particulier, la brique Core est constituéeessentiellement de Titan, une base Graphedistribuée construite sur un backend destockage Cassandra et un backendd'indexation ElasticSearch. L'utilisation du graphe donne une flexibilitéextrême en termes de modèle de donnéestout en permettant des requêtesnormalisées. Pour des raisons deperformance, la R&D étudie depuis peu lapossibilité d'utiliser GraphX sur un clusterSpark+Cassandra.

Enfin, le pipeline d'analytics est constitué dejobs PIG qui sont exécutés sur un clusterHDinsight (solution Hadoop-as-a-servicedisponible sur Azure). Les donnéespréprocessées sont alors ingérées dansCassandra pour le reporting, les analytics etle datamining interactif. Cette utilisation d'un cluster hadoop-as-a-service permet de prétraiter et filtrer lesforts volumes de données reçus de manièrecomplètement scalable et en tempsconstant, sans nécessiter la maintenanced'un cluster en permanence.Quotidiennement, le cluster HDInsight estcréé et détruit. Il est utilisé environ 3h poureffectuer les traitements batch sur lesdonnées.

XIIIJanvier 2015

Ressources- Partitioning sur graphe : http://www.cs.utexas.edu/users/inderjit/public_papers/kdd_bipartite.pdf- Partitioning (papier payant) : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.8969- Mapreduce sur titan : http://s3.thinkaurelius.com/docs/titan/0.5.2/hadoop-performance-tuning.html#d0e14203- Graphx (papier) : https://amplab.cs.berkeley.edu/wp-content/uploads/2013/05/grades-graphx_with_fonts.pdf- Faire de la théorie des graphes de manière scalable sur un property graph :https://www.kent.edu/sites/default/files/TR-KSU-CS-2010-01.pdf- Recommandation de tags par graph ranking :http://www.researchgate.net/publication/221300417_Personalized_tag_recommendation_using_graph-based_ranking_on_multi-type_interrelated_objects/file/60b7d521eb53e9d537.pdf

Une fois un premier import effectué, nouspermettons aux marques d'enrichir ladonnée initiale avec les élémentsobligatoires pour les distributeurs ainsiqu'avec des informations marketing afin demieux mettre en valeur leurs produits :visuels, labels et certifications, histoire duproduit, etc...La marque peut alors déclencher le transfertde ses fiches au distributeur.

Une fois cette étape effectuée, les données brutes sont normalisées par nosalgorithmes de façon à les rendreexploitables par nos APIs. Nous transmettons alors les données brutesaux distributeurs pour alimenter leur baseproduit et utilisons les attributs normaliséspour faire fonctionner nos webservices(moteur de recherche, substitution, etc...).

u

La plateforme permet aux marques decontribuer à l'enrichissement des fiches deleurs produits sur les sites des distributeurs.Cet enrichissement servira alors à améliorerl'expérience utilisateur sur le sited'ecommerce : fiches produits détaillées(images, labels de qualité, valeursnutritionnelles, etc...), plus grandepertinence des résultats des moteurs derecherche et des recommandations.

Le processus d'échange peut êtreautomatique ou manuel selon la maturitédes systèmes d'information des marques. Par exemple, nous mettons à disposition unportail web sur lequel les marques peuventse connecter pour procéder aux échanges.Nous leur proposons alors d'importer lesdonnées déjà présentes dans leurs bases dedonnées dans les formats standards GS1d'échange de données produit.

Avec cette app mobile, Movidone mise surle marché professionnel, demandeur de cegenre de solution pour minimiser lesinvestissements matériels et pour éviter demultiplier les terminaux et les fournisseurs.

Le principe d’EasyTransac Pro est simple :l’application offre la possibilité auxcommerçants, professions libérales ;autoentrepreneurs ou associations derecevoir instantanément des paiements viaun terminal mobile comme en point devente, de manière simple, sécurisée etefficace.

La mobilité permet l’innovationLe « tout connecté » est une réalité pour lesutilisateurs et les entreprises. Et le paiementmobile se développe, pas seulement avecles technologies de type NFC. PourMovidone, le principe de l’app est simple àcomprendre : EasyTransac est au paiementce que le smartphone est à la cabinetéléphonique.

EasyTransac PRO permet aux entreprises deprofiter des avantages d’un TPE(1), sans lescontraintes que cela implique. Combinéavec les atouts du Cloud d’Azure (PCIDSScomplient et un SLA proche de 100 %),

MovidoneDu mobile, du IaaS, du code natifJeune startup strasbourgeoise, les équipes de Movidone ont eu une idée géniale :transformer en terminal de paiement son smartphone. comment ? avec une simple app :easytransac pro.

EasyTransac PRO offre à ses clients unmoyen de paiement sans fil extrêmementfiable et sécurisé.

Architecture et fonctionnementDans son fonctionnement, EasyTransac PROrepose sur trois éléments : l’hébergement, leWeb service et les applications.

XIV < Janvier 2015

L’hébergement L’hébergement choisi pour le projetEasyTransac est un hébergement de typeCloud de bas niveau selon le modèle deservice IaaS(2.) En effet, il y avait desprérequis importants en termes de sécuritéet de haute disponibilité, car nous traitonsdes transactions bancaires et il étaitimportant de maîtriser l’ensemble desapplications fonctionnant sur la machine etd’avoir une maîtrise totale du middleware(côté applicatif). Autre nécessité : quel’hébergeur soit certifié PCI DSS de niveau 1afin d’assurer un maximum de sécurité surl’ensemble de la chaîne.

Le choix s’est porté vers la plateforme deMicrosoft Azure. Movidone bénéficie depuisplus d’un an, du programme BizSpark Plus.La plateforme répond aux exigencesdéfinies : SLA(3) de 99,9 %, des datacentersrépartis partout dans le monde, du stockagegéo-redondé et est certifiée PCI DSS deniveau 1.

Pour commencer, les équipes ont créé ungroupe d’affinité afin d’optimiser les

Schéma d’architecture

Windows Phone Android iPhone

performances de l’ensemble del’infrastructure. Cela a pour conséquence de« rapprocher » physiquement les servicesassociés à ce groupe. Puis de déployerl’ensemble des ressources associées à ceprojet dans ce groupe d’affinité.

Le projet est composé de deux « CloudServices » distincts : - un « Cloud Service » Web.- un « Cloud Service » base de données.

Ces deux services ont été construits enrespectant les « bonnes pratiques » d’Azureen matière de SLA. C’est-à-dire qu’ils sont chacun composésd’au moins deux machines identiques qui setrouvent dans un « groupe de hautedisponibilité ». Cela assure qu’en cas de maintenance de laplateforme, les services associés continuentde fonctionner parfaitement sansinterruption de services.

Afin d’assurer l’équilibrage de charge,Movidone a créé pour chaque servicecritique (par exemple Apache) un point determinaison directement connecté au« Cloud Service » de la machine. Ainsi, lacharge est automatiquement partagée entreles serveurs.

Les développeurs profitent également dusystème de « sondes » d’Azure, quipermettent de vérifier la disponibilité d’unemachine au sein du « groupe de hautedisponibilité(4) » et d’agir en conséquence.L’ensemble des informations nécessairespour la bonne compréhension de ce pointest disponible sur : http://azure.microsoft.com/fr-fr/documentation/articles/virtual-machines-load-balance/

Chaque machine est également équipéed’outils de monitoring (monit, Zabbix) ainsique d’outils de sécurité.Voyons à présent de quoi est composé endétail chaque « Cloud Service » :

Le « Cloud Service » WebLe « Cloud Service Web » est composé dedeux serveurs frontaux identiques,composés de 2 cœurs et de 3,5 Go de RAM.Les ports 80 et 443 d’Apache sontloadbalancés et équipés d’une sondevérifiant la disponibilité des services.

Le « Cloud Service » de base de donnéesLe « Cloud Service de base de données » estplus complexe : il s’agit d’un cluster de basede données MariaDB (fork de MySQL). Il estcomposé de 4 machines identiques,équipées de 4 cœurs et de 7 Go de RAMchacune. Trois de ces machines sontloadbalancées sur le port défini par leservice de base de données de la mêmemanière que le « Cloud Service web », c’està dire à l’aide de sondes. Ces trois machinessont en réplication « Master/Master ». Ladernière machine est utilisée en dehors duloadbalancing afin de ne l’utiliser qu’enréplication « Slave ». Cette machine estdédiée à des tâches précises telles que dessauvegardes de la base de données, etc.

Le Web service Le cœur de la solution EasyTransac reposesur un Web service REST qui permet à uneapplication tierce d’envoyer et de recevoirdes informations. La conception logique decette application repose sur un « FrameworkMVC » codé en PHP.

XVJanvier 2015

(1) TPE : Terminal de paiement électronique(2) IaaS : Infrastructure as a service(3) SLA : Service Level Agreement(4) Groupe de haute disponibilité : couramment appelé availability set sur la plateforme Azure

Les applications Les applications mobiles sont écrites encode natif pour un souci de performance etd’optimisation (Objective-C pour iOS, Javapour Android et C# pour Windows Phone).

Ces applications utilisent et communiquentavec le Web service REST qui se trouve dans« Cloud Service » Web.

Un coût à la demandeAvec le Cloud Computing, les coûts semodulent selon les besoins et laconsommation effective. La facturationdépendra donc des services utilisés et lesressources (ressources consommées,services provisionnés). L’infrastructure pourEasyTransac Pro revient à environ979 €/mois, pour 6 instances. u

Dans le détail :Machine Nombre Prix

Standard Linux A3 4 531.90 €

Standard Linux A2 2 265.96 €

TOTAL 6 979.86 €/mois

Pour aller plus loinCalculateur de prix Azure : http://azure.microsoft.com/fr-fr/pricing/calculator/?scenario=virtual-machinesHaute disponibilité Azure : http://azure.microsoft.com/fr-fr/documentation/articles/virtual-machines-manage-availabilityMariaDB en détail :https://mariadb.com/EasyTransac : http://www.easytransac.com/