Replatforming : Migrez vos applications personnalisées vers le cloud

Grâce au replatforming, les entreprises ont la possibilité de redéployer dans le cloud la quasi-totalité de leurs applications personnalisées de moins de dix ans, quel que soit le langage de programmation. En tant que dépositaires du code source, les développeurs peuvent y rechercher et modifier les anti-patterns qui entravent le fonctionnement d'une application dans le cloud.

Quelle que soit la taille du chantier engagé, il convient dans un premier temps d'éclaircir deux points sur le replatforming :

1
D'abord, il existe différents niveaux de compatibilité au cloud, de même que 12 facteurs essentiels à intégrer dans la méthodologie applicative, comme illustré dans le tableau plus bas.
2
Ensuite, la réussite d'un redéploiement dans le cloud passe nécessairement par une stratégie adaptée pour chaque application (ou groupe d'applications similaires).

Qu'est-ce que le replatforming ?

Le replatforming d'une application consiste, à partir de la méthodologie "Twelve-Factor App", à migrer une application de sa plateforme d’origine vers le cloud où elle deviendra opérationnelle 24h/24, tout en préservant ses fonctionnalités. Souvent, le replatforming implique une phase préalable de modernisation technologique. L'objectif ? Se défaire d'un modèle à scalabilité verticale (serveurs d'applications, systèmes de gestion de bases de données relationnelles...) au profit d'une scalabilité horizontale (Datastores-as-a-Service, serveurs légers avec logiciels open source, services hébergés dans le cloud...). Si cette approche n'offre que les avantages les plus élémentaires du cloud, elle reste parfaitement suffisante pour bon nombre d’applications. En effet, toutes n'ont pas besoin d'être cloud natives.



« Grâce à [Pivotal Cloud Foundry], nous lançons nos applications beaucoup plus rapidement... Jusqu’ici, nous appliquions la vieille recette qui consiste à utiliser Chef pour toutes nos configurations. Nous montions nos propres serveurs. Avec ce système de bricole un peu poussif, il nous fallait souvent des semaines pour envoyer une fonctionnalité en production. En comparaison, PCF nous a vraiment permis de donner un coup d'accélérateur grâce à ses outils et capacités d'intégration et de déploiement continus. Aujourd'hui, l'envoi en production ne prend plus que 5 minutes... Les avantages pour notre équipe ont été décisifs. »

Philip Glebow
Directeur Architecture IT, Gap Inc/GapTech




Les avantages du replatforming

Baisse des coûts d'exploitation et d'investissement

Depuis 2004, la tendance est à l'abandon des serveurs d'applications entièrement équipés, dont les coûts de licence, d'exploitation et d'administration s'avèrent trop élevés. Aujourd'hui, la norme s'établit plutôt autour de serveurs légers pouvant être conteneurisés dans le cloud. C'est d'autant plus vrai pour Java, où Apache Tomcat s'impose maintenant depuis plusieurs années.

Portabilité et scalabilité renforcées

Par essence, la scalabilité verticale est limitée. A contrario, les plateformes cloud suivent un modèle de scalabilité horizontale : elles montent et descendent en charge en quelques secondes, le tout de manière dynamique voire automatique. Par ailleurs, les plateformes open source comme Cloud Foundry peuvent exécuter plus de 250 000 conteneurs dans un même cluster. Et pourquoi se limiter à un seul fournisseur IaaS ? Avec les plateformes de nouvelle génération, vous migrez vos applications d'un fournisseur à l'autre, ou même vers un cloud privé.

Optimisation des coûts et des ressources matérielles

La virtualisation et la conteneurisation d'applications ont pour effet d'accroître la densité du déploiement sur le matériel ou l'IaaS. Ce faisant, elles assurent une utilisation maximale des ressources, ainsi que leur décommissionnement ou leur réaffectation en cas d'inactivité.

Amélioration des licences logicielles et modèles de déploiement

Sur le terrain de la R&D, les plateformes cloud ont le vent en poupe dans quasiment toutes les grandes entreprises et organisations. À travers leur modèle d'abonnement et d'utilisation à la demande, ces plateformes viennent bousculer le statu quo des licences logicielles traditionnelles. Elles préviennent également la multiplication de solutions spécialisées, ces fameuses « point solutions » nécessaires à une exécution dans le cloud.

Productivité accrue des développeurs et contrôle renforcé

Outre des outils de développement plus simples, plus performants et plus cohérents dans tous les langages de programmation, les plateformes cloud proposent souvent des services de base préconfigurés et extensibles. Et tout le monde y gagne ! Ainsi, les développeurs peuvent provisionner eux-mêmes des environnements basés sur des contrôles d'accès et des pistes d'audit, tandis que les opérationnels IT définissent les paramètres de consommation. Enfin, les services cloud nécessaires aux développeurs peuvent être agrégés via les app stores.

