L’évolution des attentes clients oblige les entreprise à gagner en souplesse et flexibilité et par conséquent, à adapter rapidement leurs processus. Comment imaginer aujourd’hui une application qui traite des données en volume sans parler de ses capacités à se dimensionner via le Cloud ? Migrer sur le cloud, n’est donc plus, a priori, une question !

Il est cependant essentiel d’identifier au préalable les raisons qui vous poussent vers la migration et de les rapprocher de l’impact métier visé comme, par exemple, la rapidité d’implémentation ou encore les délais de mise en œuvre. Si la charge financière est un argument, c’est la modernisation des applications existantes et la création de la future génération d’applications qui doivent prévaloir pour permettre à la migration d’ajouter de la valeur métier.

Dans cet article, nous verrons :

  1. Pourquoi migrer son application existante dans le Cloud ?
  2. Vers quelle solution Cloud s’orienter ?
  3. Comment migrer son application vers le Cloud ?
  4. Audit de migration vers le Cloud : l’application est-elle Cloud Ready ?

1) Pourquoi migrer son application existante dans le cloud ?

De plus en plus d’entreprises considèrent la migration de leurs applications existantes dans le cloud comme faisant partie intégrante de leur stratégie de transformation digitale. Les objectifs peuvent être multiples : accroitre leur flexibilité, maitriser leurs coûts, améliorer leurs performances et sécuriser leurs données. Il est vrai que le Cloud présente plusieurs avantages, que nous listons ci-dessous :

1. Gain d’exploitation :

C’est le fournisseur Cloud qui assure l’exploitation de l’infrastructure physique selon le modèle choisi.

En Iaas (Infrastructure as a Service), le gain se trouve au niveau de la maintenance du matériel. Le fournisseur de service Cloud prend en charge la redondance des disques durs, le remplacement d’un commutateur réseau, etc… Mais la maintenance du système d’exploitation reste à la charge du client.

En PaaS (Platform as a Service), le gain augmente et la maintenance du système d’exploitation n’est plus à la charge du client. Ce dernier gère uniquement ses applications et ses données métier.

Ces gains en termes de charge d’exploitation permettent de se concentrer sur qui est vraiment important, apporter de la valeur à ses propres clients.

Cela permet également la montée en compétence des collaborateurs sur des tâches ayant une plus forte valeur ajoutée, comme la mise en œuvre de déploiement d’environnements avec une approche Infrastructure As Code, puis de conserver et embaucher de nouveaux talents.

2. Dimensionnement :

La migration d’une application vers le Cloud autorise un dimensionnement au plus près de son besoin : le client paye pour ce qu’il consomme.

Cela permet de gérer les montées en charge progressives sur le long terme comme les ‘pics’ sur des périodes temporaires. Comme par exemple, un site eCommerce qui peut connaître des pics d’accès pendant les périodes de solde ou pendant les fêtes de fin d’année. Avec le cloud il est possible d’accroitre temporairement les capacités d’une application puis de revenir à un niveau habituel, à la demande ou de manière automatisée.

Outre cette mise à l’échelle (scalabilité), le Cloud permet d’avoir une visibilité sur les coûts qu’il est difficile de calculer lorsque l’infrastructure est gérée en interne (On Premise).

Il faut prendre en compte les heures des collaborateurs, imputer le coût de la bande passante, de l’électricité, les différentes licences logicielles mais pas totalement, … Les responsables informatiques apprécieront la maîtrise des coûts que permet le Cloud.

De plus, l’offre de services pléthorique du Cloud permet de tester facilement des technologies qui peuvent être assez difficiles à mettre en œuvre en interne. Comme par exemple un cluster Kubernetes pour gérer des containers de microservices ou alors la création d’une machine virtuelle pour tester un logiciel sans compromettre des postes de travail sécurisés.

La flexibilité du Cloud permet d’ailleurs de bénéficier de nouveaux services ou d’obtenir de nouvelles ressources en temps réel. Cela ouvre la porte à des capacité de dimensionnement qu’il est rarement possible d’atteindre avec son propre Datacenter.

3. Redondance simplifiée :

Une application sur le Cloud vous simplifie grandement la gestion de la redondance : un aspect crucial pour assurer la pérennité de vos données en cas de problème.

