Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5 lignes de code... en Serverless

5 lignes de code... en Serverless

Le serverless : cette ""révolution"" qui promet des économies de coûts, une productivité accrue du personnel, une résilience opérationnelle et une agilité business. Dans cette session, nous allons explorer ces promesses à travers l'évolution d'un exemple concret de seulement 5 lignes de code. Nous partirons d'une base simple, qui illustre comment le serverless répond aux besoins initiaux avec brio. Puis, au fil du temps, des changements métier et des contraintes opérationnelles vont s'imposer, en impactant de près le code, l'architecture et toute l'organisation. Rendez-vous pour explorer le potentiel et les défis dans le monde fascinant du serverless.

Wassel Alazhar

March 26, 2024
Tweet

More Decks by Wassel Alazhar

Other Decks in Technology

Transcript

  1. Le menu À la poursuite des promesses du Serverless 1.

    Serverless : Quoi ? Pourquoi ? 2. Une histoire pour illustrer • On commence simple • On fait évoluer pour répondre des contraintes 3. Takeaways Tout le code, par ici 👆 Techniques Opérationnelles Business Organisationnelles
  2. Source : https://aws.amazon.com/fr/serverless « … Des technologies qui permettent d'exécuter

    le code, de gérer les données et d'intégrer les applications, le tout sans avoir à gérer les serveurs. Les technologies sans serveur offrent la scalabilité automatique, une haute disponibilité intégrée et un modèle de facturation à l'utilisation qui permettent d'augmenter l'agilité et d'optimiser les coûts. » Serverless… C’est quoi ?
  3. « … Des technologies qui permettent d'exécuter le code, de

    gérer les données et d'intégrer les applications, le tout sans avoir à gérer les serveurs. Les technologies sans serveur offrent la scalabilité automatique, une haute disponibilité intégrée et un modèle de facturation à l'utilisation qui permettent d'augmenter l'agilité et d'optimiser les coûts. » Serverless… C’est quoi ? FAAS PAAS CAAS BAAS + Services managés Données Intégration Source : https://aws.amazon.com/fr/serverless
  4. Source : Un architect barbu inconnu « … Des technologies

    qui permettent d'exécuter le code, de gérer les données et d'intégrer les applications, le tout sans avoir à gérer les serveurs. Les technologies sans serveur offrent la scalabilité automatique, une haute disponibilité intégrée et un modèle de facturation à l'utilisation qui permettent d'augmenter l'agilité et d'optimiser les coûts. » Serverless… C’est quoi ? Le Cloud sans se prendre la tête avec les VMs et Kubernetes
  5. Promesses des plateformes Serverless • Cost Saving • Staff Productivity

    • Operational Resilience • Business Agility Source : https://aws.amazon.com/executive-insights/content/generating-business-value-with-aws-serverless
  6. Paradoxe de Jevons À mesure que les améliorations technologiques augmentent

    l'efficacité avec laquelle une ressource est employée, la consommation totale de cette ressource peut augmenter au lieu de diminuer
  7. Un développeur enthousiaste Qui veut faire les choses bien Travaille

    pour une compagnie de réservation de chambres hotels
  8. Une « function » pour tout Code d’Application Exemple en

    Python 1 2 3 4 5 Magie du Cloud provider
  9. Une « function » pour tout Et ça marche bien,

    sans se poser trop de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility
  10. Une « function » pour tout Et ça marche bien,

    sans se poser trop de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility Et ça marche tellement bien… qu’on livre de plus en plus de fonctionnalités
  11. Une « function » pour tout Et ça marche bien,

    sans se poser trop de questions… Et ça marche tellement bien… qu’on livre de plus en plus de fonctionnalités … Jusqu’à ce qu’on n’arrive plus à livrer Taille limite de l’artefact déployé Cold start Framework imposé Gestion des connexions Db et back pressure Nombre limite d’exécutions parallèle dépassé Durée max d’exécution dépassée Taille mémoire max dépassée Latence
  12. Une « function » pour tout L’étape d’après 1. Payer

    plus 2. Faire soi-même Cost Saving Staff Productivity Operational Resilience Business Agility
  13. Fundamental theorem of software engineering We can solve any problem

    by introducing an extra level of indirection …except for the problem of too many levels of indirection.
  14. Une « function » pour tout Comment en sortir ?

    Framework open-source Framework du Cloud provider Le métier
  15. Du FAAS au PAAS Code d’Application… On rajoute une couche

    Un « Transaction Script » portable Du code « jetable »
  16. Un « transaction script » portable Code d’Application… jetable Framework

    open-source Framework du Cloud provider Le métier
  17. Un « transaction script » portable Code d’Application… On enlève

    une couche ! Le métier Framework open-source On jette la dépendance au Framework du Cloud Provider
  18. Un « transaction script » portable Code d’Application… On maîtrise

    une couche Le métier Framework open-source On s’affranchit des contraintes du Framework du Cloud Provider
  19. Un « transaction script » portable Et ça marche bien,

    sans se poser trop de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility
  20. Un « transaction script » portable Et ça marche bien,

    sans se poser trop de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility Et ça marche tellement bien… qu’on fait de plus en plus de réservations !
  21. Un « transaction script » portable Et ça marche bien,

    sans se poser trop de question… Et ça marche tellement bien… qu’on fait de plus en plus de réservations ! … Jusqu’à ce qu’on commence à en perdre Partial Failures Long Running Transaction
  22. Un « transaction script » portable Ça marche tellement bien…

    Jusqu’à ce que - 💩 Le niveau de service de notre partenaire n’est pas satisfaisant - 🔐 On est coincé avec pendant un bout de temps - 💸 On perd du CA
  23. Un « transaction script » portable L’étape d’après Cost Saving

    Staff Productivity Operational Resilience Business Agility Partial Failures Long Running Transaction
  24. Fundamental theorem of software engineering We can solve any problem

    by introducing an extra level of indirection …except for the problem of too many levels of indirection.
  25. Fundamental theorem of software engineering We can solve any problem

    by introducing an extra level of indirection …except for the problem of too many levels of indirection.
  26. Notifier après transaction Et ça marche bien, sans se poser

    trop de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility
  27. Notifier après transaction Et ça marche bien, sans se poser

    trop de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility Et ça marche tellement bien… qu’on continue de rajouter des fonctionnalités
  28. Notifier après transaction Et ça marche bien, sans se poser

    trop de questions… Et ça marche tellement bien… qu’on continue de rajouter des fonctionnalités … Jusqu’à ce qu’on y arrive plus Les règles de pricing se complexifient 
 et évoluent de plus en plus vite
  29. Fundamental theorem of software engineering We can solve any problem

    by introducing an extra level of indirection …except for the problem of too many levels of indirection.
  30. Event-Driven Consumer Et ça marche bien, sans se poser trop

    de questions… • Cost Saving • Staff Productivity • Operational Resilience • Business Agility
  31. Event-Driven Consumer Jusqu’à ce que… les règles changent L’activité de

    réservation a un impact sur la tarification proposée. La validation de pricing devient une transaction qui change l’état. Booking Pricing Dépend de Dépend de
  32. Un Process Manager « Cloud Native » Stream-aligned ownership Ownership

    du canal de publication ≠ Ownership d’administration du système de messagerie
  33. Un Process Manager « Cloud Native » YAGNI Ownership du

    canal de publication ≠ Ownership d’administration du système de messagerie EN AVEZ-VOUS VRAIMENT BESOIN ?
  34. Et nos développeurs vécurent heureux avec leur cloud providers et

    déployèrent beaucoup de fonctionnalités
  35. … jusqu’à ce que Et nos développeurs vécurent heureux avec

    leur cloud providers et déployèrent beaucoup de fonctionnalités On change de cloud provider
  36. Takeaways Une pléthore de services • Le Serverless baisse la

    barrière d’accès à certains types d’architectures (dont vous n’avez peut être pas besoin) • Il faut être prêt ! Les promesses se méritent • Le Serverless récompense le bon design : • Repenser les Responsabilités et Ownerships • Pouvoir changer de service • Le Serverless récompense le Continuous Delivery Le context reste roi • Partez de votre besoin • Le raisonnement avec le catalogue de services managés limite le choix des possibles et nous couple plus au cloud provider Simplicity is the ultimate sophistication • Introduire des abstractions est important pour maitriser la complexité • Enlever des abstractions est encore plus important