Outils de gestion et de monitoring au service du DevOps

Avec leurs fonctionnalités automatisées de gestion de l'intégrité, les plateformes cloud de nouvelle génération vous offrent une vue unifiée des principaux indicateurs associés aux applications, aux services et à la plateforme. Le tout en quasi temps réel. Résultat : développeurs et opérationnels IT s'appuient sur les mêmes données de disponibilité et d'intégrité, avec à la clé une approche plus cohérente.



Les différents niveaux de maturité du Cloud-Native
Approche cloud-native
  • Architecture de microservices
  • Architecture « API-first »
Approche cloud resilient
  • Architecture résiliente et tolérante aux pannes
  • Implémentation du runtime indépendante du type de cloud
  • Indicateurs et monitoring packagés
  • Tests de défaillance proactifs
Approche cloud friendly
  • Méthodologie "Twelve-Factor App"
  • Scalabilité horizontale
  • Plateforme haute disponibilité
Approche cloud ready
  • Pas d'accès permanent aux disques
  • Application autonome
  • Ports et réseaux gérés par la plateforme
  • Services d’appui gérés par la plateforme


Le replatforming vous intéresse ?
Voici les points à retenir.

Les produits logiciels commercialisés ces dix dernières années n'ont pas été pensés pour le cloud. Point important : seul l’éditeur d'origine peut en assurer le replatforming. Par ailleurs, si la majorité des applications développées aujourd'hui sont clairement destinées à une exécution dans le cloud, toutes n'ont pas vocation à passer par la case « cloud-native ». En règle générale, plus l'application métier est critique ou déployée à grande échelle, plus une architecture cloud-native a de sens. Autrement dit, le replatforming se prête tout particulièrement aux applications non critiques, mais néanmoins créatrices de valeur. Ceci étant posé, quelle stratégie choisir ?

Pour prendre la voie de l'automatisation et du déploiement continu, les entreprises doivent revisiter leur approche logicielle dans son ensemble. Voici une série de questions qui vous aideront à déterminer la nécessité du replatforming de vos applications :

Facteurs métiers

Votre application est-elle critique pour l'entreprise ? Quel est le niveau de risque acceptable pour cette application ? Est-elle sujette à des modifications fréquentes ? Disposez-vous d'experts dans ce domaine ?

Facteurs économiques

Quel est le volume d'investissement matériel/logiciel justifiable pour votre application ? Au vu des résultats attendus, quel délai prévoir pour votre projet de replatforming ? Quelles sont les retombées attendues en termes de chiffre d'affaires ? D'économies ?

Facteurs techniques

Le codebase est-il adapté ou présente-t-il trop d'entorses à la méthodologie Twelve Factor App ? Le framework et le runtime sont-ils adaptés ? De quel type de workload s'agit-il ?

Changement organisationnel

Votre entreprise est-elle prête à éliminer les silos opérationnels et à constituer des équipes autonomes pour la création et l'exécution des services ? Votre stratégie de gestion du changement peut-elle tolérer un pipeline de déploiement avec peu, voire aucune, intervention humaine ?

Le passage au Cloud-Native implique de respecter la plupart (sinon la totalité) des principes de la méthodologie Twelve factor App. De son côté, le replatforming présente certes moins d'avantages, mais s'avère aussi bien moins complexe. Le tableau ci-dessous vous présente les différences majeures qui existent entre les applications traditionnelles et les applications redéployées sur une plateforme cloud.



