SlideShare une entreprise Scribd logo
1
FRED HÉBERT
TOUT EST TERRIBLE
2
DB
Primaire
Front-End
Cron
Clients
3
DB
Primaire
DB
Secondaire
Front-End
Cron
Clients
4
Des millénaires de philosophes en
maudit
WTF?!
Temps
“Tout est terrible”
Langages en chiffres
Strings et Texte
Packets, streams, addresses IPs, re-
routage, fiabilité
Packets et Streams
Réseaux
Façon d’obtenir l’information qu’on
veut vraiment
Référence abstraites
Identificateurs
Additions, substractions, pas juste
des gates binaires avec 1 et 0
Bits et bytes
Nombres
Arrays, maps, dictionnaires, sets,
listes, arbes, ...
Accès mémoire
Structures de Données
ABSTRACTIONS COMMUNES
Sources de problèmes essentielles
5
NOMBRES À VIRGULE FLOTTANTE
nombres
6
TYPES ET

STRUCTURE
Tout nombre ne se compare pas à n’importe quel

autre nombre. L’utilisation de types peut permettre

à se protéger tant que les types sont utilisés avec

discipline.
7
TYPES ET

STRUCTURE
Tout nombre ne se compare pas à n’importe quel

autre nombre. L’utilisation de types peut permettre

à se protéger tant que les types sont utilisés avec

discipline.
8
ANATOMIE D’UN UUID
Modern Presentation
9
REPRÉSENTATION D’UN UUID
Modern Presentation
10
DB
Primaire
DB
Secondaire
Front-End
Cron
Clients
CONFLITS ET UUIDs
11
MOTS DE PASSES ET COMPARAISONS
Strings vs. Cr ypto
“N9qo8uLOickgx2ZMRZyeIjZAgcfl7p92ldGxad68”
“N9qo0bef4aebf1234a1e00fcrcfl7M62lmtxa482”
“N9qo8uLOickgx2Z34a1e00fcrcfl7M62lmtxa482”
==
==
12
MOTS DE PASSES ET COMPARAISONS
Strings vs. Cr ypto
“N9qo8uLOickgx2ZMRZyeIjZAgcfl7p92ldGxad68”
“N9qo0bef4aebf1234a1e00fcrcfl7M62lmtxa482”
“N9qo8uLOickgx2Z34a1e00fcrcfl7M62lmtxa482”
XOR
XOR
13
14
RAPIDELENT
PERFORMANCES

ACTUELLES
VITESSE APPLICATIVE
Scaling
15
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
16
RAPIDELENT
PERFORMANCES

ACTUELLES
VITESSE APPLICATIVE
Scaling
17
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
X
X
X
OK
OKOK
18
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
X
X
X
OK
OKOK
19
RAPIDELENT
PERFORMANCES

ACTUELLES
VITESSE APPLICATIVE
Scaling
SURCHARGESOUS-UTILISÉ
UTILISATION

ACTUELLE
20
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
X
X
X
OK
OKOK
X
21
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
X
X
X
OKOK
X
X
X
X
22
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
23
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
24
DB
Primaire
DB
Secondaire
Front-End
Async / Cron
Clients
Queue
25
Front-End
microservice
Clients
microservice
microservice
microservice
microservice
26
Front-End
microservice
Clients
microservice
microservice
microservice
X
OK
OK
OK
X
X
X
microservice
27
28
29
30
A
VARIATIONS DE TEMPS
Relativité
B
C
31
Front-End
microservice
Clients
microservice
microservice
microservice
32
Front-End
microservice
Clients
microservice
microservice
microservice
33
34
Fuseaux
Horaires
UTC+12:45/UTC+13:45
UTC+05:45
UTC-00:44 (avant 1972)
UTC-03:30
etc.

En 2011, les îles Samoa sont passées de UTC-11 à UTC+13, en
ôtant le 31 décembre du calendrier pour une année
seulement. (ils avaient eu le 4 juillet 2 fois en 1892).
Au brésil, le changement d’heure est voté par région!
35
“Leap Seconds”
UTC Standards
36
Calendriers
Bengalais
Chinois / Grégorien
Éthiopien
Hébreux / Grégorien
Hindou
Perse
Musulman
Et > 20 autres utilisés à des fins religieuses ou rituelles
37
CAUCHEMARS UNICODE
Normalisation et Identification
38
CAUCHEMARS UNICODE
Normalisation et Identification
impossible de distinguer latin-1 d’utf8 par observation
à configurer: db, connection db, langage, front-end, etc.
39
CAUCHEMARS UNICODE
Normalisation et Identification
octets:
UTF-8: 14, UTF-16: 12, UTF-32: 20
code unit:
UTF-8: 14, UTF-16: 6, UTF-32: 5
code points:
5 (marque combinaison)
grapheme clusters:
4
40
41
CAUCHEMARS UNICODE
Normalisation et Identification
BigBird

bigbird

ᴮᴵᴳᴮᴵᴿᴰ
Ω
Ω
42
CAUCHEMARS UNICODE
Normalisation et Identification
43
SSL/TLS
Doux jésus pourquoi?! https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf
44
SSL/TLS
Doux jésus pourquoi?! https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf
45
SSL/TLS
Doux jésus pourquoi?! https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf
46
SSL/TLS
Doux jésus pourquoi?! https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf
CLASS BREAKSUN BUG POUR TOUT RUINER
47
Pour que tout soit réellement terrible
48
Le ‘s’ dans IoT veut dire ‘sécurité’
IoT

Contenu connexe

Fred Hébert - Tout est terrible