Développement cloud: 9 astuces à connaître avant de vous lancer

Le développement et les tests d'applications dans le cloud gagnent en popularité, alors que de plus en plus d'entreprises lancent des initiatives de cloud computing publiques et privées. Le développement cloud comprend généralement des environnements de développement intégrés, des composants de gestion du cycle de vie des applications (tels que la gestion des tests et de la qualité, le code source et la gestion de la configuration, des outils de livraison continue) et des composants de test de sécurité des applications.

Bien que les responsables technologiques et les développeurs expérimentés dans le développement basé sur le cloud affirment que le développement dans ces environnements présente des avantages évidents, tels que des économies de coûts et une vitesse de mise sur le marché accrue, ils avertissent également qu'il y a des défis et des surprises à surveiller.

[Obtenez les explications et les conseils pratiques dont vous avez besoin pour tirer pleinement parti du cloud computing dans le rapport spécial PDF de 21 pages sur le Cloud Computing Deep Dive. | Restez informé sur le cloud grâce à la newsletter Cloud Computing Report. ]

On ne sait pas exactement à quel point le développement dans le cloud est commun. Mais l'analyse de l'industrie montre qu'elle est à la hausse. Dans une note de recherche de février 2011, Gartner a déclaré que les clients qui ont assisté aux symposiums de la société en 2010 ont exprimé "un intérêt nettement accru" pour le cloud computing pour améliorer le développement et la maintenance des applications Web personnalisées existantes.

«Je le vois le plus dans le prototypage et le développement de succursales parallèles, mais il y a aussi une croissance énorme dans l'espace des tests de charge et de performance», déclare Eric Knipp, analyste de recherche principal chez Gartner.

Si vous cherchez à vous lancer dans le développement cloud pour la première fois, voici neuf types d'obstacles que vous pourriez rencontrer et des suggestions sur la façon de les résoudre de la part des développeurs qui ont réellement fait le travail.

Développement cloud gotcha 1: le cloud ne fonctionne pas toujours comme le «monde réel»

Les développeurs peuvent trouver que la configuration qu'ils utilisent en production est difficile à répliquer sur les services cloud. Par exemple, avec une application que vous développez dans le cloud avant de la réactiver pour qu'elle s'exécute localement, vous devrez peut-être tester un système hérité que vous ne pouvez pas simplement copier sur un service cloud, déclare Knipp: «Cela signifie qu'il peut y en avoir beaucoup d'autres éléments que les développeurs doivent supprimer pour qu'une application de test soit opérationnelle. "

La technologie de virtualisation des services peut aider, dit Knipp, et les développeurs peuvent profiter des offres du marché qui permettent le développement de succursales multiples / parallèles. Prenons le cas d'iTKO, qui propose une suite logicielle appelée Lisa qui aide les entreprises à déplacer des applications d'entreprise dans le cloud.

Les développeurs habitués au développement non-cloud peuvent également rencontrer des surprises lors de la création d'applications Web dans le cloud. Par exemple, Greg Taylor, qui a créé une application d'inscription en ligne pour l'Ohio Music Education Association, ne s'attendait pas à ce qu'il ait besoin d'une compréhension aussi approfondie de la structure de la base de données et de la manière dont les utilisateurs interagiraient avec elle lors de la création de l'application.

L'application, qui gère l'enregistrement des artistes interprètes de la musique de l'école dans les contenus musicaux à l'échelle de l'État, utilise une base de données MySQL comme back-end et Alpha Five 10.5 d'Alpha Software pour le front-end. «Je viens d'un background FileMaker Pro [et] ce produit est extrêmement indulgent en ce qui concerne la structure des bases de données», déclare Taylor. "Une conception médiocre peut encore être utilisée avec un succès raisonnable."

Mais développer avec MySQL a forcé Taylor à être extrêmement organisé pour que l'application Web ait les meilleures performances possibles. Revenir à la structure de la table pour ajouter plus de champs prend du temps, car cela implique une rotation entre différents outils de développement, Navicat pour MySQL et Alpha Five pour la conception de la page Web, dit-il. Le premier outil crée la structure de la base de données, tandis que le second crée les pages avec lesquelles l'utilisateur interagit pour entrer et modifier des informations dans la base de données.

«Ce n'est peut-être pas un problème pour les développeurs qui exploitent une base de données qui a déjà été créée», déclare Taylor. «Ils utiliseraient simplement Alpha Five pour développer les pages Web auxquelles un utilisateur accède. Dans mon cas, je développais simultanément la base de données et les pages Web, ce qui m'aurait obligé à basculer entre les outils de développement si je n'avais pas prévu soigneusement."