Applications redéployées dans le cloud (replatforming) vs. applications traditionnelles
Replatforming
Applications Métiers Traditionnelles
Scalabilité automatique. L’automatisation à grande échelle permet d'appliquer un ensemble de règles cohérentes à des environnements et déploiements de toutes tailles. Résultat : vous éliminez les interruptions de service liées aux erreurs humaines. Scalabilité manuelle. Une infrastructure manuelle repose sur des opérateurs humains qui définissent et gèrent les configurations serveurs, réseau et stockage.
Capacités sur mesure. Les ressources sont allouées de façon dynamique selon les besoins de l'application. Capacités surdimensionnées. Pour chaque application, l’approche informatique traditionnelle consiste à concevoir une solution d’infrastructure dédiée et sur mesure (on parle de « snowflakes » en anglais), ce qui allonge les délais de déploiement. Résultat : l’infrastructure est dimensionnée en fonction des estimations de pics de charge, ce qui la laisse le plus souvent en surcapacité sans pour autant pouvoir évoluer au-delà du seuil maximal défini.
Sécurité renforcée. Vous appliquez des correctifs au niveau de l’application, du runtime, du système de fichiers et du système d’exploitation sans aucune interruption. Les rollbacks s'effectuent de manière simple et rapide. Arrêts programmés. L’application de correctifs nécessite une certaine coordination et des arrêts programmés, souvent en dehors des heures de bureau. Défaire les modifications apportées peut vite tourner au casse-tête.
Infrastructure inaltérable. Les multiples environnements sont construits sur la base d’un modèle identique et non modifiable, ce qui réduit considérablement les disparités et, partant, les défaillances applicatives. Environnements uniques. Compte tenu des niveaux de complexité, les opérateurs mettent énormément de temps à diagnostiquer les problèmes et peinent à faire évoluer leurs environnements à grande échelle. Les solutions d’automatisation créées manuellement risquent de coder en dur les erreurs humaines dans l’infrastructure.
Gestion assurée par le conteneur. Les applications des conteneurs Docker, RunC et Garden Linux sont entièrement gérées par BOSH (outil inspiré de Google) et PCF Elastic Runtime, ce dernier pouvant exécuter plus de 250 000 conteneurs par instance. Par ailleurs, les défaillances s'autoréparent aux niveaux des instances, des processus, des machines virtuelles et des zones de disponibilité. Système d'exploitation local. Les applications sont soit virtualisées, soit directement exécutées sur le système d'exploitation du matériel. Partant du principe qu’ils sont « avec état », les serveurs sont aussi censés conserver leur configuration. Généralement, la haute disponibilité n'est assurée qu'au niveau du runtime de l'application.
DNS, ports, routage et scalabilité automatiques. Vos équipes peuvent tirer un trait sur les tâches de microgestion. C'est le fournisseur cloud qui gère l’allocation des ports, le routage, les montées en charge, etc. Configuration manuelle. DNS, routage, montées en charge, affectation des ports… l'ensemble des configurations s’opèrent manuellement.


Pivotal et le replatforming

Chez Pivotal, nous aidons les entreprises à planifier et exécuter le replatforming de leurs applications. Nous pouvons même nous charger de l’exploitation des applications sur la plateforme cloud. Des start-up les plus récentes aux acteurs internationaux les plus établis, les entreprises de toutes tailles et de tous secteurs font confiance aux logiciels, aux services et à l’expertise de Pivotal pour les guider sur la voie du cloud : avant, pendant et après leurs déploiements.

Collaborez avec Pivotal pour identifier les applications dont le replatforming apportera une réelle valeur ajoutée à votre entreprise.

Capitalisez sur l'approche Pivotal Labs et les méthodologies agiles pour mener des sprints itératifs porteurs de résultats en seulement 10 semaines (contre plusieurs mois avec l’approche traditionnelle).

Basez-vous sur la méthodologie Twelve Factor App pour identifier les facteurs indispensables à un redéploiement de vos applications dans le cloud.

Faites équipe avec Pivotal pour identifier les « jointures » de votre approche monolithique. Vous pourrez ensuite les extraire et procéder à une migration incrémentielle, sans interrompre vos activités créatrices de valeur.

Déployez et gérez vos applications avec Pivotal Cloud Foundry – la plateforme cloud-native qui accélère votre retour sur investissement.



Les moments Pivotal
Un assureur américain reconnu a misé sur Pivotal pour le replatforming et le refactoring de 10 applications de complexité variable. Résultat : mission accomplie en 10 semaines ! L'entreprise a également choisi d’introduire des tests automatisés pour revoir à la hausse la qualité de ses applications.
Un acteur incontournable de la santé a choisi d'abandonner le serveur d'applications JBoss pour se tourner vers des applications conteneurisées à douze facteurs, sur fond de migration vers Spring Boot et Spring Cloud Config Server. Grâce à une approche Blue-Green Deployment, l'entreprise s’est libérée du fardeau de la configuration des serveurs d'applications. Elle profite de configurations dynamiques, garantes d'une scalabilité renforcée et d'une disponibilité 24h/7j, le tout en respectant environ 50 % des 12 facteurs.
Une compagnie d'assurance a elle aussi migré depuis JBoss et opté pour le replatforming de 8 à 12 applications de base. Parmi ses objectifs, ses équipes devaient apprendre par elles-mêmes à opérer leur propre replatforming, puis leur refactoring. Elles ont ainsi pu créer des guides internes et partager les enseignements tirés de cette expérience.



Pivotal Cloud Foundry
Profitez de déploiements en self-service entièrement automatisés


Spring
Accelerates cloud-native Java application development


Pivotal Labs
Réinventez votre approche du développement logiciel


Envie d'en savoir plus sur le Replatforming ?

Afficher toutes les ressources

Lancez-vous dans le Replatforming
Webinar – Briser le monolithe

Visionner

Logiciels gratuits pour le développement de votre nouvelle plateforme cloud-native

Pour commencer

Conférence SpringOne Platform : Développez des applications que les utilisateurs vont adorer

En savoir plus