Spirited September
Ingressses & VictoriaLogs
26/09/24
Un Grand Merci A
Tech for people
unlocks the future.
10,000
devoteamers in 18
countries across EMEA
+25
years of passion for tech
5,000
certifications
We believe technology with strong human values can actively
drive change for the better.
We make sure all our clients’ employees are fully on board
with the transformation journey.
We care about our people and offer them a workplace that
fuels learning, innovation and engagement.
1
2
3
le modèle plateforme
Tirer parti d'une formidable source d'innovation et de
résilience.
le modèle studio
Passer à un état d'esprit produit. Mise en place
d'équipes pluridisciplinaires en mode agile.
Nous vous permettons d’imaginer et de réaliser
un véritable changement pour devenir une
entreprise leader dans le numérique.
Sustainability
enabled by digital
Trust &
Cybersecurity
Business
Automation
Distributed
Cloud
Digital Business
& Products
Data-driven
Intelligence
our 6 playgrounds,
your most transformative topics.
a continuous innovation journey,
from strategy to
Cloud managed
services.
Operate
in the Cloud
Imagine
new digital
products
Realise
platforms
solutions
continuous
innovation
Distributed
Cloud
Data-driven
Intelligence
our 6 playgrounds,
your most transformative topics.
Digital Business
& Products
Sustainability
enabled by digital
Trust &
Cybersecurity
Business
Automation
helping you
Unleash Cloud
Potential with
Innovative
Technologies.
Gartner® a reconnu GitLab comme
leader dans le Gartner® Magic
Quadrant™ 2023 pour les plates-formes
DevOps – le premier Magic Quadrant de
la catégorie – positionné au premier
rang sur l'axe Capacité d'exécution.
“D'ici à 2024, 60% des entreprises auront
basculer de solutions multicomposants
customisées à des solutions unifiées de
delivery de valeur.
DevOps Platform
Adopter une plateforme de delivery moderne qui vous permet de
sécuriser vos livraisons applicatives
Disposer d’une solution de
développement et de CI/CD
à l’état de l’art
Nos réponses
Une méthodologie et un outillage
permettant de répondre à tout
type de migration
Rationaliser votre portefeuille de
produits d’outillage
Améliorer la productivité des
équipes et sécuriser leurs
livraisons applicatives
Vos enjeux
Une approche agile et itérative de
la construction de votre nouvelle
fondation
Un accompagnement des équipes
sur le terrain tout au long de votre
adoption
60%
Le Cloud Native, késako ?
« Les technologies natives Cloud permettent aux
organisations de créer et d’exécuter des
applications évolutives dans des environnements
modernes et dynamiques tels que des Clouds
publics, privés et hybrides. Les conteneurs, les
maillages de service, les microservices,
l’infrastructure immuable et les API déclaratives
illustrent cette approche.
Ces techniques permettent d’avoir des systèmes
faiblement couplés qui sont résilients, gérables
et observables. Combinés à une automatisation
robuste, ils permettent aux ingénieurs d’apporter
des modifications à impact élevé de manière
fréquente et prévisible avec un minimum de
peine. »
Hybrid Cloud
Automation
Microservices
& APIs
Container
Orchestration
Continuous
Deployment
Distributed
Service Mesh
9
Multi-cloud (+500) SysOps/ DevOps (+200)
Platform (+150) Emerging (+100)
Nantes
Paris
Lyon
Toulouse
Lille
Marseille
Niort
Nantes
Innovative Tech
Hybrid et multi-cloud
+1100 collaborators
+650 in Ile de France
+450 in Régions Technophile community
+2,000 certifications
+50% on our partners/ target technologies
Qui sommes-nous ?
Alexis Ducastel
Frédéric Léger
I. Présentation Devoteam
II. Pushing Ingresses to the limits
III. VictoriaLogs
IV. Quizz
V. Apéro / Buffet
Sommaire
ICI vont les slides de devoteam
Pushing ingresses to the limits
Pushing ingresses to the limits
● Combien d’ingresses peut-on créer dans un cluster kubernetes ?
● En combien de temps ?
● Un cas d’usage précis
○ Marque blanche
○ Plusieurs ingresses par client
○ Près de 3500 ingresses à créer
Pushing ingresses to the limits
● Par défaut ingress-nginx (comme tout le monde non ?)
○ Des soucis lors de la migration (on y revient)
○ Des soucis en exploitation (aussi)
○ Il faut revenir au lab !
● Protocole
○ Ingresses
■ 10 / 100 / 1000 / 10000
■ sans et avec annotations
■ sans et avec TLS activé (cert-manager LE http)
○ k8s
■ Kubernetes 1.29.3-0 via OVH offre managée
■ 2 pools
● Générique - 2 x B3-8 (2 CPU 8 GB RAM 50 GB disk)
● Ingress - 2 x B3-8 (2 CPU 8 GB RAM 50 GB disk)
○ Métriques
■ via VM
Pushing ingresses to the limits
● Les Ingress controllers
○ Ingress-nginx (helm 4.10.0)
○ Traefik 2 (helm 27.0.2)
○ Apisix (helm 2.9.0)
● L’applicatif cible
○ Chart ealenn/echo-server 0.5.0 - 4 réplicas
Pushing ingresses to the limits
Pushing ingresses to the limits
● On mesure
○ La consommation de ressources
■ Pendant la création des ingresses
■ Après la création des ingresses
○ Le taux de création des ingresses (ing/sec)
○ Métriques ETCD
● On ne mesure pas
○ La performance des applicatifs derrière les ingresses
○ La performance au run de l’ingress controller
Pushing ingresses to the limits
Ingress-Nginx
Pushing ingresses to the limits
Ingress-nginx / 1 000 / notls / no annotations / with admission
● 󰣻 Rate : 2,83 ing/sec
● ⚠ Conso de mémoire après
● ⚠ Conso de CPU pendant
● 💣 reloads
Pushing ingresses to the limits
Ingress-nginx / 1 000 / notls / no annotations / no admission
● 🕺 Rate : 32,26 ing/sec
● ⚠ Conso de mémoire après
● ⚠ Conso de CPU pendant
● 💣 reloads
Pushing ingresses to the limits
Ingress-nginx / 10 000 / notls / no annotations / no admission (#1)
● 🕺 Rate : 32,89 ing/sec
● ⚠ Conso de CPU pendant
● 👎 Conso mémoire après
● 💣 reloads
Pushing ingresses to the limits
Ingress-nginx / 10 000 / notls / no annotations / no admission (#2)
● 👍 Rate : 29,67 ing/sec
● ⚠ Conso de CPU pendant
● ⚠ Conso mémoire après
● 💣 reloads
Note: 1024Mi ⇒ 4096Mi / pod
Pushing ingresses to the limits
Ingress nginx (suite)
● Pas de différence notable avec 1 000 ou 10 000 ingresses
○ Sauf qu’avec 10 000 il faut du temps et des ressources 😀
● Des coupures de prod pendant l’ingestion
○ Essai n°1 : L’admission controller est inclus dans les mêmes pods
○ Essai n°2 : Les reloads surchargent les pods
● Pas de différence avec ou sans annotations
● Pas de différence avec ou sans TLS
● Take aways
○ workers = 4
○ Admission.enabled = false
Pushing ingresses to the limits
Sauf que…
● cert-manager + LE + HTTP validation
⇒ crée un pod par certificat
⇒ a du rate limiting https://letsencrypt.org/docs/rate-limits/
300 orders / heures
Pour 3500 ingress c’est 😐
Pushing ingresses to the limits
Traefik v2
● Même protocole
Pushing ingresses to the limits
Traefik v2 / 1 000 / notls / no annotations
● 󰣻 Rate : 9,43 ing/sec
● ⚠ Consommation CPU à la création
● 👍 Faible consommation mémoire
● 👍 Peu de reloads
Pushing ingresses to the limits
Traefik v2 / 10 000 / notls / no annotations
● 󰣻 Rate : 9,36 ing/sec
● ⚠ Consommation CPU pendant
● ⚠ Consommation mémoire après
● 👍Peu de reloads
Pushing ingresses to the limits
Apisix
● Même protocole
Pushing ingresses to the limits
Apisix / 1 000 / notls / no annotations
Pushing ingresses to the limits
Apisix / 1 000 / notls / no annotations
● 💪 Rate : 37,4 ing/sec
● ⚠ Consommation CPU des etcd pendant
● 💪 Quasi pas de consommation mémoire après
● Pas de réelle différence avec annotations ou TLS
Pushing ingresses to the limits
Apisix / 10 000 / notls / no annotations (essai n°1)
Pushing ingresses to the limits
Apisix / 10 000 / notls / no annotations
● 💪 Rate : 36,1 ing/sec
● 👎 Consommation CPU des etcd pendant
● 💪 Quasi pas de consommation mémoire après
● Pas de réelle différence avec annotations ou TLS
Pushing ingresses to the limits
Apisix / 10 000 / notls / no annotations (essai n°2)
Pushing ingresses to the limits
Apisix / 10 000 / notls / no annotations
● 😐 Le rate reste le même (limite etcd / stockage / autre)
● ⚠ Consommation CPU des etcd pendant
● 👍 Faible consommation mémoire après
Pushing ingresses to the limits
Conclusions
● Choisissez bien votre ingress-controller en fonction de votre besoin
● La performance brute des requêtes http n’est pas tout
○ Architecture
○ Fonctionnalités
● Il manque l’ingress-controller “BYO” !
○ Je sais !
● github.com/meetup-devops-aix-marseille/2024-09-ingresses
Pushing ingresses to the limits
● J’avais dit que je n’en parlais pas…
○ Mais quand même 😀
Questions
Logs
Logs
Logs Loki
ELK
Alternatives à Victoria Logs :
VictoriaLogs
Multi-tenancy
Easy MCO
UI Intégrée
BackFilling
(intégrer de vieilles données)
Multi-agents
Scale up
LogsQL
(très) Efficient
(cpu/ram/disque)
Kubernetes
friendly
Cluster
(Bientôt !)
VictoriaLogs
https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/logs-benchmark
Efficient : Et si on comparait Victoria Logs vs ELK ou Loki en live ?
VictoriaLogs
https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/logs-benchmark
Efficient : Et si on comparait Victoria Logs vs ELK ou Loki en live ?
- Open source => facilement auditable
- Simple docker-compose avec Images officielles
- Données identiques + traitement identique
- Source de vérité absolue => simple illustration par l'exemple
VictoriaLogs
Ô grands dieux de la démo, que vos câbles ne s'emmêlent pas, que le Wifi soit stable,
et que toute commande, une fois entrée, ne révèle pas l'erreur que j'ai soigneusement ignorée !
DEMO TIME !!
VictoriaLogs
Syslog
Filebeat
Fluentbit
Logstash
Vector
Promtail
Telegraf
OpenTelemetry
Victoria Logs
Grafana
(avec plugin)
Multi agents pour l'ingestion :
Le plugin doit être installé manuellement
VictoriaLogs
Exemples de requêtes en LogsQL :
A) _time:5m | sort by (_time) | limit 10
B) _time:4w _time:week_range[Mon, Fri] _time:day_range[08:00, 18:00)
C) error !kubernetes _time:1h
D) _time:5m "java.lang.Exception: Stack trace" | stream_context before 10 after 20
E) _time:5m | unpack_json
F) _time:5m | extract "username=<username>, user_id=<user_id>,"
G) _time:5m | stats by (ip:/24) count() rows | sort by (rows desc) limit 10
H) _time:5m | extract_regexp "(?P<ip>([0-9]+[.]){3}[0-9]+)" | stats by (ip:/16) count() rows
https://docs.victoriametrics.com/victorialogs/logsql-examples/
VictoriaLogs
Au cas où les dieux de la démo seraient fâchés, voici un screenshot d'un précédent bench :D
ELK vs VLogs
VictoriaLogs
Au cas où les dieux de la démo seraient fâchés, voici un screenshot d'un précédent bench :D
Loki vs VLogs
VictoriaLogs
Pour rester au courant : Virtual Meetup VictoriaMetrics
VictoriaMetrics Meetup June 2024 - VictoriaLogs Update
https://www.youtube.com/watch?v=hzlMA_Ae9_4
Prochain Meetup Online VictoriaMetrics le 3 Octobre :
https://www.youtube.com/watch?v=hzlMA_Ae9_4
meetup.com/Devops-Aix-Marseille
ibd.sh/openbar
DevOps needs you !
● Speakers pour les prochains meetups
● Volontaires
Let’s play !
Quizz !!

