Codage dans le nuage

Internet nous a permis de travailler où bon nous semble, ce qui nous a donné une grande souplesse dans le choix des endroits où nous aimerions nous implanter pour créer la prochaine grande application. Ne pas être attaché à un bureau a été une bénédiction pour beaucoup de personnes qui chérissent la capacité de travailler dans des environnements variés et de s’inspirer de leur environnement. Mais pour l'essentiel, nous avons besoin d'une machine de développement complète pour y arriver. Et si nous pouvions tirer parti du cloud en tant qu'environnement de développement lui-même, nous permettant de choisir parmi une variété d'appareils pour accomplir la même chose. C'est ce que nous allons explorer dans cet article.

Codage dans le nuage

Comme je l'ai mentionné, jusqu'à présent, que vous soyez au bureau ou assis dans un café, vous aviez généralement besoin d'une machine de développement (dans la plupart des cas, un ordinateur portable MacBook, Windows ou Linux) pouvant comporter les éléments suivants:

  • Un éditeur ou IDE comme Sublime, Vim ou Visual Studio
  • Un serveur Web local comme MAMP
  • Un serveur d'applications et un framework (RoR, Python / Django, Node.js)
  • Git
  • LiveReload ou CodeKit

Et d'innombrables autres outils sur lesquels vous comptez pour faire votre travail. Cela nécessite généralement de travailler avec une machine imposante pour pouvoir utiliser tous ces outils et être productif..

Mais avec la généralisation croissante du haut débit, les exigences pour disposer d'un appareil aussi puissant deviennent de moins en moins rigoureuses en raison du nombre d'offres de cloud offertes aux développeurs. Des services tels que Cloud9 IDE et Nitrous.io apportent au cloud des environnements de développement réels, permettent aux développeurs de travailler à distance et offrent une plus grande flexibilité en termes de périphériques avec lesquels ils choisissent de travailler..

Ces services apportent non seulement des IDE sur le Web, ils fournissent également une infrastructure qui offre aux développeurs:

  • Intégration complète de Git avec des services tels que Github et Bitbucket
  • Accès au terminal pour la fonctionnalité de ligne de commande
  • Des backends virtualisés vous permettant de créer des instances de RoR ou Node.js
  • Déploiement sur des services de production tels que Heroku ou Windows Azure
  • La collaboration d'équipe

Fondamentalement, ces services s’ajoutent à l’évier de la cuisine, facilitant ainsi le passage au cloud. Explorons ces un peu plus.


Cloud9 IDE

Ma première exposition à un réal IDE basé sur le cloud était Cloud9. Ils avaient un éditeur en ligne très basique avec l’intégration de Github qui était très cool et visiblement très alpha à l’époque. Néanmoins, c’était incroyablement prometteur et, avec le travail que Mozilla réalisait sur Bespin, le potentiel était énorme. Il est intéressant de noter que le projet Mozilla Bespin a par la suite été fusionné dans Ace, l'éditeur de Cloud9, ce qui semble avoir grandement contribué à la solide expérience de l'édition dans l'EDI basé sur le cloud..

C9 adopte une approche tarifaire très similaire à celle de Github, offrant un ensemble de fonctionnalités de base via un modèle freemium avec des fonctionnalités plus illimitées à 12 $ par mois. Les différences se réduisent au type d'espaces de travail que vous avez, au nombre que vous pouvez avoir et aux fonctionnalités disponibles dans ces espaces de travail. Votre projet se trouve dans un espace de travail, y compris vos fichiers de projet et les outils et services que vous pouvez utiliser (tels que Ruby ou Python). Ainsi, selon le degré de sophistication de vos besoins, vous devrez peut-être envisager sérieusement l'option premium qui vous donne:

  • Cinq autres espaces de travail privés
  • Espaces de travail FTP illimités
  • Plus d'espace disque virtuel pour vos espaces de travail
  • Accès complet au terminal et à la ligne de commande dans vos espaces de travail

Les options de terminal sont particulièrement importantes, car C9 vous permet d’utiliser SSH et FTP sur votre propre serveur, ce qui vous permet essentiellement d’utiliser leur service uniquement en tant qu’EDI basé sur le cloud..

Le fait qu’ils offrent une option freemium est idéal pour cogner les pneus et voir si c’est un service que vous pouvez obtenir..

