Le Tech radar de 2023
Quelles sont les technologies en vogue ou à éviter en 2023 ? Infrastructure management, cloud provider, langages de prog, Observability… Nos experts vous donnent leurs avis dans cet article écrit à la va vite !
Le radar
Infra management
ADOPT
-
Terraform est forcément indispensable en 2023. Bon, en réalité l’outil ne scale pas, il vaut mieux juste l’utiliser pour bootstrap vos clusters Kubernetes mais c’est le meilleur outil pour faire cela.
-
Cloud init fait toujours le café pour faire 2-3 trucs dégueulasses (qu’on sait généralement pas trop où mettre) au boot d’une machine, un indispensable aujourd’hui.
-
Ansible, à réserver pour les rares choses qui ne tournent pas sur Kubernetes (type certains VPN) et où une machine virtuelle est nécessaire.
-
Faites des CLI internes, c’est cool
TRIAL
-
Nix: la hype du moment, c’est bien cool pour gérer des machines de manière déclarative, par contre ne pas utiliser si vous n’avez pas la fibre chez vous (ou alors faut pas avoir à installer un paquet en urgence à 3H du matin parce que l’astreinte a sonnée).
HOLD
-
Puppet: c’est fait en Ruby, tout est dit.
-
Shell scripts: l’interdiction du shell pour l’administration système est en bonne voie, ne pariez pas là dessus.
-
Procedures in PDFs: un classique de nos grands groupes, on évite également.
Cloud providers
ADOPT
-
AWS:
Nobody Ever Got Fired for Buying AWS
: un classique. Pas forcément le cloud le plus user friendly (IAM, VPC peering…) mais ça marche bien, c’est très stable, et le catalogue de produit vous permettra de faire tourner les prods les plus modernes dessus. -
Exoscale: le meilleur cloud provider européen, what else ?
-
Netlify: super choix pour du site statique, avec un peu de FaaS autour si besoin.
-
Cloudflare: Le king du CDN/Anti DDoS et qui innove en permanence (cloudflare workers, R2…)
TRIAL
-
Scaleway: encore pas mal de produits moyens (par exemple l’offre Kubernetes) mais ça vaut dans le bon sens. Leurs dernières sorties (Observability, Transactional email…) sont top. On y croit.
-
Scalingo: le PaaS qui monte. On attend maintenant quelques features avancées autour du réseau et la fameuse certification SecNumCloud, à suivre de près.
-
Openstack: le boss du cloud privé.
HOLD
-
OVH: pour du bare metal avec le vrack, ça passe. Pour la partie cloud on oublie (offre disparate, outillage terrible…).
-
Clever Cloud: beaucoup trop limité en fonctionnalité pour le moment pour pouvoir être utilisé pour de nombreux projets.
-
No Cloud: aucune excuse pour ne plus faire du cloud en 2023 (j’inclus le cloud privé).
CI & CD
ADOPT
-
ArgoCD: le meilleur outil de l’écosystème Kubernetes, un indispensable qui fait le café. Vos développeurs adoreront redémarrer leurs applications via l’interface quand ça mem leak !
-
Github actions: simple et efficace
-
go race -race ./… && golangci-lint run && docker build && docker push: en réalité, est ce qu’on a vraiment besoin de plus dans une CI ? Arrêtons avec la complexité accidentelle.
TRIAL
-
Jenkins: les papys font de la résistance ! Avec du job DSL et du Jenkins pipeline partout ça fait le boulot.
-
Flux: je le mets pour faire plaisir aux copains mais l’UI d’ArgoCD est trop bonne pour que Flux puisse tenir la comparaison, désolé !
HOLD
-
Gitlab CI: qui s’est dit que c’était une bonne idée de faire un système de CI turing complet avec du YAML qui embarque du bash inline ? Pour lancer du one-liner, pourquoi pas, mais forcez vous à l’utilisez aucune autre fonctionnalités.
Programming languages
ADOPT
-
Clojure: fonctionnel, persistent & immutable data structure, super écosystème (merci la JVM): coder en Clojure augmente votre productivité, c’est prouvé !
-
Golang: le langage des dégueulasse mais l’outillage, la stdlib, l’écosystème, les perfs et le fait que ça build en binaire statique fait de lui un très bon choix pour votre prochain projet.
-
Java: je l’ai déjà dit, la JVM est probablement la meilleure plateforme pour écrire des apps en 2023 (et bientôt loom !). Les dernières évolutions de Java en font un super langage. Faites juste attention à ne pas utiliser les bloatwares comme Spring, Hibernate etc….
TRIAL
-
Kotlin: Java avec quelques features en plus, indispensable pour le dev mobile.
-
Python: franchement il était pas loin de passer dans la catégorie suivante rien qu’à cause des systèmes de build qui changent tous les deux jours. Mais si vous arrivez à build votre projet, ça fait le job, surtout en ajoutant des type hints.
-
Zig: pas stable mais prometteur.
-
Rust: difficile d’ignorer Rust en ce moment même si j’ai jamais vu un langage aussi usine à gaz/compliqué/si difficile à lire. A garder pour remplacer C mais c’est tout.
NUKE IT FROM ORBIT (only way to be sure)
Une catégorie spéciale ici !
-
Bash: la section
Shell scripts
a tout dit, à faire disparaître en urgence de votre production. -
Ruby: un langage où le moindre serveur web recevant 3 requêtes par secondes vous demandera une quantité astronomique de ressource, le tout propulsé par un framework (rails) inventé par le malin !
-
Perl: on a tous cru dans perl 6 (ou pas).
-
C/C++: même les experts mondiaux qui en font depuis 40 ans arrivent à faire des use after free, heap overflow… dans des codes type sudo/openssl. Donc inaccessible pour les moldus comme nous.
k8s infrastructure
ADOPT
-
KEDA: indispensable pour l’autoscaling depuis de nombreuses sources, comme par exemple des métriques Prometheus.
-
Cluster autoscaler: la base pour autoscale les noeuds des clusters kube.
-
Horizontal pod autoscaler: la base pour scale les pods, à coupler avec KEDA.
-
Karpenter: le futur d’AWS EKS, qui simplifiera grandement la gestion de vos noeuds Kubernetes.
TRIAL
-
Cluster API: a regarder si vous devez vous diriger si vous devez gérer de nombreux clusters kubernetes chez vous.
-
Kubevirt: gérer ses machines virtuelles de manière déclarative via Kubernetes, pourquoi pas ?
HOLD
-
Crossplane: l’idée est bonne mais au final ça fait un peu usine à gaz. Installer le provider AWS avec ses > 900 CRDs causera également quelques soucis à vos clusters.
-
Service Mesh: une complexité démentielle pour un gain qu’on cherche encore. On oublie pour le moment sauf cas particuliers.
-
MAPE K: peut être le futur de la gestion d’infrastructure mais on peine à trouver des implémentations.
Load balancers
ADOPT
-
Traefik: la star pour faire de l’ingress sur Kubernetes. Stable même avec des milliers d’ingress, bonnes perfs, des métriques sympa par défaut… à utiliser.
-
HAproxy: le choix par défaut pour du load balancing hors Kubernetes.
TRIAL
-
Envoy: le challenger, tout le monde en parle mais par contre personne ne l’a jamais vu en production.
-
Caddy: parfait pour servir des fichiers statiques.
HOLD
-
nginx: qui comprend vraiment le format de configuration de l’outil ?
-
F5: $$$
Observability
ADOPT
-
Opentelemetry: surtout pour les traces, c’est le futur ! Mettez en partout, remplacez vos logs par des events attachés aux spans !
-
Prometheus: J’ai jamais aimé le pull mais faut se rendre à l’évidence, ça marche et l’écosystème est là.
-
Loki: Parfait pour vos logs surtout si vous voulez pas payer trop cher vu que tout part sur s3.
-
Elasticsearch: le gestionnaire de logs historique, ça marche toujours bien surtout on premise.
-
Tempo: Probablement l’outil le plus intéressant pour stocker vos traces.
-
Grafana: L’outil de base (le seul ?) pour vos dashboards.
-
Thanos: Simple et à installer et vous permettra de stocker vos métriques Prometheus sur le long terme.
TRIAL
-
Victoria metrics: Prometheus mais avec de meilleures performances, à tester !
-
Timescale: stocker vos métriques dans postgresql, pourquoi pas ? A voir selon la volumétrie que vous avez.
-
Mimir: Comme Thanos, à tester notamment en cas de forte volumétrie.
-
Appclacks: le futur du blackbox monitoring il parait.
HOLD
-
statsd: plus d’actualité
-
cloudwatch: UX terrible à tous les niveaux
-
Nagios & fork: le paradigme du monitoring a complètement changé depuis cette époque.
Databases
ADOPT
-
Postgres: ça fait tout (SQL, json, full text search, timeseries comme montré précédemment…), le projet évolue à toute vitesse, un très bon choix !
-
MariaDB: marche très bien, rien à redire.
-
MongoDB: une base au format document, ça peut servir. MongoDB Atlas est pour moi la meilleure offre DB cloud du marché actuellement en terme d’UX/fonctionnalités.
-
Cassandra: la meilleure base orientée colonne, super notamment pour faire du multi data center facilement.
-
Aurora: Propriétaire mais ça scale !
-
S3: Utiliser S3 comme base de données, de plus en plus fréquent pour les logs, métriques… peut être bientôt pour le reste également ?
TRIAL
-
MySQL: Toujours très présent donc doit être cité
-
RocksDB: Ca a de grosses perfs et c’est fun !
HOLD
-
Oracle: vous savez pourquoi
Microservices
ADOPT
-
Pizza teams: On aime quand les équipes ont un ownership fort sur leurs services et domaines.
-
Contract testing: obligatoire quand on fait du microservice ?
-
Feature flags: Release early, release often: les features flags sont l’outil de base pour réaliser cela.
TRIAL
-
Keep the good old monolith: et pourquoi pas si le code est bien conçu ?
-
DDD: permet d’éviter le couplage, facilite les tests… un bon outil.
HOLD
-
Distributed monolith: un classique
-
on-demand environments: une mauvaise idée même si certains essayent de vous convaincre du contraire :D
Bus and queues
ADOPT
-
Kafka: meilleur outil depuis des années pour faire des architectures orientées événements, du stream processing, faire buffer pour vos logs/métriques… Il s’opère également très bien et est dispo partout en mode SaaS.
-
SQS: simple d’utilisation et fait le job quand on a juste besoin d’une queue de message.
TRIAL
-
NATS: Le streaming "cloud native", à voir où ça va.
-
RabbitMQ: Bien mais pénible à opérer surtout si vous ne savez pas lire les stacktraces Erlang.
HOLD
-
Sidekiq: c’est du Ruby donc ça partage ses caractéristiques.
Lean
ADOPT
-
Lean: on ne peut plus s’en passer. Des tonnes de pratiques utiles au quotidien.
-
Self service/product approach: On fournit des services internes de qualité en écoutant nos utilisateurs et en les rendant autonomes au quotidien. J’en parle ici.
-
Dev oncall on production: you build it, you run it. La qualité augmente bizarrement très vite quand on reçoit les alertes de ses propres services.
-
Blameless incidents: Les incidents c’est de la faute de tout le monde et on ensemble bosse pour que ça se ne reproduire plus.
-
No backlog: Un backlog, pourquoi faire ? De toute façon au bout de 3 mois votre backlog ne sera plus valide. Autant ne plus en avoir.
TRIAL
-
http://programming-motherfucker.com/: tout est sur le lien.
HOLD
-
Certifications: ça sert à quoi ?
-
ITIL & SAFE: bien mais seulement pour les consultants spécialisés.
-
Agile & Scrum: on veut du Lean.
Security
ADOPT
-
IAM: la base de la base, notamment sur le cloud. Dommage que ce soit pas dispo sur ce nombreux acteurs Français.
-
RBAC: si vous faites du Kubernetes, vous allez y passer.
-
Kyverno: parfait pour valider vos manifests Kubernetes, faire de l’audit, et ajouter une couche supplémentaire de sécurité.
TRIAL
-
OPA: On préfère Kyverno ici mais ça fait aussi le job, notamment si vous maitrisez Rego.
HOLD
-
Databases exposed on internet: mauvaise idée il y a 15 ans, mauvaise idée aujourd’hui.
Conclusion
A vous de faire vos choix !
Add a comment
If you have a bug/issue with the commenting system, please send me an email (my email is in the "About" section).