Accueil Nos publications Blog Le cloud 2/3 : Le Cloud pour les développeurs

Le cloud 2/3 : Le Cloud pour les développeurs

Après avoir défini plus concrètement ce qu’est le Cloud Computing et fait un rapide historique, nous allons maintenant nous intéresser aux différents services proposés aux développeurs.

En effet, ce qui constitue le principal challenge du Cloud est le transfert des outils informatiques à l’extérieur de l’entreprise. Y compris les outils des développeurs.

Cet article fait partie d’un triptyque sur le Cloud Computing :

  1. Le cloud 1/3 – Les concepts de base
  2. Le cloud 2/3 – Le Cloud pour les développeurs
  3. Le cloud 3/3 – Ses limites et points faibles

Les principaux acteurs

De nombreuses entreprises s’intéressent au Cloud, et ce, qu’elles soient gros acteurs du logiciel, du matériel ou de l’internet, ou petite startup innovante profitant de l’intérêt actuel pour ces technologies.

La liste ci-dessous, n’est pas une liste exhaustive. Elle représente, à mon sens, les acteurs majeurs du Cloud au moment de la rédaction de cet article. Il s’agit de ceux qui sont clairement identifiés comme leader et/ou ceux qui alimentent le plus les discussions sur internet. Le but n’étant pas de faire un catalogue mais de présenter une vue générale de certaines solutions emblématiques et de leurs différences.

Amazon Web Services (AWS)

AWS est l’offre d’Amazon qui permet d’avoir accès directement à leur infrastructure pour déployer vos applications. Le paiement est très flexible et se base sur la consommation (mémoire, CPU, bande passante et espace de stockage) : vous ne payez que ce que vous utilisez. Ce type de facturation, très novateur à l’époque, a fortement participé au succès de la plateforme puisqu’il ne coûte quasiement rien de se lancer.

(Crédit : aws.typepad.com)

AWS est un ensemble de services webs répondant à différents besoins :

  • Cloud Front : Le service qui gère toute la partie distribuée
  • EC2 : Une solution de calcul distribué
  • RDS : La mise à disposition de bases relationnelles
  • SimpleDB : Du stockage non relationnel
  • SNS : Un système de gestion de notifications
  • SQS : Une gestion des files d’attentes
  • S3 : Une solution de stockage
  • VPC : Un VPN entre les autres services et votre réseau interne

De plus, Amazon propose bien d’autres services pour, par exemple, gérer des paiements, faire du MapReduce, surveiller vos ressources, etc.

Tous les services sont autonomes et possèdent leurs propres interfaces de gestion et leur tarification propre.

Google AppEngine (GAE)

L’approche Cloud de Google est assez différente de celle d’Amazon : Google propose une plateforme PaaS permettant de déployer des applications sur leurs serveurs mais ils sont relativement spécifiques et, en conséquence, vos applications deviennent couplées aux API de GAE.

En effet la JVM et les API proposées ne sont pas 100% standards, ce qui nécessite de s’adapter afin de profiter de toute la puissance de la plateforme. Elle propose, cependant, de nombreuses API de haut niveau et la plupart des frameworks courants et des langages basés sur la JVM sont compatibles.

Parmi les fonctionnalités intéressantes, on trouve la possibilité de se connecter à des SI internes de l’entreprise de manière sécurisée.

Cependant, dernièrement, Google a fait parler de lui à cause de ses changements tarifaires suite à l’abandon du statu “béta” de la plateforme. Vous pouvez cependant toujours tester la plateforme gratuitement.

CloudFoundry

CloudFoundry est une plateforme de Cloud open source développée par VmWare. Il s’agit d’une approche extrêmement modulaire où la communauté peut développer ses propres extensions et ainsi enrichir la plateforme.

Ce qui fait l’originalité de CloudFoundry est son approche Cloud privé pour développeurs. Vous avez, en effet, 3 choix possibles :

  • Déployer votre application sur CloudFoundry.com et profiter d’un véritable Cloud.
  • Déployer un CloudFoundry sur vos propres serveurs internes et profiter d’un Cloud privé.
  • Déployer un MicroFoundry sur votre PC et profiter d’un Cloud sur votre PC via une machine virtuelle.

(Crédits : cloudfoundry.com)

Évidemment une application fonctionnant sur n’importe laquelle de ces possibilités sera compatible avec les deux autres. Ainsi, en situation de mobilité, il est possible de travailler sur son MicroFoundry, puis, une fois dans l’entreprise, de déployer sur son CloudFoundry interne. En outre, dès que l’infrastructure devient trop compliquée ou trop grosse, il est possible de basculer sur CloudFoundry.com.

De base, CloudFoundry supporte nativement tout un tas de frameworks, langages et bases de données mais il est fort probable que de nouvelles fonctionnalités voient le jour rapidement puisque les sources sont accessibles et que la communauté semble très active à ce niveau.

Pour le moment, le service est encore en Beta et aucun prix n’a été annoncé pour cloudfoundry.com.

Microsoft Azure

