Les microservices : Défis et solutions

Jul 17, 2024

Les microservices : Défis et solutions

Introduction

  • Importance des microservices dans le développement logiciel moderne
  • Objectif : discuter des défis et des solutions concernant les microservices
  • Orateurs et leurs expériences :
    • Globber Cossa, CEO de Turo
    • Jared, créateur de Bun
    • Pekka, CTO de Turo

Générations de microservices et distribution

  • Utilisation de plusieurs instances OBS pour résoudre les problèmes de son
  • Exigence de couches de protection pour éviter les interruptions durant les conférences
  • Conférence P99 :
    • Conférence virtuelle hautement technique sur les performances
    • Plus de 60 présentations d'ingénierie sur des sujets comme Rust, Zig, eBPF, etc.
    • Date : 23 et 24 octobre
  • Orateurs célèbres : Michael Stonebreaker, Brian Cantril, etc.
  • Importance de bien comprendre les microservices et leur application

Importance et utilité de Rust et Zig

  • Rust :
    • Langage sûr et choix populaire pour la programmation système
    • Microsoft intègre Rust dans le noyau Linux
    • Introduction de la sécurité mémoire, usage d'environ 7 millions de développeurs
    • Simplification des aspects de gestion de mémoire complexe
    • Compiler de manière croisée pour plusieurs architectures
  • Zig :
    • Convient lorsque chaque détail compte
    • Pas de comportements cachés
    • Simplification des tâches système complexes
    • Zig est très productif, utilisation dans Bun (un remplaçant moderne de Node.js)

Approximations et simplifications

  • Comparaison entre Rust et Zig sur la compilation croisée et les builds auto-contenus
  • Difficultés rencontrées par Pekka avec l'usage du comptime dans Zig
    • L'apparition de ces difficultés est souvent vue comme un problème de compétence
    • Avantage de comptime pour la génération de code statique et flexible
    • Rust intègre également des macros complexes mais puissantes
  • Utilisation de tables de recherche et capacités de compresseur de Bun grâce à Zig

Apprentissage et maîtrise de Zig

  • Importance de la communauté Discord de Zig pour l'apprentissage
  • Lecture du code source standard de Zig pour maîtriser le langage
  • Problème perçu : documentation et exemples encore insuffisants

Discussion sur les traits et interfaces

  • Absence de traits et interfaces dans Zig
  • Nécessité de créer des tables de V hand-rolled pour compenser
  • Comparaison avec l'approche plus traditionnelle de Rust avec ses macros procédurales et déclaratives
  • Problème de rapidité de compilation de Rust, quoique largement acceptable pour beaucoup de développeurs

Perspectives d'avenir du développement système

  • Mojo comme nouveau langage de programmation système
    • Créé par Chris Lattner (auteur de LLVM et Swift)
    • Syntaxe Python-friendly avec améliorations de performances significatives
  • Comparaison de Mojo, Rust et Zig à l'avenir
  • Adoption potentielle de Mojo pour de l'IA/ML et d'autres applications exigeantes en performances

Pourquoi pas C++?

  • Complexité inhérente et chevauchement des versions de compatibilité
  • Rust et Zig comme alternatives plus modernes offrant de meilleures abstractions et outils de développement
  • Développement simplifié et plus rapide avec des erreurs repérables à la compilation
  • Outils de construction modernes (Cargo pour Rust, excellent support de génération de binaires pour Zig)

Conclusion

  • Conférence P99 prometteuse pour les passionnés de performance
  • Opportunités professionnelles dans des équipes utilisant Rust et Zig
  • Reconnaissance de l'importance continue de l'amélioration des outils de développement pour ces langages.
  • Simplement passionnant de voir comment ces innovations transforment le domaine des microservices et des systèmes complexes.

Ressources et contacts

  • Site web de la conférence P99 : inscription et informations complémentaires