1 of 87

Architecture Informatique

Thomas Park :: développeur, Google BigQuery

2 of 87

1

2

3

4

Qui suis-je?

13h - 13h45 : la théorie

13h45 - 15h : la pratique

15h - 15h55 : le comparatif

3 of 87

1

2

3

4

Qui suis-je?

13h - 13h45 : la théorie « partie blablabla »

13h45 - 15h : la pratique

15h - 15h55 : le comparatif

4 of 87

1

2

3

4

Qui suis-je?

13h - 13h45 : la théorie « partie blablabla »

13h45 - 15h : la pratique « partie amusante »

15h - 15h55 : le comparatif

5 of 87

6 of 87

7 of 87

Un grand architect ne se développe que par la pratique

Frederick Brooks

Design of Design

8 of 87

Comment apprendre

l’architecture ?

9 of 87

BIENVENUE DANS UNE START-UP!

TON BUREAU, UN PLACARD, LITTÉRALEMENT?

10 of 87

11 of 87

Architectural Kata

Ted Neward

12 of 87

Quelle est une

« bonne »

architecture ?

13 of 87

Elle répond au cahier des charges...

...sans être trop compliquée

...sans bloquer l’avenir

14 of 87

Abraham

Maslow

15 of 87

Physiologique

Pyramide

des

Besoins

Sécurité

Appartenance et amour

Estime

Accomplissement de soi

16 of 87

Physiologique

Sécurité

Appartenance et amour

Accomplissement de soi

Estime

17 of 87

Physiologique

Sécurité

Appartenance et amour

Accomplissement de soi

Estime

18 of 87

Sécurité

Appartenance et amour

Physiologique

Accomplissement de soi

Estime

19 of 87

  1. Faire une hypothèse fausse
  • Dessiner un produit selon cette hypothèse

20 of 87

  • Faire une hypothèse fausse
  • Dessiner un produit selon cette hypothèse

« Une partie très chère d’une voiture,

c’est le clignotant »

21 of 87

Hibernate ?

Guice ou Spring ?

Dit « FooServ » ? « BarServ » ?

Accomplissement de soi

22 of 87

(Pour)quoi

construire?

spécifications

23 of 87

Qu’est-ce qu’on construit ?

Quels problèmes à résoudre ?

Quels sont les spécifications ?

24 of 87

« Mon serveur doit scaler à 5.000

demandes par seconde »

POISSON-ROUGE-CAM.COM

25 of 87

« Si j’écris a’ puis ‘b, il faut que la

base de données donne alors a’ puis ‘b »

26 of 87

comment

mesurer ?

spécifications

métriques

27 of 87

Quel performance faut-il ?

Quels sont les indicateurs de succès ?

Quand donner l’alarme ?

28 of 87

Formule Amazon

  1. Definition des résultats

au début

  1. Indicateurs clés
  2. Responsabilités

29 of 87

Formule Amazon

  • Definition des résultats

au début

  • Indicateurs clés
  • Responsabilités

« Ce sysème permet aux clients de poser des quéstions aux vendeurs de tierce personne par web et par email, sans leur éxposer au spam ou à la fraude, grace à notre système anonymisation. »

30 of 87

Formule Amazon

  • Definition des résultats

au début

  • Indicateurs clés
  • Responsabilités
  • Aucun message sera tombée par le système

  • Temps de réponse moyen des vendeurs aux clients sera < 24 heure

31 of 87

  • Definition des résultats

au début

  • Indicateurs clés
  • Responsabilités

32 of 87

bien

construite

bien

composée

spécifications

métriques

composants

testabilité

33 of 87

Peut-elle être...

...testée ?

...éxpliquée ?

...construite petit à petit ?

34 of 87

Boutons sur mon mobile ?!?

J’en veux AUTANT QUE POSSIBLE!!

MÊME UNE BILLE!

35 of 87

Comment tester?

36 of 87

Traiter une commande

spécifications

métriques

composants

testabilité

37 of 87

Traiter une commande

Verifier le log-in du client

Récupérer le contenu du panier

Vérifier l’inventaire

spécifications

métriques

composants

testabilité

38 of 87

Modèle

Vue

Contrôleur

Data

Business-logic

Front-end

MVC 1976.

39 of 87

Présentation

Métier

Données

Data

Business-logic

Front-end

Trois tiers 1993.

NOUVEAU!

40 of 87

Arch. orientée services 2000.

Fonctionnalité A

Fonctionnalité B

Fonctionnalité C

Fonctionnalité D

Catalogue

Front-end

Commandes

Contre-fraude

41 of 87

42 of 87

Obidos

« Obidos » jusqu’à 2004-5.

43 of 87

1 GIG!!!

(peut pas compiler)

« Obidos » jusqu’à 2004-5.

