Heroku - 2 Présentation Heroku v 4

Bienvenue dans ce cours d'introduction à Heroku. Avant d'entrer dans les détails, présentons l'outil et listons les prérequis nécessaires. À la fin de cette série, vous serez capable de déployer vos propres applications web et d'utiliser les fonctionnalités d'Heroku pour gagner du temps. Nous parlerons également de son architecture pour mieux comprendre comment les choses fonctionnent en interne, et terminerons avec des exemples concrets en situation réelle.

Prérequis et concept PaaS

Les prérequis sont très limités, mais il sera plus facile de suivre le cours avec une connaissance basique en Python ou Node.js (un peu de programmation au fil des exemples) et en Git (une bonne partie du travail s'effectue via Git). Maintenant, qu'est-ce qu'Heroku ? Heroku est une plateforme en tant que service, ou PaaS (Platform as a Service). Concrètement, c'est un fournisseur de services cloud qui propose hardware et logiciels via Internet pour développer des applications, sans que vous ayez à installer votre propre infrastructure.

Sans ce type de service, déployer une application en interne nécessite une équipe complète d'informaticiens : acheter et installer le matériel, configurer les systèmes d'exploitation, le middleware (bases de données, serveurs web), gérer les accès et la sécurité, intégrer aux outils de gestion existants… Avec Heroku, tout cela est pris en charge pour vous : vous vous concentrez uniquement sur votre code applicatif.

  • PaaS = Platform as a Service (infra fournie)
  • Dynos : conteneurs virtuels Linux qui exécutent votre code
  • Scaling : nombre de dynos ajustable selon la charge
  • Facturation : selon nombre et taille des dynos utilisés
  • Heroku tourne sur l'infrastructure AWS

Les applications Heroku sont exécutées dans des dynos : des conteneurs Linux isolés et virtualisés conçus pour exécuter du code selon les commandes que vous spécifiez. Les développeurs peuvent scaler leurs applications à un nombre quelconque de dynos selon la demande en ressources ou pour la réplication. Les dynos sont la brique fondamentale d'Heroku, qu'on déploie une application simple ou très sophistiquée. Heroku facture ses clients selon le nombre et la taille des dynos consommés.

Pourquoi Heroku plutôt qu'AWS directement ? Si l'on compare, Heroku tourne en fait sur AWS en interne. Choisir Heroku plutôt qu'AWS a du sens si vous n'avez pas (ou ne voulez pas avoir) une équipe DevOps pour gérer l'infrastructure : Heroku est bien plus accessible aux novices et aux startups, plus simple à apprendre et à configurer. De nombreux add-ons permettent d'ajouter des fonctionnalités en un clic. Néanmoins, Heroku coûte un peu plus cher qu'AWS, et AWS reste plus intéressant pour de l'informatique « lourde » : data mining, machine learning, etc. À bientôt pour la suite du cours.

En résumé

Cette leçon introduit Heroku comme plateforme cloud (PaaS) permettant de déployer des applications web sans gérer l'infrastructure interne. Elle explique les concepts fondamentaux : les Dynos (conteneurs virtualisés Linux), l'architecture générale, et les avantages de Heroku par rapport à AWS. La plateforme offre simplicité d'utilisation et des add-ons pour étendre les fonctionnalités, au prix d'une facturation basée sur les ressources consommées.

Points clés

  • Heroku est une plateforme PaaS (Platform as a Service) hébergée sur AWS, éliminant la nécessité de gérer l'infrastructure serveur
  • Les Dynos sont des conteneurs virtualisés basés sur Linux qui exécutent le code selon les paramètres définis par l'utilisateur
  • Prérequis : connaissances basiques en Python ou Node.js, et familiérité avec la ligne de commande
  • Heroku permet de scaler automatiquement le nombre de Dynos selon la demande en ressources
  • Heroku est plus accessible et simple pour les débutants et startups comparé à AWS, mais coûte généralement plus cher
  • Les add-ons Heroku permettent d'ajouter des fonctionnalités supplémentaires en un seul clic

Questions fréquentes

Quel est la différence entre Heroku et AWS ?

Heroku est un PaaS bâti sur AWS qui abstrait la gestion d'infrastructure, la rendant plus simple pour les débutants. AWS est une plateforme IaaS complète offrant plus de contrôle mais requérant une expertise technique plus importante. Heroku coûte généralement plus cher mais economise du temps de développement, tandis qu'AWS est plus intéressant pour des projets avec beaucoup de données ou du machine learning.

Qu'est-ce qu'un Dyno dans Heroku ?

Un Dyno est un conteneur virtualisé isolé basé sur Linux, conçu pour exécuter du code. Les développeurs peuvent scaler le nombre de Dynos selon les besoins en ressources de leur application, ce qui rend les applications hautement évolutives et flexibles.

Quels sont les prérequis pour suivre ce cours sur Heroku ?

Les prérequis sont minimes : une connaissance basique en Python ou Node.js est recommandée pour comprendre les exemples de code, et une familiarité avec la ligne de commande (Liquibase) est utile puisqu'une partie du travail se fait en terminal.