AWEB - Web architecture

:hammer: Fix me
:warning: Partiels
:books: A lire
:heavy_minus_sign: Inconvénients
:heavy_plus_sign: Avantages

24/06/2020

Formation architectures

Requirements

Architecture inputs

Architecture output

Exemple de DAT sur Bein, Viparis

En pré-prod’, on doit avoir la meme config que en prod’ (sauf peut-etre au niveau des données).

Infrastructure components

Architecture components

Architectures examples

master/slave -> Architecture en read/replica.
Quand on utilise un Elastic, il en faut 3… :hammer:

On a un cluster de trois serveurs:

Different types of architecture

Basic architecture







%0



Users

Users



Firewall

Firewall



Users->Firewall





Application et Database

Application et Database



Firewall->Application et Database





Basic separate architecture







%0



Users

Users



Firewall

Firewall



Users->Firewall





Application

Application



Firewall->Application





Database

Database



Application->Database





Bien isolé:

Basic architecture with replicated database







%0



DBS

Database slave



DBM

Database master



DBM->DBS


   Replication



Users

Users



Firewall

Firewall



Users->Firewall





Application

Application



Firewall->Application





Application->DBM





Le master/slave ne peut scaler qu’en lecture:

On lit 4 fois de plus que l’on écrit.
Techniques:
- charber (on peut utiliser le calcul de tous les noeuds, bien pour la performance)

Load balancing and failover

Problems with multiple nodes

User sessions

Stateless et Stateful

Media

Cache

Double frontend, database replication :hammer:

schema







%0



Multiple frontends :hammer:

schema

Multiple frontends with read-write split :hammer:

schema

Multiple frontend with read balancing :hammer:

schema

02/07/2020

Cloud

Les 3 catégories de Cloud sont SaaS, PaaS et IaaS.
:warning:

SaaS:

PaaS:

IaaS:

Hybride Cloud

Sous-catégories de SaaS, PaaS, IaaS

Multi cloud

Architecture styles

Microservices :hammer:

Micro-services are a small amount of logic, exposing a stable API and using its own storage.:

Monolithic

Quand on fait pas du micro-service:

ESB

Entreprise Service Bus

Focus on ESB

Utilisation d’un bus d’entreprise:

ESB main features

ESB Flow Example

API Manager

16/07/2020

Data storages

Schema design

Normal forms

Les formes normales sont des règles qui dictent des choses à respecter quand on modélise une bdd en relationnel pour s’assurer que ce que l’on va faire est vraiment fiable, ACID et surtout manipulable et la modélisation est bonne pour le projet.

Parmi les formes normales les plus connues, on a:

RDBMS schema design vs noSQL schema design

RDBMS: Relational Database Management System

Quand on fait du noSQL, il faut se dire: “comment je vais exploiter la donnée ?”

RDBMS:

NoSQL:

DBMS principles

DBMS: Database Management System

Table EAV

Sans EAV:

id name price pointure
4 A 4.0
5 B 2.4 44

Avec EAV, on fait une meta-table:

Entity id Attribute id Value
4 1 A
4 2 4.0
5 1 B
5 2 2.4
5 3 44

:heavy_minus_sign: On doit avoir une table EAV par type de valeur (bool, float, int) par type de produit:

ACID

ACID properties:

Les transactions doivent etre les plus courtes possibles car elles sont cached dans la RAM.

ACID: Conclusion

CAP

CAP Theorem

Sur la Consistence, la Availability (Disponibilité) et la Partition tolerance, on ne peut en avoir que deux.

Choosing the right solution

DMBS overview

NoSQL product overview

Simple key/value: Memcached

Server commands:

On peut décider d’avoir une base clé/valeur ou quand on fait un get, toutes les infos sont là. Ou d’avoir les infos éclatées en plusieurs valeurs. Voir en fonction du besoin.

Advanced key/value: Redis

Retwis

:hammer:

Document oriented: Elastic

Column oriented: Cassandra

SSO = Single Sign-On

:hammer:
SSO, c’est un peu comme le ESB. Si on le met des le depart, ca va etre beaucoup moins cher a l’avenir. Si on doit le rajouter apres, ca va couter cher et chiant a mettre en place.

Pourquoi?

Un truc :hammer:

Sécurité

Architecture

Authentication is an abstract layer:

Types

Trust tier

Responsable pour l’authentification et la transmission aux webapps:

Brancher un SSO avec du CAS prend tout au plus un jour. Ce qui prend du temps, c’est la liaison avec des apps.

Domain cookies

Il existe le SSO du pauvre.
Quand on s’authentifie sur un site web, on a un cookie qui est posé.
Browser transmits autenthication through a domain cookie:

Centralize account informations

LDAP
Necessaire pour tout systeme SSO!:

Centralisation des infos utilisateurs c’est pas si facile. C’est ce qui prend le plus de temps.

Contraintes

Les comptes techniques avec accès large, c’est une faille de sécurité énorme.

CAS: Central Authentication Service


Misc