Architecture Informatique
Thomas Park :: développeur, Google BigQuery
1
2
3
4
Qui suis-je?
13h - 13h45 : la théorie
13h45 - 15h : la pratique
15h - 15h55 : le comparatif
1
2
3
4
Qui suis-je?
13h - 13h45 : la théorie « partie blablabla »
13h45 - 15h : la pratique
15h - 15h55 : le comparatif
1
2
3
4
Qui suis-je?
13h - 13h45 : la théorie « partie blablabla »
13h45 - 15h : la pratique « partie amusante »
15h - 15h55 : le comparatif
Un grand architect ne se développe que par la pratique
Frederick Brooks
Design of Design
Comment apprendre
l’architecture ?
BIENVENUE DANS UNE START-UP!
TON BUREAU, UN PLACARD, LITTÉRALEMENT?
Architectural Kata
Ted Neward
Quelle est une
« bonne »
architecture ?
Elle répond au cahier des charges...
...sans être trop compliquée
...sans bloquer l’avenir
Abraham
Maslow
Physiologique
Pyramide
des
Besoins
Sécurité
Appartenance et amour
Estime
Accomplissement de soi
Physiologique
Sécurité
Appartenance et amour
Accomplissement de soi
Estime
Physiologique
Sécurité
Appartenance et amour
Accomplissement de soi
Estime
Sécurité
Appartenance et amour
Physiologique
Accomplissement de soi
Estime
« Une partie très chère d’une voiture,
c’est le clignotant »
Hibernate ?
Guice ou Spring ?
Dit « FooServ » ? « BarServ » ?
Accomplissement de soi
(Pour)quoi
construire?
spécifications
Qu’est-ce qu’on construit ?
Quels problèmes à résoudre ?
Quels sont les spécifications ?
« Mon serveur doit scaler à 5.000
demandes par seconde »
POISSON-ROUGE-CAM.COM
« Si j’écris ‘a’ puis ‘b’, il faut que la
base de données donne alors ‘a’ puis ‘b’ »
comment
mesurer ?
spécifications
métriques
Quel performance faut-il ?
Quels sont les indicateurs de succès ?
Quand donner l’alarme ?
Formule Amazon
au début
Formule Amazon
au début
« 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. »
Formule Amazon
au début
au début
bien
construite
bien
composée
spécifications
métriques
composants
testabilité
Peut-elle être...
...testée ?
...éxpliquée ?
...construite petit à petit ?
Boutons sur mon mobile ?!?
J’en veux AUTANT QUE POSSIBLE!!
MÊME UNE BILLE!
Comment tester?
Traiter une commande
spécifications
métriques
composants
testabilité
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é
Modèle
Vue
Contrôleur
Data
Business-logic
Front-end
MVC 1976.
Présentation
Métier
Données
Data
Business-logic
Front-end
Trois tiers 1993.
NOUVEAU!
Arch. orientée services 2000.
Fonctionnalité A
Fonctionnalité B
Fonctionnalité C
Fonctionnalité D
Catalogue
Front-end
Commandes
Contre-fraude
Obidos
« Obidos » jusqu’à 2004-5.
1 GIG!!!
(peut pas compiler)
« Obidos » jusqu’à 2004-5.
L’architecture c’est aussi
l’infrastructure
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 ?
Service A
Service B
Service A
Service B
Service A
Service B
Service A
Service B
Service A
Service B
MULTICAST
2004-6.
Service A
Service B
MULTICAST
2004-6.
Service A
Service B
2004-6.
Service A
Service B
Pardon à M. Le Corbu...
Vers une bonne
architecture
Panier Client : spécifications
spécifications
class Panier {
var $items;
...
}
setcookie(
'panier', serialize($panier));
spécifications
spécifications
métriques
Amazon : dimensionnement
...comment savoir combien à commander ?
spécifications
métriques
spécifications
métriques
spécifications
métriques
spécifications
métriques
spécifications
métriques
spécifications
métriques
Combien de messages par serveur ?
OK bon : serveurs == 15.000 / N !
spécifications
métriques
composants
spécifications
métriques
composants
testabilité
spécifications
métriques
composants
testabilité
spécifications
métriques
composants
testabilité
Cloud LB
App Engine
Cloud LB
App Engine
Cloud DNS
Container Engine
Cloud LB
App Engine
Cloud DNS
Container Engine
Cloud PubSub
Cloud LB
App Engine
Cloud DNS
Container Engine
Cloud PubSub
Cloud Storage
Compute Engine
Cloud LB
App Engine
Cloud DNS
Container Engine
Cloud PubSub
Cloud Storage
Compute Engine
Cloud SQL
Cloud LB
App Engine
Cloud DNS
Container Engine
Cloud PubSub
Cloud Storage
Compute Engine
Cloud SQL
Cloud ML
1
2
3
4
Qui suis-je?
13h - 13h45 : la théorie
13h45 - 15h : la pratique
15h - 15h55 : le comparatif
Kata (型)
informatique
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
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é !
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 !
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
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 ?
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.
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
Pause voting
http://bit.ly/devoxx-2016-kata-vote
merci !
@thmsprk