SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
WWW.HAPROXY.COM
HAProxy 1.9
WWW.HAPROXY.COM
● Release cycle
● Internal infrastructure
● Performance
● Management
● Observability
● Evolutions
Agenda
HAProxy 1.9 - What’s new
WWW.HAPROXY.COMWWW.HAPROXY.COM
Release cycle
WWW.HAPROXY.COM
● Moved from once a year release to twice: May and November
● November-ish release:
○
○
○
● May-ish release:
○
○
○
HAProxy new release cycle
Release cycle
WWW.HAPROXY.COM
HAProxy new release cycle
Release cycle
WWW.HAPROXY.COM
Adoption of a regression testing suite
Release cycle
● The Varnish Cache project developed a very nice “varnishtest” utility to test proxies
● Its author encouraged us to adopt and extend it to support haproxy
● Varnishtest (now renamed Vtest) can now test both Varnish and HAProxy
● Supports testing complex configurations and client/server/log scenarios
=> helps detecting bugs before they are released
=> will improve the code’s quality over time
=> will avoid bug fixes creating new bugs
● Still few tests now but collection quickly improving
● Oh and we now build with -Wextra -Werror!
NOTE: features backported into HAProxy Enterprise 1.8r2
WWW.HAPROXY.COMWWW.HAPROXY.COM
Internal
infrastructure
WWW.HAPROXY.COM
● Internal native representation of the HTTP protocol(s)
● Agnostic to the HTTP version
● Still considered experimental when 1.9 is released
BENEFITS:
● Easy manipulation of any representation of the HTTP protocol
● Maintain HTTP transport AND semantics from end to end
● HTTP/2 on both sides :-)
● Higher performance than translating 2 to 1 or 1 to 2
● No more memmove() of the whole buffer to insert/remove/replace headers
WARNING: modifying HTTP buffer in Lua without using HAProxy functions is now prohibited
HTX: any HTTP version
Internal Infrastructure
WWW.HAPROXY.COM
HTTP processing in 1.8 (and 1.9 legacy mode)
Internal Infrastructure
WWW.HAPROXY.COM
HTTP processing in 1.8 (and 1.9 legacy mode)
Internal Infrastructure
WWW.HAPROXY.COM
HTTP processing in 1.9 (HTX mode)
Internal Infrastructure
WWW.HAPROXY.COM
HTTP processing in 1.9 (HTX mode)
Internal Infrastructure
WWW.HAPROXY.COM
● Move from a callback-oriented model to async events with completion callbacks
● One of the riskiest short-term change, but will save many bugs over the long term
BENEFITS:
● Lower send() latency (almost never polls, saves one poll loop)
● Less round-trips between layers, better I-cache efficiency
● More straightforward usage in upper layers
● No more code duplication in the lower layers
● Better / finer error reporting in lower layers
Connection management rework
Internal Infrastructure
WWW.HAPROXY.COM
Connection: example of H2 Rx processing in 1.8
Internal Infrastructure
WWW.HAPROXY.COM
Connection: example of H2 Rx processing in 1.9
Internal Infrastructure
WWW.HAPROXY.COM
Connection: 1.8 vs 1.9, side by side
Internal Infrastructure
WWW.HAPROXY.COM
● Multiple requests can share a same multiplexed connection (HTTP/2)
● The same connection can be reused by other requests
● Per-server connection pool maintained even after the last client closes
● Pool size adjusted based on the workload
BENEFITS:
● Server side keep-alive in almost every situation
● higher performance when clients closes connections
● Shorter response time when the server is far away from HAProxy
Server side connection pooling
Internal Infrastructure
WWW.HAPROXY.COM
● New internal buffers API can use any area for storage, no more “in” vs “out”
● New buffers will allow multi-size buffers later
● Merge of buffers and chunks API, dividing code implementations by 3!
● Logs may be emitted from lower layers now (e.g. HTTP/2)
● Removal of old synchronization point for a less intrusive rendez-vous point
Misc
Internal Infrastructure
WWW.HAPROXY.COMWWW.HAPROXY.COM
Performance
WWW.HAPROXY.COM
● 1.8 was the introduction of thread support
● 1.9 made them much more scalable :
○
○
○
○
○
BENEFITS:
● Almost as scalable as with multi-process now!
Threading improvements
Performance
WWW.HAPROXY.COM
● CPUs with variable frequencies turn to low-power mode while sleeping in poll()
● I/O events take hundreds of microseconds to bring the CPU back to full speed
● Busy polling prevents the CPU from sleeping at all
BENEFITS:
● Much lower latencies at the expense of much higher power consumption!
NOTES:
● be certain to properly map the CPUs!
● Real CPU usage may only be measured by haproxy, via the “Idle” value
Busy polling
Performance
WWW.HAPROXY.COM
● New set-priority-class and set-priority-offset actions for http-request and
tcp-content rules
● Applies to queues, hence when a server’s maxconn is reached
● Class defines priorities, offset defines relative delays
● Also available in Lua
BENEFITS:
● Give priority to some traffic
● Fine SLA management on service time
NOTE: features backported into HAProxy Enterprise 1.8r2
Traffic classification and prioritization
Performance
WWW.HAPROXY.COM
● Can cache any object size (1/256 of total cache size or max-object-size)
● Set Age header field
BENEFITS:
● Smoother caching of “big” objects
NOTE: features backported into HAProxy Enterprise 1.8r2
HTTP cache improvements
Performance
WWW.HAPROXY.COM
● The connection load balancing on SPOE was improved to support smarter load
balancing, very similar to the leastconn algorithm
BENEFITS:
● Much lower average and maximum processing latencies when using pipelining
SPOE improvements
Performance
WWW.HAPROXY.COMWWW.HAPROXY.COM
Management
Click to add text
WWW.HAPROXY.COM
● Server class
○
● TXN class
○
● New StickTable class
○
Lua
Management
WWW.HAPROXY.COM
● master CLI (configurable directly with -S in the program arguments)
● Access to old processes (proxied commands)
BENEFITS:
● Ability to access an old process which is in a leaving state
● Only one CLI listener for all processes
● ‘show proc’ displays the state of the processes
Master / Worker
Management
WWW.HAPROXY.COM
● Send logs to a fd in a non-blocking way
● Counter on lost log lines
BENEFITS:
● Useful when debugging
● Smoother integration with container environments
NOTE: features backported into HAProxy Enterprise 1.8r2
Logs to fd / std(out|err)
Management
WWW.HAPROXY.COM
● short: message containing level between angle brackets and the
text of the log line
● raw: message containing only the text of the log line
BENEFITS:
● Native integration with Containers (raw format)
● Native integration with journalctl (short format)
New log formats
Management
WWW.HAPROXY.COM
● Ability to provide a payload to a CLI command
● Allow “uploading” content or run multiple commands at once
● Applies to add map and set ssl ocsp-response for now
NOTE: features backported into HAProxy Enterprise 1.8r2
CLI: payload
Management
WWW.HAPROXY.COM
● “random” load balancing algorithm (NOTE: features backported into
HAProxy Enterprise 1.8r2)
● Significant reduction of memory usage for error captures
● Support for populating a resolvers section from resolv.conf
Misc
Management
WWW.HAPROXY.COMWWW.HAPROXY.COM
Observability
WWW.HAPROXY.COM
● Stolen CPU time (hypervisor, other processes)
● Time spent between 2 polls (minimum latency)
● Processing time and latency (to improve configuration)
BENEFITS:
● Detect when latency is induced by other processes sharing the CPU
● Figure how much of a request service time is due to other requests
● Figure how much service time a request inflicts to other requests
New timers
Observability
WWW.HAPROXY.COM
New timers: stolen time measurements
Observability
WWW.HAPROXY.COM
New timers: latency measurements
Observability
WWW.HAPROXY.COMWWW.HAPROXY.COM
Evolution
WWW.HAPROXY.COM
● New keyword to configure SSL cipher suite for TLS 1.3
(because openssl requires it, also backported in 1.8)
● Support of ALPN on the server side
TLS
Evolution
WWW.HAPROXY.COM
● Comparable to “HTTP/2 push” for HTTP/1 & 2 (RFC8297)
● Sends “Link: rel=preload” URLs very early (request parsing)
BENEFITS:
● Supports multiple servers
● No waste of bandwidth transfering already cached objects
● Cascadable, supports HTTP/1 and 2
WARNING:
● Not implemented in all browsers now (silently discarded)
NOTE: feature backported into HAProxy Enterprise 1.8r2
HTTP 103 / “Early Hints” status code
Evolution
WWW.HAPROXY.COM
QUESTION &
ANSWER