Vous avez plusieurs options pour vous connecter, y compris un scénario classique email / mot de passe ou vous pouvez utiliser OAuth via GitHub ou BitBucket. Faire ainsi avec les deux derniers vous donne accès aux référentiels que vous avez déjà stockés sur ces services, comme en témoigne ici:

L'espace de travail me permet de cloner un référentiel existant de la liste importée, de cloner l'URL de mon choix ou de créer un nouvel espace de travail basé sur un serveur distant (via SSH ou FTP).

J'ai décidé de cloner mon "autorisation" Git repo, qui était l'exemple de code source que j'ai écrit pour un article ici sur Nettuts + sur l'authentification à deux facteurs. Le serveur d'applications que j'ai utilisé pour cela était ColdFusion et j'étais plutôt heureux de voir le C9 reconnaître correctement les fichiers ColdFusion. Honnêtement, je ne m'y attendais pas puisque CFML n'est plus aussi populaire qu'auparavant:

Notez que toute la structure de mon projet est restituée intacte et que mes fichiers sont entièrement modifiables. De plus, j'ai également accès aux commandes complètes du terminal:

Pour conduire cette maison un peu plus, notez dans la capture d'écran suivante que j'ai modifié gettoken.cfm en ajoutant un commentaire. Taper dans statut git dans le panneau des terminaux affiche l’état modifié du fichier, exactement comme vous le souhaiteriez:

Puis suivi avec git commit -a -m "Commentaire ajouté" et git push met à jour mon dépôt en conséquence:

Une fonctionnalité clé que le C9 aime à exagérer est les capacités de saisie semi-automatique en JavaScript, ce qui est logique dans la mesure où il s'agit d'une ressource précieuse dans n'importe quel éditeur..

Je sais qu’il ya eu beaucoup de débats récemment sur le point de savoir si la saisie semi-automatique entrave ou non votre capacité à vous souvenir des fonctionnalités du langage, mais avec la complexité croissante des bibliothèques, des frameworks et des outils, j’apprécie énormément de pouvoir aider un peu à se rappeler des choses. Je souhaite qu'ils offrent plus de soutien linguistique si.

L'un des principaux arguments de vente est la maturité de la documentation. Il couvre tout le service, de la personnalisation de l'EDI à l'intégration avec les systèmes de base de données et au déploiement de votre code. Il existe un certain nombre de didacticiels vidéo que vous pouvez utiliser pour vous familiariser avec le service, qui complètent la documentation solide..

Enfin, si vous êtes aventureux, vous pouvez décider de lancer votre propre version de Cloud9 IDE puisqu'il s'agit d'un projet à source ouverte sous licence GPL. La page GitHub offre de bonnes instructions sur son installation, aussi bien dans les environnements * nix que Windows. Si vous souhaitez éviter les coûts, essayez-le..


Nitrous.IO

Nitrous.IO (que je nommerai désormais Nitrous) est une nouvelle option qui a suscité les éloges de développeurs tels que Yehuda Kathz du projet Ember.js et Tobias Lutke, ancien élève de Rails Core. Il est toujours en version bêta, mais fonctionne remarquablement bien à ce stade. Ils ont adopté une approche consistant à proposer une pile virtualisée complète qui englobe non seulement un IDE, mais aussi ce qu'ils appellent des "boîtes" qui hébergent essentiellement toute votre pile de développement. Cela inclut votre choix de Ruby on Rails, Node.js, Python / Django ou Go.

Semblables à C9, ils offrent des services de base qui vous permettent de faire rouler les pneus. Cela se fait en vous donnant suffisamment de points "nitreux" (155) pour créer une boîte de base qui, selon eux, devrait être suffisante pour la plupart des tâches quotidiennes. Notez dans l'image ci-dessus que la quantité de mémoire et de stockage sélectionnée affecte la quantité de points nitreux qu'il vous reste. La boîte standard de base vous laissera cinq points et, comme de nombreux fournisseurs d’hébergement VPS, vous pouvez choisir dynamiquement plus de ressources en fonction de vos besoins. Je suis sûr que cela aura un coût une fois que la bêta sera épuisée, mais cela rend extrêmement facile de gagner plus de points sans ouvrir votre portefeuille. Grâce à plusieurs connexions et tâches de réseau social, vous pouvez gagner plus de points pour les fonctionnalités de votre boîte:

