Étape 12 : Déployer vers le nuage à l’aide d’Heroku
Maintenant qu’Accueil alerte s’occupe de développement, Let's get qu’il fonctionne sur le nuage. Il existe d’innombrables options pour le déploiement d’applications web. Sur la portée et la complexité de la maison alerte, j’ai décidé que mise en place mon propre serveur privé virtuel n’est pas la peine. Au lieu de cela, il est préférable d’opter pour un service comme Heroku, une application hôte. Pour mon échelle, palier gratuit de Heroku est plus que suffisant. Même pour le composant Redis, j’ai pu choisir un plan libre d’un des nombreux fournisseurs Redis qui fonctionnent avec Heroku.
Pourtant, il y a un peu d’effort impliqué, ce qui a trait à l’obtention de mon application légèrement modifiée de sorte qu’il peut satisfaire aux spécifications de Heroku. Les détails sont ici, mais essentiellement vous aurez besoin d’ajouter ces fichiers à votre projet de Sinatra (tous les fichiers qui suivent peuvent être téléchargé sur mon compte Github) :
config.ru: il raconte Heroku fichier qui contient l’application. Voici le contenu :
exiger '. / web'
Exécutez Sinatra::Application
Les premiers points de la ligne de web.rbet la deuxième ligne en fait exécute votre application.
Gemfile: il contient les gemmes (paquets de code ruby) qui sont requises par l’application. Heroku ressemblera à l’intérieur de ce fichier pour déterminer quel autre code il faut installer pour que votre application fonctionne. Une autre façon de regarder Gemfile est qui contient une liste de dépendances pour votre projet. Si une de ces dépendances n’est pas disponible, votre application ne fonctionnera pas. Voici ce qui est à l’intérieur de la Gemfile pour ce soft :
source « https://rubygems.org »
Ruby « 2.1.1 »
GEM « sinatra »
GEM « puma »
GEM « redis »
Tout d’abord, il définit le référentiel de la source de tout code de Gem pour être Gemcutter. Ensuite, il faut que la version Ruby 2.1.1 est utilisée pour exécuter l’application. Puis il énumère les gemmes requises : Sinatra, Puma (un serveur d’applications web Ruby grande) et Redis.
Procfile: il raconte Heroku comment démarrer votre serveur. Il n’y a qu’une seule ligne ici :
Web : puma -s rackup -p $PORT
Cette ligne indique que le « web » est le seul type de service requis (vous pourriez avoir d’autres, comme « travailleur », pour le traitement de fond), et que pour démarrer le service Heroku doit utilisent la commande qui vient après le ":".
Vous pouvez simuler ce que Heroku va faire en suivant cette séquence sur votre ordinateur de développement (tapez uniquement le test avant la flèche ; ce qui suit la flèche est seulement une description de la commande) :
$> gem install bundler — > installe Bundler, qui sait comment gérer le Gemfile.
$> Bundle installer — > Bundler traite Gemfile et installe les dépendances.
$> rackup config.ru — > Rackup est un outil permettant de traiter le fichier config.ru. Il s’agit normalement avec la dernière version de Ruby, si ce n’est pas "Installez-le comme suit : gem installer rack.
La dernière étape entraîne effectivement lancer votre application. Vous devriez voir la même sortie exacte que lorsque vous avez commencé avec ruby web.rb plus tôt. C’est la même application en cours d’exécution, juste avec la différence que la seconde méthode est comment Heroku lance l’application.
Nous sommes presque prêts à déployer cette application sur votre compte Heroku. Si vous n’en avez pas encore un, aller de l’avant pour en créer un maintenant. Ensuite, suivez le guide de démarrage rapide pour configurer votre compte et votre machine de développement local et en particulier la Heroku Toolbelt.
Le Heroku Toolbelt installe le client de ligne de commande Heroku, Git (le système de gestion de le code de source open source) et Foreman (un outil qui permet de gérer des applications basées sur le Procfile Ruby).
Une fois que vous terminé l’installation de l’Heroku Toolbelt suivant les instructions sur le site web de Heroku, suivez ces étapes pour obtenir votre application déployée (tout est tapé dans la ligne de commande, à l’intérieur du répertoire de l’application) :
$> connexion heroku — > ouverture de session sur Heroku via la ligne de commande
$> git init — > initialiser un dépôt Git pour votre application
$> Ajouter git. — > (Notez le point!) Ajouter tous les fichiers dans le répertoire courant pour le dépôt Git
$> git commit -m « init » — > commettre ces fichiers dans le référentiel, avec un nouveau message
$> heroku créer — > créer une nouvelle application sur Heroku. Heroku donnera à votre application un nom aléatoire, quelque chose comme « blazing-galaxie-997 ». Notez le nom et l’URL si vous pouvez y accéder via votre navigateur web plus tard. Cette URL ressemblera à ceci: « http://blazing-galaxy-997.herokuapp.com/ ». Vous aurez également besoin de copier le nom d’hôte (la partie « blazing-galaxie-997.herokuapp.com ») de votre nouvelle application dans la constante du site Web de votre esquisse de l’Arduino. Cela maintenant, alors vous n’oubliez plus tard.
$> addons heroku : Ajouter rediscloud — > ajoute le palier gratuit du service Rediscloud Redis à votre application. Paramètres de configuration sont automatiquement créés et mis à la disposition de votre application.
$> maître de git push heroku — > déployer votre code sur Heroku. Cela va automatiquement transférer le code, configurer toutes les dépendances sur Heroku et démarrer l’application. À la fin du processus, vous verrez quelque chose comme ceci: « http://blazing-galaxy-997.herokuapp.com déployé sur Heroku », qui signifie que votre application est maintenant en direct sur le Cloud public ! Félicitations !
Allez-y, donnez-lui un spin !