4. Sécurité des données :

Les fournisseurs Cloud permettent, sans exception, un premier niveau de sécurité des données qui est matériel. Les disques durs sont doublés voire même triplés et il est également possible de demander la réplication des données dans des datacenter distant de plusieurs centaines de kilomètres en cas de problèmes majeurs comme un tremblement de terre ou un raz de marée.

Ensuite, les fournisseurs Cloud prennent la sécurité des données très au sérieux et sont équipés pour faire face aux différentes menaces. Les données, logiciels y sont souvent plus en sécurité que dans des datacenters traditionnels par défaut. Il s’agit pourtant d’un des freins à l’adoption les plus importants.

Ainsi, les données sont cryptées, pendant leur transfert (in motion) et lors de leur stockage (at rest). De plus, tous les fournisseurs Cloud sont conformes RGPD, certains sont certifiés hébergeurs de données de santé, hébergeur de données gouvernementales, …

Cela étant dit, comme pour un datacenter traditionnel, il faut suivre les bonnes pratiques de sécurité fournies par le fournisseur Cloud. Tel que mettre en place des firewalls, configurer des réseaux virtuels, donner les bons droits d’accès aux collaborateurs, ajouter un WAF à une application web.

5. Exposition sur Internet

Lorsqu’une application est utilisée par des personnes extérieures à la société, qu’il s’agisse de clients ou de partenaires, ou lorsque les collaborateurs sont éparpillés, il est nécessaire de donner accès à ses services sur Internet. Même si cela rend la protection de l’application et des données et la gestion des accès plus ardues.

6. Automatiser la gestion

Une plateforme de gestion du Cloud incite particulièrement à automatiser de nombreuses tâches chronophages pour les équipes IT en mettant en place des règles d’automatisation de certains processus.

7. Donner la priorité au client

Donnez la priorité aux applications destinées aux clients et utilisateurs finaux, plutôt qu’aux outils de back-office. Pourquoi pas une stratégie hybride avec l’externalisation de l’applicatif et le maintien sur site de la base de données clients ? De notre expérience du terrain, les solutions optimales sont souvent des combinaisons astucieuses de différents choix plutôt qu’une vision dogmatique unique.

8. Moderniser les applications métier

Toutes les entreprises ont leur lot d’applications métiers dites ‘Legacy’. Le passage de ces applications dans le Cloud est une formidable opportunité d’améliorer les performances ou d’ajouter des fonctionnalités importantes et de réduire la dette technique, y compris en supprimant des pans fonctionnels qui ne sont plus adaptés au contexte actuel.

2) Vers quelle solution Cloud s’orienter ?

Solutions Cloud et Briques As A Service (AAS)

Lorsque l’on évoque une migration Cloud de manière générale, on regroupe en fait plusieurs solutions Cloud. Chacune dispose de caractéristiques différentes, avec ses avantages comme ses inconvénients. Les différentes briques AAS (As A Service) permettent de choisir le niveau d’intégration désiré et donc la granularité la portabilité ou encore l’architecture de l’application.

Le plus souvent on évoque les solutions :

  • Iaas (Infrastructure-as-a-Service) : le premier niveau d’architecture Cloud qui permet d’externaliser l’infrastructure (donc l’installation de serveurs, du réseau ou encore le Stockage) et implique notamment de passer de VM (Machines virtuelles) ou machines physiques vers des VM Cloud.
  • Paas (Platform-as-a-Service) : permet de disposer de machines préconfigurées avec les OS ou encore des applications Middleware tels que des Bases de Données ou des serveurs Webune Cette solution cible peut prendre la forme d’une migration partielle ou totale. Elle va plus loin que l’IaaS car au-delà de l’infrastructure, c’est bien l’environnement du logiciel (développement et déploiement ) qui sera maintenu dans le Cloud.
  • Saas (Software-as-a-Service) : quant à lui pousse le concept encore plus loin en mettant à disposition des briques logicielles payables à l’usage

De plus en plus, on évoque également des solutions :

  • CaaS (Container-as-a-Service) : une solution qui permettra potentiellement de s’affranchir des contraintes liées aux différents cloud et de s’assurer d’une portabilité simplifiée. La virtualisation se fait donc au niveau des conteneurs qui composent le logiciel qu’il est possible de déployer, seul ou en groupe, sur le Cloud. Une application conteneurisée à toute sa place dans un environnement virtualisé, qui permet notamment une gestion et un contrôle des conteneurs facilité.
  • Faas (Function-as-a-Service) : une solution Cloud qu’on associe avec le Serverless. Concept nouveau qui permet à l’utilisateur de développer et gérer ses logiciels sans avoir besoin de maintenir une infrastructure. Il permet de s’affranchir des notions d’hébergement même s’il a l’inconvénient d’être fortement couplé au Cloud utilisé.
  • Daas (Data-as-a-Service) : le cloud agit comme un dépôt de donnée auquel l’utilisateur peut accéder lorsqu’il le demande.

Il arrive également de mettre en place des solutions hybrides lorsqu’il n’est pas possible d’appliquer la solution cible à l’ensemble d’un logiciel ou, tout simplement, lorsqu’on ne le souhaite pas (volonté de ne pas tout migrer dans le cloud, pour garder la maîtrise des données sensibles ou encore pour profiter des avantages des différents cloud, etc.)

Lors d’une migration d’une application existante dans le Cloud, c’est l’analyse du logiciel existant, des objectifs de l’entreprise et de ses contraintes qui permettront de déterminer la solution cible la plus adaptée.

Toutes les applications sont portables sur le cloud mais pas toutes de la même façon

La majorité des applications sont portables sur le Cloud, l’architecture initiale de l’application, les buts visés ainsi que les efforts consentis détermineront quels types d’usage du Cloud pourra être visé. Si on prend l’exemple d’une application NTiers Client serveur hébergé aujourd’hui sur IIS sur un SQL server avec une base de données SQL Server on pourra effectuer un portage simple sur du IAAS en recréant les environnements OnPremise quasiment à l’identique. On pourra potentiellement y intégrer certaines fonctionnalités en PAAS telles que les bases de données voir même mixer les différentes briques pour se construire un système sur mesure. Pour profiter au mieux des différentes fonctionnalités offertes par le Cloud on peut envisager une refonte logicielle en fonction des buts à atteindre. – Ange Guyader

3) Comment migrer son application vers le Cloud ?

Stratégies de migration vers le Cloud

La migration d’applications nécessite des outils, des ressources, et du temps. Pour chaque migration, il faut prendre en compte les motivations, le Re-factoring éventuel, la complexité mais aussi le niveau de priorité par rapport aux objectifs.

Il y a principalement trois méthodes de migration d’une application vers le Cloud. Elles se distinguent par leur complexité mais également par leur degré d’adaptation aux Cloud et leur capacité à en tirer parti.

Rehosting:

Appelée également ‘Lift-and-Shift’ car elle s’apparente plus ou moins à un copier-coller des VMs hébergeant l’application vers le Cloud. L’opération ne nécessite en effet aucune modification de celle-ci. Cette stratégie est la plus simple, la plus rapide et peut être automatisable grâce à de nombreux outils sur le marché. Elle intervient surtout dans un contexte où l’on souhaite réduire ses coûts sans forcément tirer pleinement parti des avantages du Cloud car celle-ci ne sera pas optimisée en conséquence. Attention, l’apparente simplicité de cette méthode n’exclut pas les échecs car la reconfiguration des VMs vers le Cloud peut soulever quelques problématique lors de son redémarrage. Cette migration fait appel à des compétences infrastructure.

Replatforming :

Cette méthode consiste à optimiser l’application au niveau de la couche système avant d’opérer la migration vers le Cloud. L’architecture de l’application reste quant à elle inchangée. Ces modifications ‘mineures’ permettent de tirer davantage parti des bénéfices apportés par le Cloud (automatisation, dimensionnement, réduction des coûts, etc.). Cette stratégie est nécessaire, lorsque l’on souhaite migrer sans trop d’efforts mais que l’application ne fonctionnerait pas sans ces modifications. Cela peut être le cas lorsque l’environnement système actuel n’est pas disponible dans le Cloud.

Refactoring :

