livre blanc DÉVELOPPEMENT INFONUAGIQUE MEILLEURES PRATIQUES ET APPLICATIONS DE SOUTIEN
DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 1 Les solutions infonuagiques sont de plus en plus présentes sur le marché des TI, et un nombre croissant d'entreprises de tous les secteurs les adoptent. Concept nouveau dans le domaine du développement logiciel, le nuage est de plus en plus utilisé en recherche et en implémentation en raison de ses avantages indéniables: Extensibilité Configurabilité Flexibilité Délais de mise en marché réduits DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques La concurrence universelle découlant de la mondialisation et la demande soutenue compliquent la mise en œuvre de solutions qui répondent immédiatement aux besoins de la clientèle cible des entreprises. En développement logiciel, l'approche classique repose sur l'architecture d'infrastructure, l'élaboration et la maintenance d'infrastructures, le déploiement de code, la surveillance logicielle visant à optimiser le temps de disponibilité et une application fonctionnelle. Tous ces éléments nécessitent un investissement constant de temps et d'argent, ainsi que des professionnels spécialisés. D'innombrables entreprises n'arrivent pas à répondre à ces exigences, car elles n'ont pas accès aux professionnels nécessaires ou ne disposent pas de délais de mise en marché suffisants pour être concurrentielles. En adoptant les pratiques qui suivent, vous ferez de votre solution infonuagique un choix évident pour conquérir de nouveaux marchés, accroître votre clientèle et étendre votre territoire. Solution Les solutions infonuagiques permettent de remédier à ces inconvénients. Mais pour obtenir du succès, il est important d'intégrer les meilleures pratiques dès le début de la phase de conception qui mènera au développement et au déploiement d'une application. Une application Web hébergée dans le nuage doit être extensible. Pour ce faire, il est important de déterminer dès le début de la phase de développement, c'est-à-dire au moment de concevoir le système et l'architecture, comment l'application évoluera au fil du temps. Dans ce contexte, deux options se présentent:
DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 2 Croissance verticale L'application est conçue pour fonctionner sur une seule machine. Croissance horizontale L'application est conçue pour fonctionner sur de multiples machines, au moyen d'une architecture modulaire. Héberger ce type d'application dans le nuage présente certaines limites quant à la croissance : vous pouvez augmenter les ressources qui soutiennent l'application (comme les processeurs), mais seulement dans la mesure où le matériel le permet. Autrement dit, la croissance est limitée par le matériel, et il n'est pas recommandé d'intégrer ce concept aux applications infonuagiques. La croissance verticale est une approche traditionnelle dans une configuration à un seul serveur. Son utilité dans un environnement infonuagique se résume au fait que l'utilisateur n'a pas à se préoccuper des questions de matériel; il n'a qu'à créer une machine virtuelle et à accroître les ressources allouées à celle-ci à mesure que ses besoins augmentent. Les ressources peuvent être accrues en augmentant le nombre de processeurs virtuels, la mémoire disponible ou l'espace disque, ou en installant des interfaces réseau supplémentaires au besoin essentiellement en augmentant la puissance du matériel virtuel. Il s'agit d'un avantage de taille en infonuagique, car il permet d'ajouter autant de ressources que nécessaire. Il est important que l'application permette la synchronisation entre les machines afin qu'il n'y ait pas d'écart. Pour les applications Web, ce type d'architecture se traduit par une seule session commune utilisée par toutes les machines concernées. Puisque toutes les machines partagent essentiellement la même session commune, l'utilisateur ne subira aucun plantage, même si ses requêtes sont désormais traitées par un autre ordinateur. Il est conseillé d'héberger la session commune sur un serveur infonuagique séparé ou dans la base de données de l'application (Amazon recommande d'héberger la session commune dans Dynamo DB). Les croissances horizontale et verticale conviennent toutes les deux au nuage, mais la croissance horizontale est l'option privilégiée comme nouveau paradigme en développement infonuagique. La croissance verticale est limitée par le matériel, tandis que la croissance horizontale n'est limitée que par l'architecture de l'application.
DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 3 Quoi? Pourquoi? Comment? MEILLEURE PRATIQUE RAISON CONSEIL TECHNIQUE D'OSF Collecte constante et centralisation des données ❶ Intervention au besoin ❷ Meilleure voie à prendre pour le développement logiciel futur ❸ Décision quant à l'ajustement de l'infrastructure du nuage en fonction du comportement actuel du système log4net est une bibliothèque utile qui facilite la collecte de données et permet la création de journaux pour une variété d'applications.net. Elle convient non seulement aux applications infonuagiques, mais à tous les types de systèmes. Implantation d'un service de mise en file d'attente des messages Division du service afin que deux machines différentes ne traitent pas le même ensemble de données et que si l'une d'entre elles plante, aucune donnée non traitée ne subsiste Amazon SQS pour les applications hébergées sur le nuage d'amazon Recours à des solutions de répartition des tâches ❶ Travail en parallèle ❷ Équilibrage de charge ❸ Appel à des fonctions d'un langage à l'autre Utilisable dans une variété d'applications, des sites Web à haute disponibilité au transport des évènements de réplication des bases de données. Il s'agit du système nerveux qui permet la communication des traitements distribués. Gearman est une solution de distribution des tâches qui convient à toutes les applications infonuagiques. Elle fournit une infrastructure d'application générique qui délègue les tâches à des processus ou des ordinateurs mieux adaptés. Mise en place d'un système d'alerte Notification en temps réel à l'équipe de développement concernant l'état des machines et des applications Les principaux fournisseurs de services infonuagiques comptent sur un système d'alerte de base qui peut être complété par le système d'alerte Nagios. Sélection d'un système de déploiement digne de confiance Assurance que le même code fonctionne sur toutes les machines du nuage Team City prend en charge le déploiement de projets, avec des résultats éprouvés.
DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 4 Quoi? Pourquoi? Comment? MEILLEURE PRATIQUE RAISON CONSEIL TECHNIQUE D'OSF Utilisation de couches de persistance Migration d'une base de données SQL vers une base de données Amazon avec un minimum d'effort Votre application doit pouvoir être liée à toutes sortes de bases de données. Travail avec des serveurs d'intégration Jenkins et Team City Mise à niveau aux plus récents services offerts par le fournisseur de services infonuagiques En matière d'applications infonuagiques, cela devrait être une préoccupation constante. Utilisation de services dédiés au stockage Éviter de stocker des données sur des machines qui fonctionnent dans le nuage OSF Global Services a obtenu des résultats positifs avec Amazon S3. Mise en place d'un système de distribution pour les nœuds d'applications ❶ Étiquette sur l'outil de gestion des versions à partir duquel le code est transféré vers une nouvelle machine dans le nuage ❷ Assistance en matière de reprise après sinistre et d'extensibilité, facilitation du déploiement et réduction du temps d'indisponibilité En matière de systèmes de distribution, il existe des solutions avancées (comme Capistrano ou Puppet), intégrées aux images de nœuds de système, qui permettent de récupérer les progiciels d'application et le code sur un système de stockage centralisé par l'entremise de SVN et de tâches cron.
DÉVELOPPEMENT INFONUAGIQUE - APPLICATIONS DE SOUTIEN 5 DÉVELOPPEMENT INFONUAGIQUE - applications de soutien Les méthodes de développement logiciel actuelles sont axées sur le principe des méthodes agiles, lesquelles permettent d'obtenir des applications fonctionnelles tout en réduisant le temps de production. Les méthodes agiles sont particulièrement adaptées au concept infonuagique du point de vue des délais de mise en marché. L'agilité et le nuage conviennent à toutes les applications, qu'il s'agisse de commerce électronique, de finance ou de gestion des ressources humaines. Ils vous aident à pénétrer de nouveaux marchés, à accroître le nombre de vos utilisateurs ou de vos clients et à conquérir de nouveaux territoires. De nos jours, les concepts d'agilité et de nuage sont soutenus par une foule d'outils et d'applications, ainsi que par des services complets offerts par des entreprises qui vous permettent d'atteindre vos objectifs d'affaires. Solution Compatible avec les méthodes agiles et le nuage, le logiciel Git présente une série d'avantages qui contribuent au développement de logiciels fonctionnels. Contrairement à SVN, qui fonctionne sur un serveur et nécessite une connexion Internet, Git est une option décentralisée. Git vous permet de travailler hors ligne. Le transfert s'effectue lorsqu'une connexion Internet est disponible; le code validé est alors synchronisé avec le reste de l'application. Avec SVN, le développement hors ligne est impossible. Bitbucket offre un temps de disponibilité optimal. L'application permet la revue de code, comporte des fonctions de comparaison de code et fournit des résultats par ligne de code. Bitbucket facilite ainsi le processus de revue de code. Le fournisseur s'occupe de sauvegarder le code dans le nuage. Aucune maintenance n'est requise. Git a été conçu pour être entièrement distribué dès le départ, permettant à chaque développeur d'obtenir un contrôle local et complet et de développer des applications aussi près que possible de l'environnement de production. Les problèmes et les bogues d'intégration système sont ainsi réduits. Grâce à la distribution, vous n'avez pas à fournir d'accès de validation à d'autres personnes pour leur permettre d'utiliser les fonctions de versions. Vous décidez ce que vous souhaitez fusionner ou non. Git offre une fonction d'audit des évènements de création de branche et de fusion, laquelle vous permet d'effectuer un suivi des modifications apportées à votre application.
CONCLUSION - Développement infonuagique meilleures pratiques et applications de soutien 6 CONCLUSION Le développement de solutions infonuagiques comporte certains défis, mais offre aussi la chance de croître plus rapidement que vos concurrents, de prévenir les périodes d'indisponibilité de votre application, de prendre en charge un nombre accru d'utilisateurs et d'être compétitif dans tous les territoires. Commencez par choisir un fournisseur de services infonuagiques concurrentiel et professionnel, qui s'y connaît en matière d'architecture, de conception, de développement, de test et de fonctionnement d'applications et qui utilise les bons outils. Ainsi, vous tirerez un réel avantage des méthodes agiles et profiterez pleinement de votre solution infonuagique. Merci de nous avoir lus! Pour obtenir de plus amples renseignements sur les services d'optimisation et de commerce électronique d'osf Global Services, veuillez visiter notre site Web au www.osf-commerce.com. Pour bénéficier de ressources complémentaires, accédez à notre bibliothèque. Partagez avec vos amis et collègues: Des services en matière de commerce électronique de bout en bout, des solutions de pointe et des pratiques exemplaires pour vous aider à: Accroître l'efficacité de votre site Web Augmenter votre taux de conversion Connaître une croissance internationale