Microsoft est paradoxalement un acteur récent au niveau des plateformes IaaS et PaaS dans le cloud, et cela, bien que la partie SaaS fasse partie de ses plans depuis relativement longtemps. Avec le lancement de Azure, ils tentent de rattraper ce retard en proposant une solution complète basée sur leurs technologies

Ils proposent ainsi classiquement, du stockage de données SQL (Azure Storage), l’exécution d’applications web sur des serveurs IIS (Web Role), un équivalent des services Windows (Work Role), des systèmes de bus de données et de gestion des accès.

Mais la grande différence avec les concurrents est la présence d’un Marketplace permettant de monnayer ses données et ses contenus en les mettant à disposition de systèmes tiers.

Le tout repose, bien évidement, sur le langage .Net même si une ouverture à d’autres langages est envisagée.

(crédits : microsoft.com)

CloudBees

CloudBee est un des outsiders les plus intéressants car il présente une approche assez novatrice pour les développeurs avec une chaine complète allant de l’hébergement des sources au déploiement de l’application.

Leur offre est répartie en deux segments distincts qui, bien évidement, fonctionne également ensemble mais qui peuvent aussi être utilisés indépendamment.

A noter qu’une version “Cloud privé” est en cours de Beta Test.

(crédits : cloudbees.com)

Dev@Cloud

Dev@Cloud est une usine logicielle complète dans le Cloud. Vous avez à votre disposition un repository de sources (SVN ou Git), un Jenkins pour l’intégration continue, un sonar pour l’analyse de code et un repository maven.

Le tout étant bien entendu le plus homogène possible, scalable et disponible très rapidement.

Une interface unifiée permet d ‘administrer tous vos services.

Vous pouvez essayer gratuitement, puis plusieurs offres commerciales sont proposées en fonction de vos besoins.

Run@Cloud

Run@Cloud est la plateforme de déploiement des applications. Elle supporte les applications basées sur la JVM et ne possède aucune API spécifique : vous déployez directement vos applications comme si le serveur était sur votre réseau, sauf qu’il est dans le Cloud.

La facturation se fait en fonction des ressources consommées avec une version gratuite limitée en ressource.

Mule Ion

Le positionnement de Mule Ion est un peu particulier car il ne s’agit pas d’un PaaS conventionnel. Son objectif est de transposer la notion de bus de données dans le Cloud en offrant une solution qui a pour but de faire communiquer vos différents Cloud entre eux mais aussi votre SI interne via des connecteurs.

(Crédits : mule.org)

L’approche peut sembler prématurée mais, à mesure que les systèmes dans le Cloud se complexifieront, le besoin de faire interagir ces systèmes de manière centralisée risque de se faire de plus en plus sentir.

Travailler dans le Cloud

En dehors du fait de déplacer ses serveurs dans le Cloud, l’autre approche qui concerne le développeur est la dématérialisation des outils. Nous sommes, en effet, de plus en plus mobiles, le télétravail se développe rapidement et nous travaillons souvent avec des gens situés sur d’autres sites/pays que le notre. Afin de répondre à ces différents cas de figure, de nombreuses solutions existent.

Partager ses sources

Depuis de nombreuses années, il est possible de stocker ses sources sur internet via des plateformes comme sourceforge. Ces dernières années de nombreuses solutions se sont mises en place (Google Code, Microsoft CodePlex, GitHub, etc.). Avant tout orientée pour les projets open sources, ces plateformes peuvent également avoir un intérêt pour les entreprises. En effet, pour de nombreuses startup, avoir un serveur de sources avec sauvegardes automatiques et accessibles de partout sans investissement initial est clairement un avantage. Ainsi GitHub propose des solutions d’hébergement dédiées aux entreprises avec des repositories privés.

Développer dans le Cloud

La dernière partie de ce chapitre s’intéresse au développement dans le Cloud. Il s’agit, ici, de taper directement son code via un IDE en ligne. Cette approche est encore très récente et en est encore à son balbutiement, surtout si on la compare aux IDE actuels.

Les premières solutions commencent à apparaitre avec, entre autre, Exo IDE, Cloud9 ou encore Orion de la fondation Eclipse.

(Crédits : exoplatform.com)

Ces solutions sont, pour le moment, plus des appoints permettant de développer en situation de mobilité via une tablette ou un netbook mais restent loin du confort et de la puissance d’un IDE moderne.

Ce que vous pouvez attendre de ces solutions à l’heure actuelle :

  • L’autocompletion.
  • L’intégration avec des gestions de sources dans le cloud (en général GitHub).
  • L’analyse syntaxique pour plus ou moins de langages.
  • La communication avec les autres développeurs du projet à l’aide d’un chat.

Conclusion

Avec la maturité du Cloud et la chute des coûts des solutions associées, migrer une partie non négligeable de son environnement de développement devient de plus en plus intéressant pour pallier aux problèmes souvent rencontrés lors de la mise en place des usines logicielles et de l’intégration continue.

Cependant, tout n’est pas parfait dans le mise en place du Cloud et il reste de nombreuses limitations que nous verrons dans la dernière partie de cette série d’articles.