Sans doute la stratégie de migration d’applications vers le Cloud la plus longue et la plus complexe mais certainement celle qui permet de tirer le mieux parti du Cloud. Il s’agit en effet de transformer l’application afin d’adapter son architecture au Cloud. Cette méthode permet de bénéficier de nouvelles fonctionnalités disponibles dans le Cloud mais également d’améliorer son agilité et ses performances.

Nous avons donc détaillé trois stratégies de migration Cloud. Nous pouvons également en évoquer rapidement trois autres qui permettent de compléter la liste des ‘6R’ que l’on rencontre dans de nombreux articles. Il ne s’agit cependant pas de réelle migration d’une application existante vers le Cloud :

– Repurcharsing : consiste à remplacer sa solution existante et d’adopter une solution SaaS

– Retire : consiste à se délester de l’application car celle-ci n’est plus utilisée

– Retain : consiste à rester dans la situation actuelle (ne rien faire) pour différentes raisons (application non prioritaire, effort jugé trop important pour l’application concernée, etc.).

L’architecture Cloud : un point central de la migration

Migrer son application dans le Cloud n’est pas chose aisée et cela ne peut se faire avec un principe de copier/coller.

L’architecture logicielle est au centre des préoccupations lors de cette migration. Pourquoi ?

Tout d’abord, car, comme vu précédemment, elle peut conditionner la transition vers le Cloud.

Ensuite, car une architecture non adaptée aux enjeux du Cloud peut compromettre son bon fonctionnement, son interopérabilité avec le reste du système d’information et la sécurisation des différents flux de données.

Pour éviter cela, il est nécessaire d’opérer des changements d’architecture applicative. SoftFluent peut vous conseiller dans la définition del’architecture Cloud de votre application et vous accompagner dans la migration vers le Cloud.

DevOps, une aide lors de la migration vers le Cloud

Cloud et DevOps partagent des objectifs communs : flexibilité, réactivité, automatisation, sécurité. Et nécessitent souvent des entreprises un même état d’esprit, une même volonté de s’ancrer dans la transformation numérique.

A ce titre, on remarque une relation gagnant-gagnant entre le DevOps et le Cloud. Le DevOps facile la gestion d’application hébergées dans le Cloud (par exemple, grâce à une réactivité accrue de la part des équipes) mais également la migration d’application dans le Cloud. Pourquoi ? Notamment car cette démarche permet de traiter, plus sereinement, des projets complexes de ce type.

Inversement, puisqu’ils s’agit de deux transformations majeures de l’entreprise, un projet de migration vers le Cloud peut représenter une bonne opportunité pour mettre en place de nouveaux processus au sein des équipes IT, telle une démarche DevOps.

4) Audit de Migration vers le Cloud : l’application est-elle Cloud Ready ?

Une fois la décision prise d’aller dans le Cloud, il est nécessaire de se poser la question de la faisabilité du projet. En d’autres termes, l’application est-elle Cloud Ready ou pas ?

Pour répondre à cette question, il est nécessaire de passer par un audit de pré-migration. Cette analyse exhaustive cherche à mettre en avant tous les composants et paramètres de l’application concernée qui vont permettre ou compromettre la migration dans le Cloud. Elle se conclue par la prise de décision sur la réalisation du projet et l’élaboration d’un plan de migration.

Que regarde-t-on ?

L’architecture logicielle dont les briques technologiques utilisées

Les flux réseaux internes (interne au Datacenter) et externe (utilisation de services Saas externes par exemple)

Les sources de données métier ou de référence

Les utilisateurs : de quels types, où sont-ils ?

Les modes d’authentification et de gestion des droits

Les résultats de l’audit permettent de déterminer si

L’application peut être migrée dans le Cloud et à quel niveau (PaaS ? IaaS ?) pour chacun de ses sous-systèmes

L’application ne peut être migrée dans le Cloud

L’application peut être migrée partiellement dans le Cloud.

Si cette dernière option ressort de l’analyse, celle-ci va plus loin et permet de répondre à d’autres questions :

Quelle partie de l’application peut être migrée ?

Quels impacts pour le reste de l’application et sur l’infrastructure du(des) Datacenter(s) existant(s)?

Quels sont les différents freins à la migration complète ?

Quels changements opérer ?

Est-ce que l’application est déployable automatiquement (DevOps) ?

Doit-on faire monter des collaborateurs en compétence ou faire appel à une société de services ?