Composants sous-jacents d’Heroku
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Expliquer ce qu'est un dyno
- Différencier les langages, les buildpacks et les slugs
- Expliquer l'utilité des compléments et nommer un complément que vous pouvez provisionner depuis Heroku Elements Marketplace
- Identifier une commande de la CLI Heroku
Composants de la plate-forme Heroku
Nous vous avons présenté Heroku dans les grandes lignes, ses caractéristiques et pourquoi l’utiliser. Vous avez également découvert différentes méthodes de déploiement. Mais que contient exactement Heroku ? Quels éléments composent cette plate-forme ? Voyons cela !
Dynos
Le code de votre application est exécuté sur la plate-forme Heroku, dans des structures que nous appelons dynos. Les dynos d'Heroku sont simplement des conteneurs d'exécution gérés qui reposent sur un système d'exploitation Linux. Ces conteneurs exécutent les processus qui permettent d'exécuter le code de votre application personnalisée.
Vous avez dit conteneurs d'exécution ?
Ne vous laissez pas intimider par la terminologie ! La conteneurisation est un simple mécanisme qui permet d'isoler les processus d'exécution les uns des autres. Ils sont comparables aux pots qui empêchent la confiture de fraise de se mélanger à la moutarde dans votre réfrigérateur, précaution indispensable pour éviter un petit déjeuner musclé. Les conteneurs d'exécution jouent le même rôle, ils séparent votre code et votre configuration des autres. Ainsi, votre application conserve ses propres caractéristiques.
Les conteneurs permettent également de séparer deux dynos ou plus qui exécutent des instances identiques de votre application, acceptent des requêtes de clients et servent des réponses. Une requête peut être servie par un Dyno A et une autre par un Dyno B, mais vos utilisateurs ne voient pas la différence. Ils ne voient que votre application qui leur apporte une réponse rapide. Pour plus de sécurité et de tranquillité, vous pouvez élargir votre application afin de l'exécuter sur plusieurs dynos (des douzaines ou des centaines). Si un problème survient avec le code de votre application dans un dyno, tous les autres peuvent continuer à servir vos clients.
Slugs et Buildpacks
Les Slugs sont des copies compressées et préempaquetées de votre application, optimisées pour la distribution par le gestionnaire de dynos. Lorsque vous envoyez automatiquement (push) un code à Heroku, il est réceptionné par le compilateur de slug qui le transforme en slug. Au cœur du compilateur de slug, une collection de scripts appelés buildpacks gère les différents langages. Toutes les applications écrites en Ruby, Python, Java, Clojure, Node.js, Scala, Go et PHP sont implémentées et compilées à l’aide de buildpacks. La mise à l'échelle d'une application télécharge et agrandit le slug en dyno pour l'exécution.
Des buildpacks personnalisés peuvent être utilisés pour prendre en charge les langages ou les infrastructures qui ne sont pas couverts par les buildpacks officiellement pris en charge par Heroku.
Contrôle du trafic des applications : le routeur Heroku
Le routeur Heroku est la clé de la magie des dynos multiples. Dès qu'un nouveau dyno Web démarre, il s'enregistre dans le routeur pour lui indiquer l'application qu'il exécute. Une fois le dyno enregistré, le routeur Heroku commence à distribuer les requêtes entrantes à tous les dynos disponibles pour une application, que nous appelons la « formation dyno » (désigne la taille et le nombre de dynos qui exécutent votre application, par exemple, une formation de sept dynos Performance-L).
Vous partagez notre fascination pour le routeur Heroku ? Pour plus d’informations sur son fonctionnement et son utilisation, reportez-vous à la documentation sur l’acheminement dans le Heroku Dev Center.
Compléments
Les compléments sont une autre partie essentielle de la plate-forme Heroku. Ces éléments permettent d'ajouter des fonctionnalités complexes à votre application sans avoir à gérer le logiciel ni l'infrastructure sous-jacents.
La base de données Heroku Postgres est un excellent exemple de complément très utile. Postgres est une base de données d'entreprise rapide, fiable et dotée de nombreuses capacités. De plus, lorsque vous provisionnez une base de données Postgres en tant que complément, l'infrastructure sous-jacente est entièrement gérée par Heroku.
Outre les multiples compléments gérés par Heroku, vous avez accès à des douzaines de compléments tiers : des magasins de données, des serveurs de messagerie, des outils de surveillance, et la plupart des éléments dont vous avez besoin. Les développeurs peuvent connecter en un seul clic une fonctionnalité back-end, par exemple la possibilité d'envoyer des e-mails ou des SMS. De nombreux compléments offrent des options gratuites que vous pouvez essayer et utiliser autant que vous le souhaitez.
Visitez la page Add-ons dans Heroku Elements Marketplace pour explorer tous les composants que vous pouvez incorporer à vos applications Heroku Enterprise.