Pour éviter cet aller-retour continu, Taylor a dû changer son approche de développement de base de données: "En développant un ERD [diagramme de relation d'entité] clair avec tous les champs nécessaires en premier, mon application Web est efficace et mon temps de développement global est considérablement réduit."

Dans certains cas, les outils de développement cloud fonctionnent comme le monde réel - du moins, de la version d'hier du monde réel. Jeff Hensley, analyste senior SIRH chez DaVita, une entreprise de soins de santé spécialisée dans la dialyse rénale, a été surpris que les développeurs travaillant dans le cloud aient besoin d'utiliser des outils de ligne de commande, XML et SQL, "ce qui m'a rappelé les vieux jours DOS". Il s'attend à ce que l'approche de la vieille école change avec le temps à mesure que l'adoption augmente.

DaVita utilise à la fois des plates-formes de livraison d'applications basées sur le cloud et des serveurs hébergés pour développer et fournir un entrepôt de données sur les ressources humaines et des applications de business intelligence.

Développement cloud gotcha 2: certaines applications ne sont pas idéales pour le développement dans le cloud

Par exemple, Dan Stueck, vice-président de l'informatique pour Faith Educational Ministries, évite de développer des applications haut de gamme dans le cloud qui présentent une sécurité des données extrême ou des restrictions réglementaires, ou qui reposent sur des projets de codage hérités, tels que ceux de Cobol. "Ces deux sont probablement mieux gardés en interne", dit-il, "le premier en raison de problèmes de sécurité évidents, et le second en raison du problème de la langue" morte ".

Là où Stueck a utilisé le cloud, c'est pour exécuter un serveur de développement sur le service de cloud public d'Amazon.com et pour créer un système d'information sur les élèves, des archives de transcriptions d'élèves et une application de vente de manuels scolaires à domicile dans le cloud.

Développement cloud gotcha 3: les développeurs n'aiment souvent pas le territoire inconnu du cloud

«Ce qui était probablement le plus inattendu, c'est la qualité de réception de l'ensemble du projet [de développement cloud] par les équipes de direction et de vente et par tous ceux qui utilisent le système, [et] la mauvaise réception par l'organisation informatique et en particulier les développeurs, »déclare Mark Warren, architecte en chef à 20/20.

Les informaticiens étaient habitués à travailler avec Microsoft .Net, SQL Server, Java et d'autres plates-formes de développement traditionnelles, dit Warren, et Force.com était un modèle complètement différent. «Si vous connaissez SQL et Java, c'est votre boîte à outils, et vous n'allez pas vouloir aller sur cette plate-forme complètement étrangère qui arrive», dit Warren.

En conséquence, l'application de vente a été développée principalement par le personnel de l'entreprise, et non par des développeurs informatiques. Cela a posé son propre ensemble de défis, dit Warren, dont le plus important était le manque de compréhension parmi les hommes d'affaires de la gestion du changement et de la gouvernance informatique. «L'informatique a un niveau de discipline que les hommes d'affaires n'ont pas l'habitude de faire appliquer», dit Warren. "Nous avons dû les mettre au courant des problèmes de gestion du changement."

Pour ce qui est de lutter contre la réticence des personnes technologiques à se développer dans un environnement cloud, il existe des programmes que l'informatique peut mettre en œuvre pour aider à adopter le cloud computing en interne, explique Warren. «La formation est certainement une bonne méthode pour faciliter», dit-il. "Cependant, à moins que la culture informatique ne soit ouverte aux nouvelles méthodes et technologies, le changement organisationnel [trouver de nouveaux développeurs] peut être la seule option."

Développement cloud Gotcha 4: le manque de documentation entrave les développeurs cloud

«Je m'attendrais certainement à ce que cela change à mesure que la demande augmente et que de plus en plus d'entreprises commencent à adapter le concept de cloud», déclare Hensley. «Nous avons pu lutter contre cela en nous associant à une société de conseil».

Développement cloud Gotcha 5: Les problèmes de réseau peuvent perturber les environnements de cloud privé

Embarcadero utilise son centre de données virtualisé pour la création et les tests d'applications. «Pour les clouds privés internes, nous avons quelques options: choisir la date / heure planifiée et organiser les serveurs dans un certain ordre», explique Intersimone. «Il existe des processus de construction automatisés et de tests de fumée automatisés qui fonctionnent en permanence dans notre principal cloud privé et également dans les bureaux de développement régional.

