PmaControl logo PmaControl
  • Accueil
  • PmaControl
    • Agents IA 13 agents on-premise
    • Nos offres Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Clients 28+ entreprises
    • FAQ 25 questions / 7 catégories
    Bases de données
    • MariaDB 30 articles
    • MySQL 10 articles
    • Galera Cluster 6 articles
    • MaxScale 3 articles
    • ProxySQL 2 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 Urgences MariaDB & MySQL
    • Observabilité SQL Monitoring, alertes, topologie
    • Haute disponibilité Réplication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, RGPD, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Nos offres
  • Ressources
    • Documentation Guides techniques & API
    • FAQ 25 questions fréquentes
    • Témoignages Retours clients & cas d'usage
    • Blog Articles & insights
    • Roadmap Fonctionnalités à venir
    Domaines d'expertise
    • Observabilité SQL Monitoring, alertes, topologie Dot3
    • Haute disponibilité Réplication, failover, Galera
    • Sécurité & conformité Audit, RGPD, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Liens rapides
    • Wiki GitHub 26 pages — install, engine, plugins
    • Code source Repository GitHub officiel
    • Support 24×7 Urgences MariaDB & MySQL
    • Réserver une démo 30 min — architecture réelle
  • Support 24×7
  • Réserver une démo
Réserver une démo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Retour au blog

Adopter la simplicité

Publié le 9 janvier 2025 Par Sylvain ARBAUDIE
architecture simplicity opinion devops
Partager X LinkedIn Facebook Email PDF
Adopter la simplicité

L'épidémie de complexité

L'industrie du logiciel a un problème de complexité. Pas la complexité inhérente aux problèmes que nous résolvons — celle-là est inévitable. Non, je parle de la complexité que nous nous infligeons : la complexité accidentelle.

Un projet CRUD avec 10 000 utilisateurs déployé sur Kubernetes avec Istio, Prometheus, Grafana, ArgoCD, un event bus Kafka, 12 microservices, 3 bases de données différentes et un mesh service. Pourquoi ? Parce que c'est ce que Netflix fait. Parce que c'est ce qui est "cool" en 2025.

Le résultat : une équipe de 5 développeurs qui passe plus de temps à gérer l'infrastructure qu'à développer des fonctionnalités.

L'évolution des architectures

Retour en arrière. L'histoire des architectures logicielles est une histoire de complexité croissante :

Monolithe → Une application, un déploiement, une base de données. Simple, efficace, et parfaitement adapté à la majorité des projets.

SOA (Service-Oriented Architecture) → Des services communiquant via un ESB (Enterprise Service Bus). Plus flexible que le monolithe, mais l'ESB devient un point de défaillance unique et un goulot d'étranglement.

Microservices → Des services indépendants communiquant via des APIs. Théoriquement, chaque service peut être développé, déployé et scalé indépendamment. En pratique, la complexité opérationnelle est énorme.

EDA (Event-Driven Architecture) → Les services communiquent par événements asynchrones. Découplage maximal, mais debugger un flux d'événements à travers 15 services est un cauchemar.

Chaque étape a ajouté de la complexité. Et à chaque étape, l'industrie a présenté la nouvelle architecture comme la solution universelle. Spoiler : aucune architecture n'est universelle.

Le principe KISS

KISS — Keep It Simple, Stupid — est un principe qui devrait être affiché au mur de chaque bureau d'architecte logiciel.

Le principe ne dit pas "faites simple parce que vous êtes nul". Il dit : la complexité a un coût, et ce coût doit être justifié.

Chaque composant ajouté à votre architecture est :

  • Un composant de plus à maintenir
  • Un point de défaillance supplémentaire
  • Une compétence supplémentaire requise dans l'équipe
  • Un coût d'infrastructure supplémentaire
  • Un temps de debugging allongé

Kubernetes : l'exemple parfait

Kubernetes est un outil extraordinaire. Pour orchestrer des centaines de containers à l'échelle de Google, Netflix ou Spotify, c'est indispensable.

