Uncategorized

Peek Under the Hood of Heroku /Composants sous-jacents d’Heroku

Learning Objectives /Objectifs de formation

After completing this unit, you’ll be able to: /Une fois cette unité terminée, vous pourrez :

  • Explain what a dyno is. /Expliquer ce qu’est un dyno
  • Distinguish between languages, buildpacks, and slugs. /Différencier les langages, les buildpacks et les slugs
  • Describe how add-ons are useful, and name one that you can provision from the Heroku Elements Marketplace. /Expliquer l’utilité des compléments et nommer un complément que vous pouvez provisionner depuis Heroku Elements Marketplace
  • Identify a Heroku CLI command. /Identifier une commande de la CLI Heroku

Heroku Under the Hood /Composants de la plate-forme Heroku

So far we’ve discussed Heroku at a high level: what it is and when you’d want to use it. And we’ve walked you through deploying your first Heroku app. But what exactly is Heroku? What’s under the hood? Let’s take a look! /Nous vous avons présenté Heroku dans les grandes lignes, ses caractéristiques et pourquoi l’utiliser. Nous vous avons ensuite guidé(e) pour déployer votre première application Heroku. Mais que contient exactement Heroku ? Quels éléments composent cette plate-forme ? Examinons-la de plus près.

At its core, Heroku is a set of tools to make deploying and running custom apps as simple as it can be. To understand these tools, we need to go a bit deeper into the weeds. This unit helps you understand the pieces that make up Heroku. /Heroku est essentiellement un ensemble d’outils qui facilitent le déploiement et l’exécution d’applications personnalisées. Pour comprendre ces outils, nous devons explorer le contenu de la plate-forme. Cette unité présente les différents éléments qui composent Heroku.

Dynos /Dynos

Your application’s code runs on the Heroku Platform inside of structures that we call dynos. Dynos are not dinosaur-related, although that would really give new meaning to the term runaway process! /Le code de votre application est exécuté sur la plate-forme Heroku, dans des structures que nous appelons dynos. Les dynos ne font pas référence aux dinosaures, bien qu’ils donneraient un nouveau sens aux termes processus d’emballement !

Heroku’s dynos are just managed runtime containers with a Linux operating system underneath. These containers run the processes that allow your custom application code to run. /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.

Runtime Containers?? /Vous avez dit conteneurs d’exécution ?

Don’t be intimidated by the terminology! Containerization is just a mechanism for keeping running processes isolated from one another. Think of it like this: Containers keep the strawberry jam from mingling with the mustard in your refrigerator so that your breakfast toast always tastes right. /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é.

Runtime containers are the same thing, except they keep your code and configuration from touching any others. That way your app always tastes just how it should. / 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.

Containers also provide separation between two or more dynos running identical instances of your app, accepting client requests, and serving up responses. Even though one request might be served by Dyno A and another by Dyno B, your users won’t know the difference. /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.

All they see is your application giving them quick responses. When you scale up your app to run on several dynos (or even dozens or hundreds), you’ve got extra peace of mind. If something goes wrong with your app code on one dyno, all the others can continue serving your customers. /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 & Buildpacks /Slugs et Buildpacks

Slugs are compressed and pre-packaged copies of your application optimized for distribution to the dyno manager. When you push code to Heroku, your code is received by the slug compiler which transforms it into a slug. /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.

At the heart of the slug compiler is a collection of scripts called a buildpack that handle different languages. All applications written in Ruby, Python, Java, Clojure, Node.js, Scala, Go and PHP are implemented and compiled using buildpacks. Scaling an application then downloads and expands the slug to a dyno for execution. /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.

Custom buildpacks can be used to support languages or frameworks that are not covered by Heroku’s officially supported buildpacks. /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.

Application Traffic Control: The Heroku Router /Contrôle du trafic des applications : le routeur Heroku

The Heroku router is the key to all this multi-dyno magic. Whenever a new web dyno starts up, it registers itself with the router, letting it know which application the dyno is running. /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.

After a dyno is registered, the Heroku router begins distributing incoming requests across all the available dynos for an application, the app’s “dyno formation” — that’s what we call the size and number of dynos running your app (for example, a formation of seven Performance-L dynos). /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).

Do you find the Heroku router as fascinating as we do? To read more about how it works and what you can expect from it, check out the Heroku Dev Center documentation on routing. /Vous partagez notre fascination pour le routeur Heroku ? Pour plus d’informations sur son fonctionnement et comment l’exploiter, reportez-vous à la documentation sur l’acheminement dans le Heroku Dev Center.

Add-ons /Compléments

Add-ons are another essential piece of the Heroku platform. These elements give you the ability to add complex functionality to your application without having to manage the underlying software or infrastructure. /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.

A great example of a useful add-on is the Heroku Postgres database. Postgres is an enterprise-class database that’s fast, reliable, and has a ton of capabilities. Best of all, when you provision a Postgres database as an add-on, the underlying infrastructure is completely managed by Heroku. /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.

In addition to several Heroku-managed add-ons, third parties offer dozens of add-ons — data stores, email servers, monitoring tools, and just about anything else you can imagine. /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.

Developers can plug in back-end functionality, like the ability to send email or texts, with as little as one click. Many have free options that you can try and use as long as you like. / 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.

Check out the Add-ons page of the Heroku Elements Marketplace to explore all the add-ons you can incorporate into your Heroku Enterprise apps. /Visitez la page Add-ons dans Heroku Elements Marketplace pour explorer tous les composants que vous pouvez incorporer à vos applications Heroku Enterprise.

Leave a Reply

Your email address will not be published. Required fields are marked *