TRANSFORM'IT
MENU

Elles sont désormais partout, dans les interstices de notre quotidien, pour des usages aussi bien personnels que professionnels. Elles ? Ce sont les applications de nouvelle génération, celles qui animent nos smartphones, nos tablettes et même nos objets connectés. Des applications qui ont toutes un point commun : elles sont développées, testées et déployées dans des délais record en appliquant la méthode agile à une grande partie de leur cycle de vie (du développement à l’exploitation pour certaines).

Autrement dit, ces applications sont l’incarnation même du fameux modèle DevOps qui figure aujourd’hui en bonne place dans la boîte à outils de la transformation digitale. Un modèle qui cependant ne serait qu’une louable intention s’il ne pouvait s’adosser à des architectures elles aussi imaginées pour l’itération continue.

Des apps très exigeantes

A quelles exigences doivent répondre ces architectures pour simplifier et accélérer le développement continu des applications ? A minima, disons :

  • Supporter un nombre important d’utilisateurs
  • Garantir une montée en charge simple et automatique,
    par exemple pour accueillir les nouveaux utilisateurs générés par une campagne promotionnelle ou un lancement produit
  • Limiter l’impact d’un dysfonctionnement d’un service de l’application
  • Etre portable pour fonctionner sur différents environnements
  • Réduire les opérations de déploiement et de maintenance,
    grâce au code (API, Infrastructure as Code…)

applications

En résumé, ces architectures sont aussi, quête d’élasticité oblige, des infrastructures. Voilà pourquoi les architectures de micro-services ou encore les solutions de contenairisation sont autant plébiscitées. Ce sont les GAFAs qui, partant d’une page blanche, ont montré la voie et partagent désormais leurs expériences mais aussi leurs logiciels via la communauté open source pour une partie d’entre eux. Que trouve-t-on dans les coulisses technologiques de ces grands acteurs ?

  • Des infrastructures virtualisées et automatisées,
    pour assurer l’agilité des applications, de leur développement et de leur déploiement en continu
  • Des containers,
    pour faire fonctionner de multiples instances de micro-services sans alourdir ou complexifier l’ensemble
  • Un stockage (persistant) des données qui peut prendre différentes formes :
    • Le stockage objet, popularisé par l’offre S3 d’Amazon, est un système simple d’utilisation qui s’intègre facilement dans les applications via les API
    • Les bases de données NoSQL plus adaptées aux besoins de scalabilité et de disponibilité des applications web (MongoDB, Cassandra, etc.)
  • Des infrastructures ouvertes via des APIs

L’ensemble dessine ce que VMWARE appelle une « Cloud Native App ». C’est à dire une application dont l’architecture et les technologies offrent une grande agilité et rapidité en terme d’évolution et de déploiement sur des infrastructures cloud (privé, public, hybride).


Les architectures de micro-services

Ces architectures permettent de passer d’un modèle monolithique (l’application 1.0/2.0) vers un modèle faisant appel à plusieurs services indépendants et collaboratifs. Avec elles :

  • La modification d’un service ne nécessite pas de modifier le code complet de l’application
  • L’application d’une mise à jour ou la correction est moins impactante
  • Chaque composant peut scaler indépendamment de l’application et des autres services

Prenons un exemple concret, celui d’une application mobile pour commercialiser des articles d’occasion. Nous pourrions y retrouver :

  • L’application mobile qui fonctionne sur un smartphone
  • L’application back-end hébergée dans votre cloud avec plusieurs services :
    • Le service de login des utilisateurs,
      assuré par plusieurs instances d’une base de données NoSQL encryptée
    • Le service de description des produits mis en vente enregistrés…
      • dans une base de données NoSQL via 2 instances hébergées sur 2 sites différents assurant chacune la résilience des données
      • avec un stockage objet pour les photos
    • Le service de collecte de logs de l’application

L’un des avantages de ces nouvelles architectures est de pouvoir utiliser des infrastructures matérielles simples, dites de « commodité » (serveur, réseau, etc.) et des logiciels open source pour faire fonctionner ces applications. Avec à la clé, des plateformes moins spécialisées, moins coûteuses et réutilisables.

applications

Des infrastructures de commodité sans limite ?

Bien sûr, des infrastructures traditionnelles pourraient être utilisées pour ces nouvelles générations d’applications. Mais, dans la pratique, leur très haute disponibilité est toute relative face à des applications qui reposent sur des architectures optimisées pour le Cloud. De même pour leur capacité d’automatisation qui paraît désormais limitée face à des architectures qui intègrent dans leur code, des services de déploiement automatisé, de scalabilité (horizontale) et de résilience.

Faut-il pour autant s’en tenir à des infrastructures basées sur des serveurs standards (comme chez Facebook) et à du logiciel open source gratuit comme une distribution Openstack ? Sans doute pour débuter des expériences et monter un lab. Mais pour répondre aux exigences d’environnement de production fortement industrialisés ? Pas si sûr… La qualification et la maintenance de matrices de compatibilité entre les différents matériels et logiciels, la gestion de multiples supports (constructeurs, éditeurs) tout comme les montées en compétences requises gommeront très vite les économies réalisées sur les serveurs de commodité et les logiciels associés.

Une troisième voie s’affirme

Voilà pourquoi des start-up et des acteurs leaders comme EMC ont investi pour réunir le meilleur des deux mondes : proposer des solutions complètes, industrialisées, supportées mais aussi ouvertes et pensées pour soutenir au mieux les nouvelles architectures.

Chez EMC, ces innovations se matérialisent à travers plusieurs solutions :

  • Les systèmes hyperconvergés VxRack
    Scalables aisément (via l’ajout de nœuds) et entièrement automatisés, ils se prêtent au déploiement d’un cloud privé extensible au cloud public pour faire du débordement ou assurer la résilience d’applications au-delà de son propre datacenter.
  • La plateforme de stockage objet ECS (Elastic Cloud Storage)
    Avec elle, les développeurs tirent parti de la puissance des API tandis que les services profitent de coûts réduits, même par rapport aux offres de cloud public.
  • Des appliances hyperconvergées de Cloud Openstack et de PaaS avec le projet Caspian
  • Une intégration avec les solutions de cloud public (AWS, Google, Azure, vCloud Air, VirtuStream)

Et d’autres surprises à venir…

Ces solutions présentent un point commun : leur valeur ajoutée ne réside pas dans l’utilisation de stockage flash, de réseau 10 Gigabit ou d’un nouvel hyperviseur mais dans leur exploitabilité globale.

Avec elles, des systèmes complets peuvent être déployés en quelques jours ou semaines. Les opérations sont automatisables pour soutenir des cycles complets de déploiements (nouvelle release, tests unitaires, Q/A, etc) plusieurs fois par heure. Leur ouverture via les APIs facilite le travail des développeurs comme leur intégration avec des ressources tierces (notamment celles du cloud public). Ces plateformes apportent aux nouvelles applications l’environnement qui va leur permettre de grandir vite. Et bien.



Mathieu Fauvet

Mathieu travaille depuis 2011 chez EMC. Consultant avant-ventes pour des enterprises grands-comptes, il intervient en phase amont des projets afin de les conseiller dans leurs choix et orientations technologiques. Il s’est forgé une solide expérience auprès de la SSII ARES, puis chez l’intégrateur SCC, où il a développé ses talents sur des solutions Citrix, VMware, EMC, Netapp et Cisco UCS. Mathieu est certifié VMware VCP, EMC Cloud Architect. Il s’est spécialisé sur les offres ORACLE, Cloud et DevOps.

COMMENTAIRES