Pour obtenir un environnement plus disponible, Intersimone dit qu'il étudie une offre de conteneur cloud et de réseau privé virtuel de CohesiveFT qui peut être installée dans des clouds publics et privés pour fournir une mise à l'échelle à la demande, un basculement, une reprise après sinistre et une préparation aux catastrophes.

D'autres problèmes qui peuvent affecter le développement et les tests concernent les retards et la latence du réseau et la taille des canalisations du réseau, en particulier dans certaines régions du monde. Embarcadero possède des centres de recherche et de développement à Scotts Valley, en Californie, à Monterey, en Californie, à Toronto, à Saint-Pétersbourg, en Floride et à Iasi, en Roumanie, ainsi que de petites équipes et individus à travers le monde.

L'environnement de développement géographiquement diversifié d'Embarcadero «rend plus difficile la synchronisation des enregistrements, des builds et des tests automatisés», déclare Intersimone. Pour résoudre certains de ces problèmes, les développeurs effectuent des builds locaux et régionaux, ainsi que sur l'enregistrement du code, sur les serveurs virtuels accessibles à tous. Les développeurs réalisent également des builds locaux sur leurs propres machines. Embarcadero garantit qu'ils ne sont pas désynchronisés avec les versions principales sur le cloud privé en utilisant Subversion, un outil open source pour le contrôle du code source.

«Lorsqu'une construction se produit, un test automatisé est exécuté pour valider la construction», explique Intersimone. «Ensuite, les notifications sont envoyées à toutes les équipes de développement et la version est automatiquement transférée par-dessus un mur chinois vers un grand nombre de machines virtuelles de test automatisées dans nos centres de développement. Des tests automatisés et manuels sont effectués sur la version résultante pour vérifier l'état, et les e-mails sont envoyés aux autres membres de l'équipe une fois ce processus terminé. «Tout cela se produit en continu pendant la durée de développement d'un projet», dit-il.

Développement cloud gotcha 6: il est facile de laisser le compteur fonctionner inutilement sur le cloud

Un autre problème potentiel est de gaspiller de l'argent sur les frais de cloud. Les développeurs peuvent facilement oublier ou négliger de désactiver les machines virtuelles qu'ils n'utilisent pas. «Certains clients m'ont dit que les développeurs se déchaînaient avec des ressources de machine virtuelle que parfois les développeurs laissaient simplement des choses en marche, par exemple pendant un week-end», explique Knipp de Gartner. «Lorsqu'il s'agissait d'un serveur interne capitalisé, ce n'était pas un problème. Mais lorsqu'il s'agit de ressources louées à utilisation mesurée comme avec le cloud computing public, c'est un gaspillage d'argent.»

Knipp dit qu'il s'attend à ce que cela devienne un nouveau défi pour les entreprises qui déploient des initiatives de cloud privé.

Bien qu'il y ait peu de risque d'obtenir une facture importante et inattendue pour l'utilisation de la machine virtuelle par les développeurs dans un cloud privé, «dans un environnement IaaS privé en libre-service, un développeur peut faire tourner des machines virtuelles sans jamais les désactiver», explique Knipp. "Celles-ci vont effectivement consommer les ressources des machines qui ne sont pas utilisées efficacement et pourraient conduire l'organisation à acheter trop de capacité car la planification est faussée."

Développement cloud Gotcha 7: les licences cloud peuvent contenir des restrictions de déploiement surprenantes

Parmi les problèmes non techniques liés au cloud qui peuvent avoir un impact sur le développement, il y a les restrictions de licence. Il y a deux ans, Kelly Services, une agence nationale d'intérim, a décidé d'utiliser le développement basé sur le cloud pour bon nombre de ses applications locales, la plate-forme Force.com de Salesforce.com servant de vecteur de livraison.

Le développement dans le cloud a apporté des avantages tels qu'un délai d'exécution plus rapide pour le développement d'applications et une réduction des coûts, déclare Joe Drouin, CIO chez Kelly Services. Mais la société a également rencontré des problèmes inattendus avec les licences, en particulier en ce qui concerne les types de sièges utilisateur dont elle disposait et les limitations qu'ils comportaient. Par exemple, un siège peut avoir un nombre défini d'objets auxquels un utilisateur peut accéder. En conséquence, «à certains moments, nous avons été surpris par ce que nous pouvions ou ne pouvions pas faire» avec le développement, dit Drouin.

Développement cloud Gotcha 8: l'intégration peut être plus difficile à résoudre