Contenu connexe

Tendances

NGINX Installation and Tuning
NGINX Installation and TuningNGINX Installation and Tuning
NGINX Installation and TuningNGINX, Inc.
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX, Inc.
 
Networking in Java with NIO and Netty
Networking in Java with NIO and NettyNetworking in Java with NIO and Netty
Networking in Java with NIO and NettyConstantine Slisenka
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in KubernetesRafał Leszko
 
NGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best PracticesNGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best PracticesNGINX, Inc.
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
OFI libfabric Tutorial
OFI libfabric TutorialOFI libfabric Tutorial
OFI libfabric Tutorialdgoodell
 
[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilionAkihiro Suda
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could dosarahnovotny
 
Keeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultKeeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultMitchell Pronschinske
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXNGINX, Inc.
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOSAkihiro Suda
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Codemotion
 
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du DébutantAlphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du DébutantAlphorm
 
使用 laravel 的前與後
使用 laravel 的前與後使用 laravel 的前與後
使用 laravel 的前與後Shengyou Fan
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링OpenStack Korea Community
 

Tendances (20)

NGINX Installation and Tuning
NGINX Installation and TuningNGINX Installation and Tuning
NGINX Installation and Tuning
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
 
Networking in Java with NIO and Netty
Networking in Java with NIO and NettyNetworking in Java with NIO and Netty
Networking in Java with NIO and Netty
 
Distributed Locking in Kubernetes
Distributed Locking in KubernetesDistributed Locking in Kubernetes
Distributed Locking in Kubernetes
 
NGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best PracticesNGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best Practices
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
OFI libfabric Tutorial
OFI libfabric TutorialOFI libfabric Tutorial
OFI libfabric Tutorial
 
Jenkins
JenkinsJenkins
Jenkins
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion
 
What is Docker
What is Docker What is Docker
What is Docker
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
 
Keeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultKeeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp Vault
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
 
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du DébutantAlphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
 
使用 laravel 的前與後
使用 laravel 的前與後使用 laravel 的前與後
使用 laravel 的前與後
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 

Similaire à HAProxy 1.9

Streaming and Messaging
Streaming and MessagingStreaming and Messaging
Streaming and MessagingXin Wang
 
Redpanda and ClickHouse
Redpanda and ClickHouseRedpanda and ClickHouse
Redpanda and ClickHouseAltinity Ltd
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stackRed Hat
 
Boyan Krosnov - Building a software-defined cloud - our experience
Boyan Krosnov - Building a software-defined cloud - our experienceBoyan Krosnov - Building a software-defined cloud - our experience
Boyan Krosnov - Building a software-defined cloud - our experienceShapeBlue
 
Maintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queuesMaintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queuesPaolo Corti
 
Towards constrained semantic web
Towards constrained semantic webTowards constrained semantic web
Towards constrained semantic web☕ Remy Rojas
 
HBase Coprocessors @ HUG NYC
HBase Coprocessors @ HUG NYCHBase Coprocessors @ HUG NYC
HBase Coprocessors @ HUG NYCmlai
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogJoe Stein
 
cache concepts and varnish-cache
cache concepts and varnish-cachecache concepts and varnish-cache
cache concepts and varnish-cacheMarc Cortinas Val
 
Four Ways to Improve ASP .NET Performance and Scalability
 Four Ways to Improve ASP .NET Performance and Scalability Four Ways to Improve ASP .NET Performance and Scalability
Four Ways to Improve ASP .NET Performance and ScalabilityAlachisoft
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific DashboardCeph Community
 
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...Ontico
 
ChinaNetCloud Training - HAProxy Intro
ChinaNetCloud Training - HAProxy IntroChinaNetCloud Training - HAProxy Intro
ChinaNetCloud Training - HAProxy IntroChinaNetCloud
 
A Tour of Apache Kafka
A Tour of Apache KafkaA Tour of Apache Kafka
A Tour of Apache Kafkaconfluent
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introductionkanedafromparis
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18Derek Downey
 

Similaire à HAProxy 1.9 (20)

Streaming and Messaging
Streaming and MessagingStreaming and Messaging
Streaming and Messaging
 
Redpanda and ClickHouse
Redpanda and ClickHouseRedpanda and ClickHouse
Redpanda and ClickHouse
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
 
slides (PPT)
slides (PPT)slides (PPT)
slides (PPT)
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stack
 
Boyan Krosnov - Building a software-defined cloud - our experience
Boyan Krosnov - Building a software-defined cloud - our experienceBoyan Krosnov - Building a software-defined cloud - our experience
Boyan Krosnov - Building a software-defined cloud - our experience
 
Maintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queuesMaintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queues
 
Towards constrained semantic web
Towards constrained semantic webTowards constrained semantic web
Towards constrained semantic web
 
HBase Coprocessors @ HUG NYC
HBase Coprocessors @ HUG NYCHBase Coprocessors @ HUG NYC
HBase Coprocessors @ HUG NYC
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
 
cache concepts and varnish-cache
cache concepts and varnish-cachecache concepts and varnish-cache
cache concepts and varnish-cache
 
Four Ways to Improve ASP .NET Performance and Scalability
 Four Ways to Improve ASP .NET Performance and Scalability Four Ways to Improve ASP .NET Performance and Scalability
Four Ways to Improve ASP .NET Performance and Scalability
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard
 
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed techno...
 
ChinaNetCloud Training - HAProxy Intro
ChinaNetCloud Training - HAProxy IntroChinaNetCloud Training - HAProxy Intro
ChinaNetCloud Training - HAProxy Intro
 
A Tour of Apache Kafka
A Tour of Apache KafkaA Tour of Apache Kafka
A Tour of Apache Kafka
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
 
Red Hat Storage Roadmap
Red Hat Storage RoadmapRed Hat Storage Roadmap
Red Hat Storage Roadmap
 
Red Hat Storage Roadmap
Red Hat Storage RoadmapRed Hat Storage Roadmap
Red Hat Storage Roadmap
 

Dernier

Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01KreezheaRecto
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 

Dernier (20)

(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 

HAProxy 1.9

  • 2. WWW.HAPROXY.COM ● Release cycle ● Internal infrastructure ● Performance ● Management ● Observability ● Evolutions Agenda HAProxy 1.9 - What’s new
  • 4. WWW.HAPROXY.COM ● Moved from once a year release to twice: May and November ● November-ish release: ○ ○ ○ ● May-ish release: ○ ○ ○ HAProxy new release cycle Release cycle
  • 6. WWW.HAPROXY.COM Adoption of a regression testing suite Release cycle ● The Varnish Cache project developed a very nice “varnishtest” utility to test proxies ● Its author encouraged us to adopt and extend it to support haproxy ● Varnishtest (now renamed Vtest) can now test both Varnish and HAProxy ● Supports testing complex configurations and client/server/log scenarios => helps detecting bugs before they are released => will improve the code’s quality over time => will avoid bug fixes creating new bugs ● Still few tests now but collection quickly improving ● Oh and we now build with -Wextra -Werror! NOTE: features backported into HAProxy Enterprise 1.8r2
  • 8. WWW.HAPROXY.COM ● Internal native representation of the HTTP protocol(s) ● Agnostic to the HTTP version ● Still considered experimental when 1.9 is released BENEFITS: ● Easy manipulation of any representation of the HTTP protocol ● Maintain HTTP transport AND semantics from end to end ● HTTP/2 on both sides :-) ● Higher performance than translating 2 to 1 or 1 to 2 ● No more memmove() of the whole buffer to insert/remove/replace headers WARNING: modifying HTTP buffer in Lua without using HAProxy functions is now prohibited HTX: any HTTP version Internal Infrastructure
  • 9. WWW.HAPROXY.COM HTTP processing in 1.8 (and 1.9 legacy mode) Internal Infrastructure
  • 10. WWW.HAPROXY.COM HTTP processing in 1.8 (and 1.9 legacy mode) Internal Infrastructure
  • 11. WWW.HAPROXY.COM HTTP processing in 1.9 (HTX mode) Internal Infrastructure
  • 12. WWW.HAPROXY.COM HTTP processing in 1.9 (HTX mode) Internal Infrastructure
  • 13. WWW.HAPROXY.COM ● Move from a callback-oriented model to async events with completion callbacks ● One of the riskiest short-term change, but will save many bugs over the long term BENEFITS: ● Lower send() latency (almost never polls, saves one poll loop) ● Less round-trips between layers, better I-cache efficiency ● More straightforward usage in upper layers ● No more code duplication in the lower layers ● Better / finer error reporting in lower layers Connection management rework Internal Infrastructure
  • 14. WWW.HAPROXY.COM Connection: example of H2 Rx processing in 1.8 Internal Infrastructure
  • 15. WWW.HAPROXY.COM Connection: example of H2 Rx processing in 1.9 Internal Infrastructure
  • 16. WWW.HAPROXY.COM Connection: 1.8 vs 1.9, side by side Internal Infrastructure
  • 17. WWW.HAPROXY.COM ● Multiple requests can share a same multiplexed connection (HTTP/2) ● The same connection can be reused by other requests ● Per-server connection pool maintained even after the last client closes ● Pool size adjusted based on the workload BENEFITS: ● Server side keep-alive in almost every situation ● higher performance when clients closes connections ● Shorter response time when the server is far away from HAProxy Server side connection pooling Internal Infrastructure
  • 18. WWW.HAPROXY.COM ● New internal buffers API can use any area for storage, no more “in” vs “out” ● New buffers will allow multi-size buffers later ● Merge of buffers and chunks API, dividing code implementations by 3! ● Logs may be emitted from lower layers now (e.g. HTTP/2) ● Removal of old synchronization point for a less intrusive rendez-vous point Misc Internal Infrastructure
  • 20. WWW.HAPROXY.COM ● 1.8 was the introduction of thread support ● 1.9 made them much more scalable : ○ ○ ○ ○ ○ BENEFITS: ● Almost as scalable as with multi-process now! Threading improvements Performance
  • 21. WWW.HAPROXY.COM ● CPUs with variable frequencies turn to low-power mode while sleeping in poll() ● I/O events take hundreds of microseconds to bring the CPU back to full speed ● Busy polling prevents the CPU from sleeping at all BENEFITS: ● Much lower latencies at the expense of much higher power consumption! NOTES: ● be certain to properly map the CPUs! ● Real CPU usage may only be measured by haproxy, via the “Idle” value Busy polling Performance
  • 22. WWW.HAPROXY.COM ● New set-priority-class and set-priority-offset actions for http-request and tcp-content rules ● Applies to queues, hence when a server’s maxconn is reached ● Class defines priorities, offset defines relative delays ● Also available in Lua BENEFITS: ● Give priority to some traffic ● Fine SLA management on service time NOTE: features backported into HAProxy Enterprise 1.8r2 Traffic classification and prioritization Performance
  • 23. WWW.HAPROXY.COM ● Can cache any object size (1/256 of total cache size or max-object-size) ● Set Age header field BENEFITS: ● Smoother caching of “big” objects NOTE: features backported into HAProxy Enterprise 1.8r2 HTTP cache improvements Performance
  • 24. WWW.HAPROXY.COM ● The connection load balancing on SPOE was improved to support smarter load balancing, very similar to the leastconn algorithm BENEFITS: ● Much lower average and maximum processing latencies when using pipelining SPOE improvements Performance
  • 26. WWW.HAPROXY.COM ● Server class ○ ● TXN class ○ ● New StickTable class ○ Lua Management
  • 27. WWW.HAPROXY.COM ● master CLI (configurable directly with -S in the program arguments) ● Access to old processes (proxied commands) BENEFITS: ● Ability to access an old process which is in a leaving state ● Only one CLI listener for all processes ● ‘show proc’ displays the state of the processes Master / Worker Management
  • 28. WWW.HAPROXY.COM ● Send logs to a fd in a non-blocking way ● Counter on lost log lines BENEFITS: ● Useful when debugging ● Smoother integration with container environments NOTE: features backported into HAProxy Enterprise 1.8r2 Logs to fd / std(out|err) Management
  • 29. WWW.HAPROXY.COM ● short: message containing level between angle brackets and the text of the log line ● raw: message containing only the text of the log line BENEFITS: ● Native integration with Containers (raw format) ● Native integration with journalctl (short format) New log formats Management
  • 30. WWW.HAPROXY.COM ● Ability to provide a payload to a CLI command ● Allow “uploading” content or run multiple commands at once ● Applies to add map and set ssl ocsp-response for now NOTE: features backported into HAProxy Enterprise 1.8r2 CLI: payload Management
  • 31. WWW.HAPROXY.COM ● “random” load balancing algorithm (NOTE: features backported into HAProxy Enterprise 1.8r2) ● Significant reduction of memory usage for error captures ● Support for populating a resolvers section from resolv.conf Misc Management
  • 33. WWW.HAPROXY.COM ● Stolen CPU time (hypervisor, other processes) ● Time spent between 2 polls (minimum latency) ● Processing time and latency (to improve configuration) BENEFITS: ● Detect when latency is induced by other processes sharing the CPU ● Figure how much of a request service time is due to other requests ● Figure how much service time a request inflicts to other requests New timers Observability
  • 34. WWW.HAPROXY.COM New timers: stolen time measurements Observability
  • 35. WWW.HAPROXY.COM New timers: latency measurements Observability
  • 37. WWW.HAPROXY.COM ● New keyword to configure SSL cipher suite for TLS 1.3 (because openssl requires it, also backported in 1.8) ● Support of ALPN on the server side TLS Evolution
  • 38. WWW.HAPROXY.COM ● Comparable to “HTTP/2 push” for HTTP/1 & 2 (RFC8297) ● Sends “Link: rel=preload” URLs very early (request parsing) BENEFITS: ● Supports multiple servers ● No waste of bandwidth transfering already cached objects ● Cascadable, supports HTTP/1 and 2 WARNING: ● Not implemented in all browsers now (silently discarded) NOTE: feature backported into HAProxy Enterprise 1.8r2 HTTP 103 / “Early Hints” status code Evolution