Movidone Du mobile, du IaaS, du code natif

Jeune 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.

Avec cette app mobile, Movidone mise sur le marché professionnel, demandeur de ce genre de solution pour minimiser les investissements matériels et pour éviter de multiplier les terminaux et les fournisseurs. Le principe d’EasyTransac Pro est simple : l’application offre la possibilité aux commerçants, professions libérales ; autoentrepreneurs ou associations de recevoir instantanément des paiements via un terminal mobile comme en point de vente, de manière simple, sécurisée et efficace.

La mobilité permet l’innovation

Le « tout connecté » est une réalité pour les utilisateurs et les entreprises. Et le paiement mobile se développe, pas seulement avec les technologies de type NFC. Pour Movidone, le principe de l’app est simple à comprendre : EasyTransac est au paiement ce que le smartphone est à la cabine téléphonique. EasyTransac PRO permet aux entreprises de profiter des avantages d’un TPE(1), sans les contraintes que cela implique. Combiné avec les atouts du Cloud d’Azure (PCIDSS complient et un SLA proche de 100 %), EasyTransac PRO offre à ses clients un moyen de paiement sans fil extrêmement fiable et sécurisé.

Architecture et fonctionnement

Dans son fonctionnement, EasyTransac PRO repose sur trois éléments : l’hébergement, le Web service et les applications.

L’hébergement

L’hébergement choisi pour le projet EasyTransac est un hébergement de type Cloud de bas niveau selon le modèle de service IaaS(2.) En effet, il y avait des prérequis importants en termes de sécurité et de haute disponibilité, car nous traitons des transactions bancaires et il était important de maîtriser l’ensemble des applications fonctionnant sur la machine et d’avoir une maîtrise totale du middleware (côté applicatif). Autre nécessité : que l’hébergeur soit certifié PCI DSS de niveau 1 afin d’assurer un maximum de sécurité sur l’ensemble de la chaîne. Le choix s’est porté vers la plateforme de Microsoft Azure. Movidone bénéficie depuis plus d’un an, du programme BizSpark Plus. La plateforme répond aux exigences définies : SLA(3) de 99,9 %, des datacenters répartis partout dans le monde, du stockage géo-redondé et est certifiée PCI DSS de niveau 1. Pour commencer, les équipes ont créé un groupe d’affinité afin d’optimiser les performances de l’ensemble de l’infrastructure. Cela a pour conséquence de « rapprocher » physiquement les services associés à ce groupe. Puis de déployer l’ensemble des ressources associées à ce projet dans ce groupe d’affinité.

Le projet est composé de deux « Cloud Services » distincts :

  • un « Cloud Service » Web.
  • un « Cloud Service » base de données.

Ces deux services ont été construits en respectant les « bonnes pratiques » d’Azure en matière de SLA. C’est-à-dire qu’ils sont chacun composés d’au moins deux machines identiques qui se trouvent dans un « groupe de haute disponibilité ». Cela assure qu’en cas de maintenance de la plateforme, les services associés continuent de fonctionner parfaitement sans interruption de services. Afin d’assurer l’équilibrage de charge, Movidone a créé pour chaque service critique (par exemple Apache) un point de terminaison directement connecté au « Cloud Service » de la machine. Ainsi, la charge est automatiquement partagée entre les serveurs. Les développeurs profitent également du système de « sondes » d’Azure, qui permettent de vérifier la disponibilité d’une machine au sein du « groupe de haute disponibilité(4) » et d’agir en conséquence. L’ensemble des informations nécessaires pour la bonne compréhension de ce point est disponible sur : http://azure.microsoft.com/fr-fr/documentation/articles/virtual-machines-load-balance/

Chaque machine est également équipée d’outils de monitoring (monit, Zabbix) ainsi que d’outils de sécurité. Voyons à présent de quoi est composé en détail chaque « Cloud Service ».

Le « Cloud Service » Web

Le « Cloud Service Web » est composé de deux serveurs frontaux identiques, composés de 2 coeurs et de 3,5 Go de RAM. Les ports 80 et 443 d’Apache sont loadbalancés et équipés d’une sonde vérifiant la disponibilité des services.

Le « Cloud Service » de base de données

Le « Cloud Service de base de données » est plus complexe : il s’agit d’un cluster de base de données MariaDB (fork de MySQL). Il est composé de 4 machines identiques, équipées de 4 coeurs et de 7 Go de RAM chacune. Trois de ces machines sont loadbalancées sur le port défini par le service de base de données de la même manière que le « Cloud Service web », c’est à dire à l’aide de sondes. Ces trois machines sont en réplication « Master/Master ». La dernière machine est utilisée en dehors du loadbalancing afin de ne l’utiliser qu’en réplication « Slave ». Cette machine est dédiée à des tâches précises telles que des sauvegardes de la base de données, etc.

Le Web service

Le coeur de la solution EasyTransac repose sur un Web service REST qui permet à une application tierce d’envoyer et de recevoir des informations. La conception logique de cette application repose sur un « Framework MVC » codé en PHP.

Les applications

Les applications mobiles sont écrites en code natif pour un souci de performance et d’optimisation (Objective-C pour iOS, Java pour Android et C# pour Windows Phone). Ces applications utilisent et communiquent avec le Web service REST qui se trouve dans « Cloud Service » Web.

Un coût à la demande

Avec le Cloud Computing, les coûts se modulent selon les besoins et la consommation effective. La facturation dépendra donc des services utilisés et les ressources (ressources consommées, services provisionnés). L’infrastructure pour EasyTransac Pro revient à environ 979 €/mois, pour 6 instances.

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 loin

Calculateur de prix Azure :
http://azure.microsoft.com/fr-fr/pricing/calculator/?scenario=virtual-machines

Haute disponibilité Azure :
http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/

MariaDB en détail :
https://mariadb.com/

EasyTransac :
http://www.easytransac.com/

Notes
(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

Découvrez d’autres retours d’expériences techniques et tout ce que vous pouvez faire dans le cloud Azure grâce à des projets innovants

Découvrez toute l’offre Microsoft Azure et bénéficiez d’un mois offert à hauteur de 115 euros (sans engagement)

Startups ! Rejoignez gratuitement Bizspark et bénéficiez de 4 175€ de crédit Microsoft Azure

La Pépinière Microsoft Azure : Une équipe Microsoft pour vous accompagner dans votre projet cloud et mettre à votre disposition de l’aide personnalisée et gratuite