Hébergez vos applications Node.js grâce à DigitalOcean

Publié le 12 juin 2013 par Jpmonette

Quand vient le temps d'exécuter une application réalisée avec Node.js sur le Web, il est nécessaire de trouver une plateforme pour l'héberger. Pour ça, vous avez l'embarras du choix: serveur dédié, serveur virtuel, infonuagique... Plusieurs compagnies vous permettent d'y arriver rapidement. Par contre, si vous cherchez un service abordable et d'une grande flexibilité, je vous invite à découvrir l'offre de DigitalOcean.

DigitalOcean offre des machines virtuelles dans son infrastructure cloud ( IaaS), le tout, à la fois simple, flexible et sécuritaire. Vous pouvez exécuter pratiquement tout ce que vous voulez sur votre instance! Sa création se fait très facilement via leur panneau d'administration.

Dans le cadre de cet article, je vais vous montrer comment vous créer une instance et exécuter votre première application Node.js. Bien que le processus soit détaillé, une connaissance de base de la ligne de commande et de Linux pourra vous être utile!

Création de votre compte

C'est probablement l'étape la plus simple de cet article. Rendez-vous sur le site Web de la compagnie et créez vous un compte:

Informations de paiements

Lorsque votre compte sera créé, connectez-vous et rendez-vous dans la section Droplets (synonyme d' instance dans leur jargon). Avant tout, vous devez assigner un compte PayPal ou bien une carte de crédit à votre compte pour les frais d'utilisation. Si vous prenez l'option PayPal, un montant prépayé de 5,00 $ est amplement suffisant pour tester le service pendant 1 mois. Je ne rentrerai pas dans les détails, car cette étape peu technique sort du cadre de cet article.

À noter: à l'heure où j'écris ces lignes, vous pouvez profiter d'un crédit de 10,00 $ en entrant le code promotionnel SHIPIT.

Création d'un Droplet

Ensuite, vous devez vous créer un Droplet. Ce sera votre serveur virtuel, sur lequel nous installerons Node.js.

La procédure est assez simple, vous n'avez qu'à choisir:

  1. Un nom de domaine à utiliser (je vais utiliser test.jpmonette.net, vous pouvez vous en procurer un chez un registraire de noms de domaine tel que Namecheap);
  2. La taille de l'instance (pour commencer, je vous suggère la plus petite instance à 5,00$ par mois);
  3. La région où sera localisée votre Droplet (la plus proche de votre public cible, dans mon cas New York, New York);
  4. L'image à utiliser pour l'instance, soit le système d'exploitation et tout ce qui peut venir avec (fan de Arch Linux, je vais utiliser Arch Linux 2013.06.05 x64).

Après avoir validé toutes les informations, confirmez la création du Droplet. Votre requête de création sera automatiquement exécutée.

Par la suite, vous recevrez par courriel les informations pour vous connecter à l'instance.

Configuration de l'instance

À l'intérieur du courriel, DigitalOcean inclut l' adresse IP de la machine virtuelle ainsi que les informations de connexion à votre instance grâce au protocole SSH. Pour s'y connecter, ouvrez un terminal (vous pouvez utiliser PuTTy sur Windows):

[jpmonette@brown ~] ssh root@192.81.209.52 

Acceptez le certificat de connexion et insérez votre mot de passe. Si vous avez entré les informations correctement, vous devriez être finalement connecté au terminal de votre instance.

Last login: Tue May 21 15:06:08 2013 from ****** [root@test ~] 

Mise à jour et installation du paquet Node.js

Avant de poursuivre avec votre serveur, assurez-vous de mettre à jour les dépôts ainsi que votre système. Avec le gestionnaire de paquet pacman, c'est aussi simple qu'entrer la commande suivante:

[root@test ~] pacman -Syuu 

Cette étape devrait être exécutée assez rapidement. Par la suite, il est nécessaire d'installer encore une fois grâce au binaire pacman le framework Node.js:

[root@test ~] pacman -S nodejs resolving dependencies... looking for inter-conflicts Packages (1): nodejs-0.10.7-1 Total Download Size: 2.99 MiB Total Installed Size: 12.46 MiB :: Proceed with installation? [Y/n] 

Acceptez de poursuivre avec l'installation. Après quelques secondes, vous devriez recevoir une confirmation que le processus s'est exécuté avec succès. Pour valider le tout, vérifiez la version du binaire installé:

[root@test ~] node -v v0.10.10 

Nous travaillerons donc avec la plus récente version, car oui, Arch Linux offre toujours les plus récentes versions pour profiter des nouveautés.

Création d'une application simple

Finalement, pour tester que le tout fonctionne correctement, nous allons exécuter notre première application. Évidemment, il est normalement préférable de créer un utilisateur pour ne pas utiliser le compte root et de configurer le système plus en profondeur pour avoir une installation apte à supporter une application de production. Cependant, il existe une panoplie de documentation sur le Web pour réaliser cette étape. Nous allons donc nous concentrer sur une simple application de test.

Créez un nouveau fichier grâce à l'utilitaire nano:

[root@test ~] nano app.js 

Insérez la logique suivante dans votre fichier, elle permettra de créer un bête serveur HTTP:

var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80); console.log('Serveur en cours d'exécution...'); 

Vous êtes maintenant prêt à tester votre application! Exécutez votre application en utilisant la commande suivante et rendez vous à l'adresse http://[votre-ip]/:

[root@test ~] node app.js Serveur en cours d'exécution... 

Votre navigateur devrait vous afficher la phrase mythique Hello World!

En conclusion

Vous possédez maintenant votre propre serveur virtuel pour exécuter ce que bon vous semble. Vous savez maintenant comment installer Node.js. Sachez que vous pouvez faire la même chose en utilisant Ruby, PHP, Python, Java, Go ou tout autre technologie. Allez-y selon vos préférences!

Avant de vous quitter, je souhaites remercier DigitalOcean qui ma gracieusement offert une instance pour la rédaction de cet article.

Documentation

Voici un peu de documentation pour creuser davantage: