Début de traduction en anglais

This commit is contained in:
Jérémy Lecour 2022-10-01 18:32:00 +02:00 committed by Jérémy Lecour
parent cb61aeacf1
commit 32d493f2f3

View file

@ -1,30 +1,31 @@
# haproxyconf-2022
Le but de cette présentation est de montrer comment on peut utiliser HAProxy et Varnish ensemble pour accélérer et fiabiliser des sites et applications web.
The purpose of this presentation is to show how we can use HAProxy and Varnish together to make web-sites and web-apps more performant and reliable.
Nous allons commencer par les principes généraux et plonger petit-à-petit dans les détails.
We will start with the general ideas then go deeper to the details.
## Pourquoi HAProxy et Varnish ?
## Why HAProxy and Varnish ?
Il s'agit de 2 logiciels libres, performants et matures.
Ils ne sont pas les seuls dans leur catégorie, mais ils sont ceux que nous connaissons et apprécions le plus.
Ils sont facilement disponibles sur de nombreuses plateformes. Ils sont très bien documentés et soutenus par des vastes communautés.
Ils disposent aussi de possibilités de support professionnel pour les besoins les plus exigeants.
They are both open-source, mature and performance-oriented.
They are not alon inb their categories, but they are the ones we know and love the most.
They are eaisly available on many platforms. They have great documentation and vast/vibrant communities.
They both are supported by companies that offer professional support and services, while keeping the core open-source and free for everybody.
### HAProxy
HAProxy va donc servir de 1er serveur web pour le client HTTP.
Il va faire la terminaison SSL/TLS, décider si la requête doit être acceptée ou rejetée et enfin il va transmettre la requête au serveur (singulier) ou serveurs (pluriel) web finaux.
Il sert donc de proxy, avec des capacités de répartiteur de charge et de tolérance de panne.
HAProxy will be the first web-server for the HTTP client.
It will be the TLS/SSL termination. It will decide if the request is accepted or rejected,and finaly will pass the request to the upstream server or servers.
It is acting as a proxy, with load-balancing and fault-tolerance capabilities.
Pour rappeler très succinctement les principes de base de HAProxy, on peut mentionner les _frontend_, les _backend_ et le traitement intermédiaire.
To summarize briefly the basic principles of HAProxy, let's mention the _frontend_, the _backend_ and the intermediate processing.
Un frontend est un point d'écoute, en TCP ou HTTP, sur un ou plusieurs couples `IP:PORT`, avec une configuration particulière pour les logs, les timeouts, les options, les protocoles supportés.
Il peut y avoir plusieurs frontend, pour avoir des configurations et traitements différents selon les besoins ; par exemple un frontend pour un site web et un autre pour une API dédiée aux applications tierces.
A frontend is an entry point. HAProxy is listening on the TCP or HTTP layer, on one or more `IP:PORT` pairs, with options regarding logs, timeouts, supported, protocols and much more.
Many frontend can coexist in an HAProxy instance,to accomodate different use cases. For example : a traditionnal web-site in one, and an API for third-parties in another one, each with their settings and configuration.
Grace à une analyse et une compréhension complète des protocoles — TCP, mais surtout HTTP — HAProxy peut altérer la requête ou la réponse, décider de la transmettre à telle ou telle entité… Tout ça se fait de manière très optimisée.
HAProxy is able to parse and process the full TCP or HTTP request. It exposes an internal API to change the request or the response, decide how to deliver them upstream or not… in a very optimized and reliable manner.
Un backend est un point de sortie du trafic. Il doit y en avoir un pour chaque groupe de serveurs pouvant prendre un erequête en charge. S'il y a un seul serveur dans un backend, il traitera toutes les requêtes. S'il y en a plusieurs, ils se répartiront les requêtes, selon l'algorithme de répartition choisi. C'est là qu'on commence à parler de répartition de charge. Et lorsqu'on indique à HAProxy comment gérer la défaillance d'un serveur pour envoyer la requête ailleurs, ça devient de la tolérance de panne.
A backend is an exit point. There must be one for each group of final webservers. If there is only one server in a backend, it will deal with every request, but if there are more than one, HAProxy will balance the requests, according to an algorithm.
That's where we begin to mention load-balancing. And when we introduce som logic to deal with misbeahaving or missing servers, it becomes fault-tolerant.
### Varnish