Pour déployer une application MariaDB / MySQL + PHP/Node.js avec 5 000 utilisateurs ? C'est un canon pour tuer une mouche.

Un serveur dédié (ou un VPS) avec Docker Compose fait le travail pour une fraction du coût et de la complexité :

# docker-compose.yml — c'est tout ce dont vous avez besoin
services:
  app:
    image: myapp:latest
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: mariadb:11.4
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MARIADB_ROOT_PASSWORD_FILE: /run/secrets/db_password
volumes:
  db_data:

Pas de cluster Kubernetes. Pas de Helm charts. Pas de service mesh. Pas de monitoring distribué. Juste deux containers qui font leur travail.

Les entreprises qui reviennent en arrière

Un mouvement inverse est en cours. Des entreprises quittent les architectures complexes pour revenir à des approches plus simples :

  • Basecamp/37signals a rapatrié ses workloads du cloud vers des serveurs dédiés, économisant des millions de dollars par an
  • Amazon Prime Video a migré un service de microservices vers un monolithe, réduisant les coûts de 90%
  • DHH (créateur de Ruby on Rails) milite activement pour le "cloud exit"

Ces entreprises ne sont pas technophiles. Elles ont simplement fait le calcul : la complexité coûte plus cher que la simplicité, à fonctionnalités équivalentes.

La question fondamentale

Avant de choisir une technologie, posez-vous cette question : quel problème suis-je en train de résoudre ?

Pas "quelle technologie est à la mode". Pas "qu'est-ce qui impressionnera dans mon CV". Pas "qu'est-ce que les GAFA utilisent". La question est : quel est le problème concret, et quelle est la solution la plus simple qui le résout ?

Si la réponse à "pourquoi Kubernetes ?" est "parce que c'est ce qu'on fait en 2025", vous avez un problème de décision, pas un problème technique.

Quand la complexité est justifiée

Soyons clairs : la complexité est parfois nécessaire.

Si vous gérez 10 millions d'utilisateurs avec des pics de charge 50x, Kubernetes est justifié. Si vous avez 200 développeurs sur le même produit, les microservices permettent l'autonomie des équipes. Si vous avez besoin de traiter 100 000 événements par seconde, Kafka est la bonne réponse.

Mais ces cas sont l'exception, pas la norme. 90% des applications web n'ont pas ces contraintes. Et pour ces 90%, un monolithe bien construit avec une base MariaDB / MySQL, déployé sur un serveur (ou deux pour la redondance), est non seulement suffisant — c'est optimal.

Mon manifeste pour la simplicité

  1. Commencez par un monolithe. Découpez en services quand (et seulement quand) la douleur de la monolithique dépasse la douleur de la distribution.

  2. Utilisez ce que vous connaissez. Une stack maîtrisée est plus performante qu'une stack "cool" mal maîtrisée.

  3. Comptez vos composants. Si votre architecture a plus de composants que de développeurs dans l'équipe, c'est un signal d'alarme.

  4. Mesurez le coût total. Infrastructure + temps de développement + temps de debugging + temps de formation. La complexité est rarement gratuite.

  5. Posez la question "pourquoi ?". Pour chaque composant d'infrastructure, demandez "pourquoi est-il là ?" Si la réponse est "au cas où", supprimez-le.

Conclusion

La meilleure architecture est la plus simple qui résout le problème. Pas la plus impressionnante, pas la plus à la mode, pas la plus complète. La plus simple.

Adoptez la simplicité. Votre équipe, votre budget et vos utilisateurs vous remercieront.


Cet article a été initialement publié sur Medium.

Partager X LinkedIn Facebook Email PDF
← Retour au blog

Commentaires (0)

Aucun commentaire pour le moment.

Laisser un commentaire

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Mentions légales GitHub Contact
N'attendez pas l'incident pour comprendre votre architecture. © 2014-2026 PmaControl — 68Koncept