44 of 87

L’architecture c’est aussi

l’infrastructure

45 of 87

Le reseau : comment communiquer entre les machines ?

Le stockage : combien d’operations par seconde ?

Le déploiement : comment lancer ?

Le monitoring : comment agréger les measures ?

46 of 87

Service A

Service B

47 of 87

Service A

Service B

48 of 87

Service A

Service B

49 of 87

Service A

Service B

50 of 87

Service A

Service B

MULTICAST

2004-6.

51 of 87

Service A

Service B

MULTICAST

2004-6.

52 of 87

Service A

Service B

2004-6.

53 of 87

Service A

Service B

54 of 87

Pardon à M. Le Corbu...

Vers une bonne

architecture

55 of 87

56 of 87

Panier Client : spécifications

  • Permettre de
  • acheter plusieurs produits
  • sans avoir de compte client
  • La persistance d’un appareil à un autre n’était pas importante
  • Implementation minimal

spécifications

57 of 87

class Panier {

var $items;

...

}

setcookie(

'panier', serialize($panier));

spécifications

58 of 87

59 of 87

spécifications

métriques

Amazon : dimensionnement

  • Serveurs 3-6 mois délai de mise en œuvre

  • Databases 6-12 mois délai

...comment savoir combien à commander ?

60 of 87

spécifications

métriques

61 of 87

spécifications

métriques

62 of 87

spécifications

métriques

63 of 87

spécifications

métriques

64 of 87

spécifications

métriques

65 of 87

spécifications

métriques

Combien de messages par serveur ?

OK bon : serveurs == 15.000 / N !

66 of 87

spécifications

métriques

composants

67 of 87

spécifications

métriques

composants

testabilité

68 of 87

spécifications

métriques

composants

testabilité

69 of 87

spécifications

métriques

composants

testabilité

70 of 87

  • No Ops
  • 0 delai de mise en service
  • Extensible
  • 0 contrat, remboursement pour usage
  • Même infrastructure Google

71 of 87

Cloud LB

App Engine

72 of 87

Cloud LB

App Engine

Cloud DNS

Container Engine

73 of 87

Cloud LB

App Engine

Cloud DNS

Container Engine

Cloud PubSub

74 of 87

Cloud LB

App Engine

Cloud DNS

Container Engine

Cloud PubSub

Cloud Storage

Compute Engine

75 of 87

Cloud LB

App Engine

Cloud DNS

Container Engine

Cloud PubSub

Cloud Storage

Compute Engine

Cloud SQL

76 of 87

Cloud LB

App Engine

Cloud DNS

Container Engine

Cloud PubSub

Cloud Storage

Compute Engine

Cloud SQL

Cloud ML

77 of 87

1

2

3

4

Qui suis-je?

13h - 13h45 : la théorie

13h45 - 15h : la pratique

15h - 15h55 : le comparatif

78 of 87

Kata (型)

informatique

79 of 87

5 équipes, répartition aléatoire

Chacune recoit un kata different

14-15h :: Travail sur kata

Vous pouvez poser des questions !

15-15h55 :: Présentations kata

4m préso + 4m Q+R par équipe

1

2

3

4

80 of 87

PoemTracker

La poésie, c’est le Next Big Thing ! Créez une système qui permet aux utilisateurs de publier leurs poèmes en ligne, de suivre leurs poètes préférés, ou de devenir eux-mêmes une célébrité !

81 of 87

Selfie instantanné

Quel beau selfie ! Mais pourquoi le poster sur ton mur Facebook ? Avec notre service d’impression et de livraison en temps réel, place-le sur un mur véritable !

82 of 87

L’interview, c’est dur...pour les intervieweurs aussi ! Notre solution : créer une plate-forme pour permettre aux candidats de passer des examens préalables de coding en ligne, et d’évaluer les résultats.

Robot Recruiter

83 of 87

Comment rencontrer tes amis quand tu sors ? Avec cette app, tu peux partager tes coordonnés GPS avec un groupe. Trouver les autres n’a jamais été plus simple !

T’es où toi ?

84 of 87

Headlines

Renseignez-nous, mais vite! Qui a le temps de suivre l’actualité ? Construisons un service pour faire remonter aux utilisateurs des articles d’actualité intéressants et pertinents, selon ses intérêts et le lieu.

85 of 87

Les spécs Katas - en savoir plus !

http://bit.ly/devoxx-2016-kata-specs

Qui gagne ? Votez ici !

http://bit.ly/devoxx-2016-kata-vote

14-15h :: Travail sur kata

Vous pouvez poser des questions !

15-15h55 :: Présentations kata

4m préso + 4m Q+R par équipe

86 of 87

Pause voting

http://bit.ly/devoxx-2016-kata-vote

87 of 87

merci !

@thmsprk