2024-09-26 - meetup DevOps Aix-Marseille

  • 1.
    Spirited September Ingressses &VictoriaLogs 26/09/24
  • 2.
  • 3.
    Tech for people unlocksthe future. 10,000 devoteamers in 18 countries across EMEA +25 years of passion for tech 5,000 certifications We believe technology with strong human values can actively drive change for the better. We make sure all our clients’ employees are fully on board with the transformation journey. We care about our people and offer them a workplace that fuels learning, innovation and engagement. 1 2 3
  • 4.
    le modèle plateforme Tirerparti d'une formidable source d'innovation et de résilience. le modèle studio Passer à un état d'esprit produit. Mise en place d'équipes pluridisciplinaires en mode agile. Nous vous permettons d’imaginer et de réaliser un véritable changement pour devenir une entreprise leader dans le numérique.
  • 5.
    Sustainability enabled by digital Trust& Cybersecurity Business Automation Distributed Cloud Digital Business & Products Data-driven Intelligence our 6 playgrounds, your most transformative topics. a continuous innovation journey, from strategy to Cloud managed services. Operate in the Cloud Imagine new digital products Realise platforms solutions continuous innovation
  • 6.
    Distributed Cloud Data-driven Intelligence our 6 playgrounds, yourmost transformative topics. Digital Business & Products Sustainability enabled by digital Trust & Cybersecurity Business Automation helping you Unleash Cloud Potential with Innovative Technologies.
  • 7.
    Gartner® a reconnuGitLab comme leader dans le Gartner® Magic Quadrant™ 2023 pour les plates-formes DevOps – le premier Magic Quadrant de la catégorie – positionné au premier rang sur l'axe Capacité d'exécution. “D'ici à 2024, 60% des entreprises auront basculer de solutions multicomposants customisées à des solutions unifiées de delivery de valeur. DevOps Platform Adopter une plateforme de delivery moderne qui vous permet de sécuriser vos livraisons applicatives Disposer d’une solution de développement et de CI/CD à l’état de l’art Nos réponses Une méthodologie et un outillage permettant de répondre à tout type de migration Rationaliser votre portefeuille de produits d’outillage Améliorer la productivité des équipes et sécuriser leurs livraisons applicatives Vos enjeux Une approche agile et itérative de la construction de votre nouvelle fondation Un accompagnement des équipes sur le terrain tout au long de votre adoption 60%
  • 8.
    Le Cloud Native,késako ? « Les technologies natives Cloud permettent aux organisations de créer et d’exécuter des applications évolutives dans des environnements modernes et dynamiques tels que des Clouds publics, privés et hybrides. Les conteneurs, les maillages de service, les microservices, l’infrastructure immuable et les API déclaratives illustrent cette approche. Ces techniques permettent d’avoir des systèmes faiblement couplés qui sont résilients, gérables et observables. Combinés à une automatisation robuste, ils permettent aux ingénieurs d’apporter des modifications à impact élevé de manière fréquente et prévisible avec un minimum de peine. » Hybrid Cloud Automation Microservices & APIs Container Orchestration Continuous Deployment Distributed Service Mesh
  • 9.
    9 Multi-cloud (+500) SysOps/DevOps (+200) Platform (+150) Emerging (+100) Nantes Paris Lyon Toulouse Lille Marseille Niort Nantes Innovative Tech Hybrid et multi-cloud +1100 collaborators +650 in Ile de France +450 in Régions Technophile community +2,000 certifications +50% on our partners/ target technologies
  • 10.
    Qui sommes-nous ? AlexisDucastel Frédéric Léger
  • 11.
    I. Présentation Devoteam II.Pushing Ingresses to the limits III. VictoriaLogs IV. Quizz V. Apéro / Buffet Sommaire
  • 12.
    ICI vont lesslides de devoteam
  • 13.
  • 14.
    Pushing ingresses tothe limits ● Combien d’ingresses peut-on créer dans un cluster kubernetes ? ● En combien de temps ? ● Un cas d’usage précis ○ Marque blanche ○ Plusieurs ingresses par client ○ Près de 3500 ingresses à créer
  • 15.
    Pushing ingresses tothe limits ● Par défaut ingress-nginx (comme tout le monde non ?) ○ Des soucis lors de la migration (on y revient) ○ Des soucis en exploitation (aussi) ○ Il faut revenir au lab !
  • 16.
    ● Protocole ○ Ingresses ■10 / 100 / 1000 / 10000 ■ sans et avec annotations ■ sans et avec TLS activé (cert-manager LE http) ○ k8s ■ Kubernetes 1.29.3-0 via OVH offre managée ■ 2 pools ● Générique - 2 x B3-8 (2 CPU 8 GB RAM 50 GB disk) ● Ingress - 2 x B3-8 (2 CPU 8 GB RAM 50 GB disk) ○ Métriques ■ via VM Pushing ingresses to the limits
  • 17.
    ● Les Ingresscontrollers ○ Ingress-nginx (helm 4.10.0) ○ Traefik 2 (helm 27.0.2) ○ Apisix (helm 2.9.0) ● L’applicatif cible ○ Chart ealenn/echo-server 0.5.0 - 4 réplicas Pushing ingresses to the limits
  • 18.
    Pushing ingresses tothe limits ● On mesure ○ La consommation de ressources ■ Pendant la création des ingresses ■ Après la création des ingresses ○ Le taux de création des ingresses (ing/sec) ○ Métriques ETCD ● On ne mesure pas ○ La performance des applicatifs derrière les ingresses ○ La performance au run de l’ingress controller
  • 19.
    Pushing ingresses tothe limits Ingress-Nginx
  • 20.
    Pushing ingresses tothe limits Ingress-nginx / 1 000 / notls / no annotations / with admission ● 󰣻 Rate : 2,83 ing/sec ● ⚠ Conso de mémoire après ● ⚠ Conso de CPU pendant ● 💣 reloads
  • 21.
    Pushing ingresses tothe limits Ingress-nginx / 1 000 / notls / no annotations / no admission ● 🕺 Rate : 32,26 ing/sec ● ⚠ Conso de mémoire après ● ⚠ Conso de CPU pendant ● 💣 reloads
  • 22.
    Pushing ingresses tothe limits Ingress-nginx / 10 000 / notls / no annotations / no admission (#1) ● 🕺 Rate : 32,89 ing/sec ● ⚠ Conso de CPU pendant ● 👎 Conso mémoire après ● 💣 reloads
  • 23.
    Pushing ingresses tothe limits Ingress-nginx / 10 000 / notls / no annotations / no admission (#2) ● 👍 Rate : 29,67 ing/sec ● ⚠ Conso de CPU pendant ● ⚠ Conso mémoire après ● 💣 reloads Note: 1024Mi ⇒ 4096Mi / pod
  • 24.
    Pushing ingresses tothe limits Ingress nginx (suite) ● Pas de différence notable avec 1 000 ou 10 000 ingresses ○ Sauf qu’avec 10 000 il faut du temps et des ressources 😀 ● Des coupures de prod pendant l’ingestion ○ Essai n°1 : L’admission controller est inclus dans les mêmes pods ○ Essai n°2 : Les reloads surchargent les pods ● Pas de différence avec ou sans annotations ● Pas de différence avec ou sans TLS ● Take aways ○ workers = 4 ○ Admission.enabled = false
  • 25.
    Pushing ingresses tothe limits Sauf que… ● cert-manager + LE + HTTP validation ⇒ crée un pod par certificat ⇒ a du rate limiting https://letsencrypt.org/docs/rate-limits/ 300 orders / heures Pour 3500 ingress c’est 😐
  • 26.
    Pushing ingresses tothe limits Traefik v2 ● Même protocole
  • 27.
    Pushing ingresses tothe limits Traefik v2 / 1 000 / notls / no annotations ● 󰣻 Rate : 9,43 ing/sec ● ⚠ Consommation CPU à la création ● 👍 Faible consommation mémoire ● 👍 Peu de reloads
  • 28.
    Pushing ingresses tothe limits Traefik v2 / 10 000 / notls / no annotations ● 󰣻 Rate : 9,36 ing/sec ● ⚠ Consommation CPU pendant ● ⚠ Consommation mémoire après ● 👍Peu de reloads
  • 29.
    Pushing ingresses tothe limits Apisix ● Même protocole
  • 30.
    Pushing ingresses tothe limits Apisix / 1 000 / notls / no annotations
  • 31.
    Pushing ingresses tothe limits Apisix / 1 000 / notls / no annotations ● 💪 Rate : 37,4 ing/sec ● ⚠ Consommation CPU des etcd pendant ● 💪 Quasi pas de consommation mémoire après ● Pas de réelle différence avec annotations ou TLS
  • 32.
    Pushing ingresses tothe limits Apisix / 10 000 / notls / no annotations (essai n°1)
  • 33.
    Pushing ingresses tothe limits Apisix / 10 000 / notls / no annotations ● 💪 Rate : 36,1 ing/sec ● 👎 Consommation CPU des etcd pendant ● 💪 Quasi pas de consommation mémoire après ● Pas de réelle différence avec annotations ou TLS
  • 34.
    Pushing ingresses tothe limits Apisix / 10 000 / notls / no annotations (essai n°2)
  • 35.
    Pushing ingresses tothe limits Apisix / 10 000 / notls / no annotations ● 😐 Le rate reste le même (limite etcd / stockage / autre) ● ⚠ Consommation CPU des etcd pendant ● 👍 Faible consommation mémoire après
  • 36.
    Pushing ingresses tothe limits Conclusions ● Choisissez bien votre ingress-controller en fonction de votre besoin ● La performance brute des requêtes http n’est pas tout ○ Architecture ○ Fonctionnalités ● Il manque l’ingress-controller “BYO” ! ○ Je sais ! ● github.com/meetup-devops-aix-marseille/2024-09-ingresses
  • 37.
    Pushing ingresses tothe limits ● J’avais dit que je n’en parlais pas… ○ Mais quand même 😀
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
    VictoriaLogs Multi-tenancy Easy MCO UI Intégrée BackFilling (intégrerde vieilles données) Multi-agents Scale up LogsQL (très) Efficient (cpu/ram/disque) Kubernetes friendly Cluster (Bientôt !)
  • 43.
  • 44.
    VictoriaLogs https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/logs-benchmark Efficient : Etsi on comparait Victoria Logs vs ELK ou Loki en live ? - Open source => facilement auditable - Simple docker-compose avec Images officielles - Données identiques + traitement identique - Source de vérité absolue => simple illustration par l'exemple
  • 45.
    VictoriaLogs Ô grands dieuxde la démo, que vos câbles ne s'emmêlent pas, que le Wifi soit stable, et que toute commande, une fois entrée, ne révèle pas l'erreur que j'ai soigneusement ignorée ! DEMO TIME !!
  • 46.
  • 47.
    VictoriaLogs Exemples de requêtesen LogsQL : A) _time:5m | sort by (_time) | limit 10 B) _time:4w _time:week_range[Mon, Fri] _time:day_range[08:00, 18:00) C) error !kubernetes _time:1h D) _time:5m "java.lang.Exception: Stack trace" | stream_context before 10 after 20 E) _time:5m | unpack_json F) _time:5m | extract "username=<username>, user_id=<user_id>," G) _time:5m | stats by (ip:/24) count() rows | sort by (rows desc) limit 10 H) _time:5m | extract_regexp "(?P<ip>([0-9]+[.]){3}[0-9]+)" | stats by (ip:/16) count() rows https://docs.victoriametrics.com/victorialogs/logsql-examples/
  • 48.
    VictoriaLogs Au cas oùles dieux de la démo seraient fâchés, voici un screenshot d'un précédent bench :D ELK vs VLogs
  • 49.
    VictoriaLogs Au cas oùles dieux de la démo seraient fâchés, voici un screenshot d'un précédent bench :D Loki vs VLogs
  • 50.
    VictoriaLogs Pour rester aucourant : Virtual Meetup VictoriaMetrics VictoriaMetrics Meetup June 2024 - VictoriaLogs Update https://www.youtube.com/watch?v=hzlMA_Ae9_4 Prochain Meetup Online VictoriaMetrics le 3 Octobre : https://www.youtube.com/watch?v=hzlMA_Ae9_4
  • 51.
  • 52.
    DevOps needs you! ● Speakers pour les prochains meetups ● Volontaires
  • 53.
  • 54.