Fred ? Tous les serveurs ! On nous a volé tous les serveurs ! - Codeurs en Seine Meetup 2017

Fred ? Tous les serveurs ! On nous a volé tous les serveurs ! - Codeurs en Seine Meetup 2017

L’architecture serverless, que certains qualifient de “zero infrastructure”, est le nouveau modèle en vogue dans le domaine de l’architecture logicielle. Mais que ce cache-t-il derrière ce paradigme ?

Nous démystifierons ce concept afin de comprendre ensemble ses avantages, ses inconvénients et ses impacts sur la façon de concevoir et opérer des solutions.

B02669cd04301a651a15322340fc9991?s=128

Sébastien LECACHEUR

April 25, 2017
Tweet

Transcript

  1. Fred ? Tous les serveurs ! Fred ? Tous les

    serveurs ! On nous a volé tous les On nous a volé tous les serveurs ! serveurs ! Sébastien LECACHEUR Mardi 25 avril 2017 @slecache
  2. 2

  3. Agenda Agenda Présentation Pourquoi ? Comment ? Ce qu'il faut

    savoir 3
  4. C'était mieux avant... C'était mieux avant... by Ryan McGuire under

    CC0 1.0 4 . 1
  5. C'était mieux avant... C'était mieux avant... ...quand c'était simple et

    rapide ! by Ryan McGuire under CC0 1.0 4 . 1
  6. C'est le futur C'est le futur by ?? under CC0

    1.0 4 . 2
  7. C'est le futur C'est le futur VMs by ?? under

    CC0 1.0 4 . 2
  8. C'est le futur C'est le futur VMs , SCM by

    ?? under CC0 1.0 4 . 2
  9. C'est le futur C'est le futur VMs , SCM ,

    CI by ?? under CC0 1.0 4 . 2
  10. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository by ?? under CC0 1.0 4 . 2
  11. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers by ?? under CC0 1.0 4 . 2
  12. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers , images repository by ?? under CC0 1.0 4 . 2
  13. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers , images repository , µ‑services by ?? under CC0 1.0 4 . 2
  14. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers , images repository , µ‑services , service registry by ?? under CC0 1.0 4 . 2
  15. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers , images repository , µ‑services , service registry , containers clustering and orchestration by ?? under CC0 1.0 4 . 2
  16. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers , images repository , µ‑services , service registry , containers clustering and orchestration , load balancers by ?? under CC0 1.0 4 . 2
  17. C'est le futur C'est le futur VMs , SCM ,

    CI , artifact repository , containers , images repository , µ‑services , service registry , containers clustering and orchestration , load balancers , etc... WTF!? by ?? under CC0 1.0 4 . 2
  18. Coûts pas optimisés Coûts pas optimisés Parcmètre by Emma Boardman

    under CC0 1.0 4 . 3
  19. Maintenance & Maintenance & Sécurité Sécurité Black & white car

    vehicule vintage by ²tisography under CC0 1.0 4 . 4
  20. Comment remettre le Comment remettre le code code au centre

    du jeu ? au centre du jeu ? Office working app computer by Negative Space under CC0 1.0 5
  21. “Marty, it's your boss Marty! He's decided to spend half

    your IT budget on new hardware!” by Chris Bond 6 . 1
  22. Serverless Serverless 6 . 2

  23. Serverless Serverless Une architecture sans serveur ? 6 . 2

  24. Serverless Serverless Non ! 6 . 2

  25. Serverless Serverless Vous n'avez pas à vous soucier des serveurs

    ! 6 . 2
  26. F Functions unctions a as s a a S Service

    ervice 7 . 1
  27. F Functions unctions a as s a a S Service

    ervice Un service managé  7 . 1
  28. F Functions unctions a as s a a S Service

    ervice Un service managé  d'exécution de code  7 . 1
  29. F Functions unctions a as s a a S Service

    ervice Un service managé  d'exécution de code  scalable  7 . 1
  30. F Functions unctions a as s a a S Service

    ervice Un service managé  d'exécution de code  scalable  et facturé à l'usage . 7 . 1
  31. Caractéristiques Caractéristiques 7 . 2

  32. Caractéristiques Caractéristiques  fonction 7 . 2

  33. Caractéristiques Caractéristiques  fonction stateless (et pas d'accès à un

    disque persistant) 7 . 2
  34. Caractéristiques Caractéristiques  fonction stateless (et pas d'accès à un

    disque persistant)  polyglotte Node JS, Java, Python, C#, PHP, etc... 7 . 2
  35. Caractéristiques Caractéristiques  fonction stateless (et pas d'accès à un

    disque persistant)  polyglotte Node JS, Java, Python, C#, PHP, etc...  orienté événements HTTP , stockage , base de données  , ordonnanceur ⏰, flux , messages , notifications ❗, etc... 7 . 2
  36. Caractéristiques Caractéristiques  fonction stateless (et pas d'accès à un

    disque persistant)  polyglotte Node JS, Java, Python, C#, PHP, etc...  orienté événements HTTP , stockage , base de données  , ordonnanceur ⏰, flux , messages , notifications ❗, etc...  courte durée 7 . 2
  37. Du code et seulement du code ! Du code et

    seulement du code ! 7 . 3
  38. Du code et seulement du code ! Du code et

    seulement du code ! 'use strict'; module.exports.hello = (event, context, callback) => { // do some stuff... }; 7 . 3
  39. Du code et seulement du code ! Du code et

    seulement du code ! 'use strict'; module.exports.hello = (event, context, callback) => { // do some stuff... }; const response = { statusCode: 200, body: JSON.stringify({ message: 'Hello Devoxx France!', input: event, }), }; callback(null, response); 7 . 3
  40. Du code et seulement du code ! Du code et

    seulement du code ! 'use strict'; module.exports.hello = (event, context, callback) => { // do some stuff... }; const response = { statusCode: 200, body: JSON.stringify({ message: 'Hello Devoxx France!', input: event, }), }; callback(null, response); // returns { "message" : "Hello Devoxx France!", "input": {...} } 7 . 3
  41. ( (M Mobile) obile)B Backend ackend a as s a

    a S Service ervice Authentification , Firebase Authentication, AWS Cognito, ... Base de données Firebase Realtime DB, AWS DynamoDB, , ... Notifications Stockage ... 8 . 1
  42. Services tiers Services tiers Mails logs traitement d'images langage naturel

    machine learning indexation cartographie conversion de fichiers paiement analytics messages commentaires 8 . 2
  43. Les 5 principes Les 5 principes 9 . 1

  44. Les 5 principes Les 5 principes  service d'exécution de

    code à la demande 9 . 1
  45. Les 5 principes Les 5 principes  service d'exécution de

    code à la demande  fonction sans état avec un objectif unique 9 . 1
  46. Les 5 principes Les 5 principes  service d'exécution de

    code à la demande  fonction sans état avec un objectif unique  orienté événements et pipeline 9 . 1
  47. Les 5 principes Les 5 principes  service d'exécution de

    code à la demande  fonction sans état avec un objectif unique  orienté événements et pipeline  front end plus épais 9 . 1
  48. Les 5 principes Les 5 principes  service d'exécution de

    code à la demande  fonction sans état avec un objectif unique  orienté événements et pipeline  front end plus épais  forte adoption des services tiers 9 . 1
  49. *aaS *aaS *aaS layers by @WolfOliver 9 . 2

  50. PaaS 2.0 PaaS 2.0 Le PaaS dont on a toujours

    voulu ? PaaS vs Serverless debate by @swardley 9 . 3
  51. Pourquoi ? Pourquoi ? 10

  52. Aller vite Aller vite by Ryan McGuire under CC0 1.0

    11 . 1
  53. Peu d'investissements Peu d'investissements TimerCheck.io Une API de countdown 11

    . 2
  54. Peu d'investissements Peu d'investissements TimerCheck.io Une API de countdown 2,1M

    de requêtes mensuel 11 . 2
  55. Peu d'investissements Peu d'investissements TimerCheck.io Une API de countdown 2,1M

    de requêtes mensuel pour 11$ 11 . 2
  56. Cheaper, faster, more scalable Cheaper, faster, more scalable 11 .

    3
  57. Cheaper, faster, more scalable Cheaper, faster, more scalable Coca-cola -65%

    (250USD / mois / VM dont 150USD pour la gestion) 11 . 3
  58. Cheaper, faster, more scalable Cheaper, faster, more scalable Coca-cola -65%

    (250USD / mois / VM dont 150USD pour la gestion) FINRA -50% (½ trillion de validations / jour) 11 . 3
  59. Cheaper, faster, more scalable Cheaper, faster, more scalable Coca-cola -65%

    (250USD / mois / VM dont 150USD pour la gestion) FINRA -50% (½ trillion de validations / jour) Lodr 5x plus rapide et 100x moins cher 11 . 3
  60. Cheaper, faster, more scalable Cheaper, faster, more scalable Coca-cola -65%

    (250USD / mois / VM dont 150USD pour la gestion) FINRA -50% (½ trillion de validations / jour) Lodr 5x plus rapide et 100x moins cher 11 . 3
  61. First Law of Software Quality First Law of Software Quality

    e = mc2 11 . 4
  62. First Law of Software Quality First Law of Software Quality

    e = mc2 error = (more code)2 11 . 4
  63. NoOps ? NoOps ? “No server is easier to manage

    than no server” Werner Vogels 11 . 5
  64. No NoOps OpsDevs ? Devs ? “No server is easier

    to manage than no server” Werner Vogels 11 . 6
  65. Less LessNo NoOps OpsDevs Devs ! ! “No server is

    easier to manage than no server” Werner Vogels 11 . 7
  66. Comment ? Comment ? 12

  67. F Functions unctions a as s a a S Service

    ervice 13 . 1
  68. F Functions unctions a as s a a S Service

    ervice AWS Lambda 13 . 1
  69. F Functions unctions a as s a a S Service

    ervice AWS Lambda Azure Functions 13 . 1
  70. F Functions unctions a as s a a S Service

    ervice AWS Lambda IBM OpenWhisk Azure Functions 13 . 1
  71. F Functions unctions a as s a a S Service

    ervice AWS Lambda IBM OpenWhisk Azure Functions Google Cloud Functions 13 . 1
  72. F Functions unctions a as s a a S Service

    ervice AWS Lambda IBM OpenWhisk Auth0 Webtask Azure Functions Google Cloud Functions Iron.io Functions 13 . 1
  73. F Functions unctions a as s a a S Service

    ervice AWS Lambda IBM OpenWhisk Auth0 Webtask Docker, Kubernetes, ... Azure Functions Google Cloud Functions Iron.io Functions etc... 13 . 1
  74. Contenu statique Contenu statique S3 + Cloud Front Firebase hosting

    Github Pages 13 . 2
  75. Exemple simple Exemple simple 13 . 3

  76. Exemple avancé Exemple avancé 13 . 4

  77. Se lancer Se lancer 13 . 5

  78. Se lancer Se lancer Pour qui ? ☁ Déjà dans

    un Cloud Public ? Startup Prototype 13 . 5
  79. Se lancer Se lancer Pour qui ? ☁ Déjà dans

    un Cloud Public ? Startup Prototype Comment ? Une nouvelle application Penser différemment, penser événements ♡ Connaitre sa plateforme 13 . 5
  80. by Ryan McGuire under CC0 1.0 14

  81. Ce qu'il faut savoir... Ce qu'il faut savoir... Asphalt box

    color emergency by Alexas under CC0 1.0 15
  82. Cas d'usage Cas d'usage Glu entre des services Forte consommation

    CPU : traitements de fichiers Forte variabilité d'activité : applications web Forte consommation CPU et variabilité : traitements de flux, IoT Faible activité : webhooks, bots, callbacks 16 . 1
  83. nano-services nano-services “Nanoservice is an antipattern where a service is

    too fine- grained. A nanoservice is a service whose overhead (communications, maintenance, and so on) outweighs its utility” Arnon Rotem-Gal-Oz 16 . 2
  84. Ultra-distribué Ultra-distribué by Unsplash under CC0 1.0 17 . 1

  85. Dépendances aux tiers Dépendances aux tiers by Ryan McGuire under

    CC0 1.0 17 . 2
  86.  Client prisonnier Client prisonnier Paris lock love bridge by

    F4Bi CC0 1.0 17 . 3
  87. Maturité de l'éco-système Maturité de l'éco-système by JF Gagnon under

    CC0 1.0 17 . 4
  88. A la conquête du futur ! A la conquête du

    futur ! “Instagram team at Facebook HQ” by Keegan Jones / “Kevin Systrom and Mike Krieger” by Business Insider 18
  89. by Ryan McGuire under CC0 1.0 19

  90. Questions/Réponses Questions/Réponses 20