Notez qu'en choisissant quelques options, j'ai pu augmenter mes points N20 de 155 à 180 et plus vous invitez d'amis, plus vous gagnez de points. Ne soyez pas un polluposteur ennuyeux!

La mise en place d’une boîte est bien plus que la simple sélection de ressources. Une partie importante de cette performance, en termes de performances, consiste à choisir la région géographique la plus proche pour réduire le temps de latence. En fait, ils saisissent cela pendant leur vidéo d'introduction.

Une fois que vous avez sélectionné vos paramètres, le provisioning de la boîte est incroyablement simple et possède même un cadran de progression animé:

L'IDE apparaît alors et vous êtes prêt à commencer votre travail:

Contrairement à C9, je n’ai pas trouvé le moyen de visualiser les référentiels Github disponibles. Je pensais que la connexion à Github me permettrait également de cloner facilement un de mes repos dans ma boîte. J'ai fini par suivre ces instructions pour ajouter les clés SSH générées par Nitrous à mon compte Github, puis pour cloner un de mes dépôts dans l'EDI:

J'aurais aussi pu utiliser la fonctionnalité de téléchargement pour télécharger mes fichiers de projet:

Il me semble qu’obtenir un accès visuel direct à votre dépôt GitHub est une fonction prioritaire que l’équipe Nitrous devrait examiner et qui, à mon avis, est un avantage pour C9.

Avec les fichiers en place, il était temps de voir comment l'EDI fonctionnait et semblait fonctionner très bien, reconnaissant facilement différents types de fichiers et proposant une coloration syntaxique en fonction du type de fichier:

Contrairement à C9, cependant, il n’existait pas de saisie semi-automatique, vous devez donc déterminer la valeur d’une fonctionnalité qui vous est chère. Mais comme C9, les raccourcis clavier pour les tâches courantes telles que l’enregistrement d’un fichier ou la fermeture d’onglet sont tous là..

Pour ceux qui ont l'habitude de travailler dans le terminal, vous trouverez Nitrous facile à adapter. En fait, vous devez vraiment être à l'aise pour utiliser pleinement le service. L’installation et le démarrage de paquets tels que MongoDB ou Memcached se font via le gestionnaire de paquets Nitrous appelé les pièces qui, vous l’avez deviné, est basé sur la ligne de commande. Par exemple, installer MongoDB se présente comme suit:

pièces installer mongodb

Si vous avez l'habitude de apt-get sur Linux ou brasser installer sur OS X, cette syntaxe devrait être très familière.

La principale chose à retenir est que l'éditeur n'est qu'une partie de l'équation. En gros, vous utilisez une machine complète dans un navigateur Web; vous serez donc à l'aise dans un environnement * nix..

Même pour déployer votre site, vous devrez utiliser la ligne de commande. Il n'y a pas d'option "il suffit d'appuyer sur un bouton" ici. Nitrous s'intègre facilement aux services suivants:

  • Heroku
  • Google App Engine
  • Microsoft Azure
  • Nodejitsu

Cela donne une assez bonne couverture à plusieurs grands services basés sur le cloud. J'étais curieux de savoir si leur assistance pour le déploiement d'Amazon était déployée, mais je n'ai pas pu trouver beaucoup d'informations à ce sujet, du moins pas assez pour comprendre comment le configurer..

Cela dit, leur documentation est très bien organisée et vous guidera facilement dans la plupart des tâches dont vous avez besoin pour utiliser votre service..


Cloud ou pas Cloud

Les deux services semblent offrir des fonctionnalités attrayantes qui pourraient faciliter le passage au développement en nuage à temps plein. Avec autant d'appareils peu coûteux qui sont clairement conçus pour les consommateurs qui souhaitent simplement être connectés en permanence, il est logique que ces services commencent à évoluer et à gagner du terrain..

Il est difficile d'imaginer abandonner mon fidèle ordinateur portable avec son processeur i7 et son SSD rapide pour un environnement de développement entièrement en nuage, mais je ne peux pas le rejeter carrément. Tous les grands éditeurs de logiciels vantent les services en nuage et je suis sûr que chacun de vous lit ceci utilise quotidiennement plusieurs services en nuage. Il semble logique de commencer à envisager de coder dans le cloud..