technologies du web - architectures matérielles et logicielles
DESCRIPTION
Support de formationTRANSCRIPT
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Technologies Web
Architectures matérielle/logicielle — 9 heures
Pôle universitaire Léonard de Vinci
ILV : MBA MCI Full/Part Time
Année 2013/2014
Progr. MCI Full Time – 9 h
1. Fondamentaux de l’informatique (3 h)
2. Architecture des ordinateurs (1 h 30)
3. Architecture des réseaux (1 h 30)
4. Architecture des applications (1 h)
5. Cloud computing (1 h)
6. Évaluation (questionnaire) (1 h)
Progr. MCI Part Time – 8 h
1. Fondamentaux de l’informatique (2 h)
2. Architecture des ordinateurs (1 h)
3. Architecture des réseaux (1 h)
4. Architecture des applications (2 h)
5. Cloud computing (1 h)
6. Évaluation (questionnaire) (1 h)
Bibliographie
[Za-1] P. ZANELLA, Y. LIGIER, Architecture et technologie
des ordinateurs, 4e édition, DUNOD, 2011.
[Ta-1] A. TANENBAUM, D. WETHERALL, Réseaux, 5e édition,
PEARSON, 2011.
[Ro-1] , P. ROQUES, UML par la pratique, 2e édition,
EYROLLES, 2011.
[Bu-1] R. BUYYA, J. BROBERG, A. GOSCINSKI, CLOUD
COMPUTING (Principles and Paradigms), WILEY, 2011.
Groupes de travail
Organisme Fonction
ICANN Gestion des DNS et attribution des adresses IP
IETF Spécification des protocoles (rédaction des RFCs)
IRTF Spécification des protocoles (rédaction des RFCs)
W3C Spécification des standards du web (patterns et langages)
WHATWG Spécification du langage HTML
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Partie I Fondamentaux
Informa[tion] + [robo]tique = Informatique
1. Fondamentaux de l’informatique
2. Architecture des ordinateurs
3. Architecture des réseaux
4. Architecture des applications
5. Cloud computing
Programme sur fondamentaux
Principaux composants de l’ordinateur
Types d’information/opération
Représentation externe vs interne
Encodage vs codage
Principaux composants
Processeur, aussi appelé CPU*
Espaces** mémoire
Unités périphériques
Clavier
Souris
Écran
Imprimante, etc.
* Central Processing Unit. ** Plusieurs types d’espace mémoire.
Fonction du processeur
Le processeur sert à exécuter les
instructions d’un programme. (Un
programme en cours d’exécution s’appelle
un processus.)
—
Fonction de la mémoire
Les espaces mémoire (mémoire de masse,
mémoire centrale et registres) servent à
stocker des programmes, des instructions
ou des données.
—
Fonction des périphériques
Les périphériques (clavier, écran, etc.)
permettent d’interagir avec l’ordinateur. La
communication périphériques-ordinateur est
assurée par le système d’exploitation.
—
Trois types d’information
Instructions
Données non numériques
Données numériques
Composition d’une instruction
Les instructions associent un code opération
et des opérandes. Ces opérandes désigne
l’ensemble des paramètres impliqués dans
l’exécution d’une opération.
Illustration. — L’addition de deux nombres
fait intervenir une opération – l’addition – et
deux opérandes.
Trois types d’opérations
Opérations d’écriture et de lecture
Opérations logiques
Opérations arithmétiques
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Représentation externe/interne
Codage et adressage de l’information
Problématique du stockage
Fixer la capacité de stockage
Fixer la taille des espaces de stockage
Adresser les espaces de stockage
Parabole du parking
Dimensionnement et adressage des espaces de stockage
Quatre unités de base
Unité de stockage physique
Unité élémentaire d’information
Unité logique d’information
Unité d’information adressable
1
2
3
4
5
6
Commentaire
1. Chaque cellule contient un condensateur et un transistor.
2. Chaque cellule fait l’objet d’une représentation logique (chiffre binaire).
3. Ce chiffre binaire (bit) constitue l’unité d’information la plus élémentaire.
4. L’unité d’information élémentaire sert à former l’unité logique d’information*.
5. L’unité logique d’information est couplée à une adresse.
6. L’unité d’information adressable associe adresse et unité logique.
* L’unité logique porte sur un ou plusieurs octets.
Bit (binary digit)
Le bit est un chiffre binaire qui prend soit la
valeur 0, soit la valeur 1 ; il constitue l’unité
d’information la plus élémentaire : toute
information fait l’objet d’un codage faisant
appel au bit.
—
Octet (byte)
L’octet représente un jeu de huit bits. Ces
huit bits constituent l’unité logique
d’information « de base » : toute information
fait l’objet d’un codage sur un ou plusieurs
octets.
—
Mot mémoire
Le mot mémoire constitue l’unité
d’information adressable : il associe unité
logique d’information, dont la fonction est
d’« héberger » une information codée en
binaire, et une adresse.
—
Écriture et lecture
Les opérations d’écriture et de lecture
portent obligatoirement sur un mot mémoire
qui associe à chaque unité logique
d’information une adresse, facilitant ainsi
l’accès aux informations enregistrées.
—
Exemples de codage
Caractère Y : 01011001
Chiffre 1 : 00000001
Instruction addition : 10000001
Taille logique des mots
Nombre de bits
1 bit
2 bits
3 bits
…
8 bits =1 octet (byte)
…
n bits
Nombre d’informations
21 informations
22 informations
23 informations
…
28 informations
…
2n informations
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Codage de l’information
Cas des entiers
Exemple de codage
65 en base décimale i.e. 6510
se traduit par
01000001 en binaire i.e. 010000012.
—
Explication
65 en base décimale i.e. 6510
est égal à
6 x 101 + 5 x 100
donc 65 en notation condensée.
—
Explication (suite)
65 en base binaire
est égal à
0+(1 x 26)+0+0+0+0+0+(1x20)
donc 01000001 en notation condensée.
—
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Codage de l’information
Cas des caractères
Standard Unicode
Le standard Unicode se définit comme un
système de codage de caractères universel
associant représentation externe, point de
code et représentation interne.
—
Cas de la lettre A
Représentation externe : A
Point de code (hex.*) : 0041
Représentation interne (bin.) : 01000001
* Les points de code sont représentés en base hexadécimale (base 16).
Écran BabelMap (I)
Écran BabelMap (II)
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Encodage de l’information
Contrôle des erreurs, cryptage et compression
Problématique de l’ENcodage
Sûreté[-intégrité] des données*
Sécurité des données
Optimisation des ressources
* NON corruption des données.
ENcodage - enjeux
CONTRÔLE DES ERREURS SÛRETÉ DES DONNÉES
COMPRESSION/DÉCOMPRESSION OPTIMISATION DES RESSOURCES
CRYPTAGE/DÉCRYPTAGE SÉCURITÉ DES DONNÉES
Ce qu’il faut retenir
Instructions et données sont
nécessairement représentées par une
séquence de chiffres binaires (0/1).
—
Conséquence
Il faut distinguer les langages de haut
niveau*, qui permettent de définir le code
source des applications, et les langages de
bas niveau, utilisés pour définir le code
machine*.
—
* PHP, Java, C++, C, etc. ** Code soumis au processeur avant exécution.
À savoir
Le code source est transformé en code
machine par des logiciels qu’on appelle des
traducteurs ; ces traducteurs font appel à
des langages de haut niveau* et des
langages de bas niveau**.
—
* Langage C le plus souvent. ** Langage d’assemblage aussi appelé assembleur.
Traduction en deux temps
Première traduction : le compilateur
transforme le code source en bytecode en
faisant abstraction des attentes du
processeur.
Deuxième temps : l’assembleur, aussi
appelé machine virtuelle, traduit le bytecode
en code machine*.
* Le code machine dépend spécifiquement du processeur cible.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Partie II Architecture des ordinateurs
CPU, mémoires et OS
1. Fondamentaux de l’informatique
2. Architecture des ordinateurs
3. Architecture des réseaux
4. Architecture des applications
5. Cloud computing
Programme sur architecture
Architecture du processeur
Hiérarchie des mémoires
Rôle du système d’exploitation
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Architecture du processeur
Unité de commande et unité arithm. et logique
Unité centrale : RAM + CPU
[Za-1] : « Présentation générale », p.26.
Unité de commande
Principaux dispositifs
Compteur ordinal [CO] (registre)
Registre instruction [RI] (registre)
Décodeur (automate)
Séquenceur (automate)
Compteur ordinal [CO]
Le compteur ordinal est un registre (cellule
mémoire) dont la fonction est d’enregistrer
l’ADRESSE de la prochaine instruction à
exécuter.
—
Registre instruction [RI]
Le registre instruction est un registre (cellule
mémoire) dont la fonction est d’enregistrer
l’INSTRUCTION à exécuter.
—
Décodeur
Le décodeur est un automate dont la
fonction est de déterminer l’OPÉRATION À
EXÉCUTER à partir du code [opération]
fournie par le registre instruction.
—
Illustration. — Le code 101 active la sortie
n°5 (8 sorties possibles en tout).
* Rappel. — Les instructions associent code opération et opérandes.
Séquenceur
Le séquenceur est un automate dont la
fonction est de COMMANDER le chargement
des opérandes [dans l’accumulateur] et
l’exécution de l’opération.
—
Remarque. — Les opérandes sont d’abord
chargées dans le registre mot.
Unité arithmétique et logique
Principaux dispositifs
Accumulateur (registre)
Unité de calcul (de 50 à 250 opérations)
Transferts des données
Opérations logiques
Opérations arithmétiques
Etc.
Accumulateur
L’accumulateur est un registre (cellule
mémoire) dont la fonction est d’enregistrer
les OPÉRANDES des opérations à exécuter.
—
Cycle de recherche du CPU
[Za-1] : « Unité centrale de traitement », p.193.
Circulation/transfert des informations initié par le CPU
Cycle d’exécution du CPU
[Za-1] : « Unité centrale de traitement », p.194.
Circulation/transfert des informations initié par le CPU
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Hiérarchie des mémoires
Typologie ; rapport vitesse/capacité associé
Typologie des mémoires
Registres
Mémoire centrale i.e. RAM, mémoire vive
Mémoire de masse, de stockage i.e. ROM
Hiérarchie des mémoires
[Za-1] : « Mémoires », p. 154.
Rapport vitesse/capacité
[Za-1] : « Mémoires », p. 185.
Parabole du bureau
Illustration du rapport vitesse/capacité
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Rôle du système d’exploitation
Exploitation des ressources et virtualisation
Exploitation des ressources
Gestion des processus*
Gestion de la mémoire centrale
Gestion des entrées/sorties
Gestion des fichiers
* Allocation du CPU, planification et interruption.
Pile OS
Mémoire
Entrées/Sorties
Processus
Fichiers
Pile système d’exploitation
Virtualisation
En introduisant un niveau d’abstraction entre
l’utilisateur et la machine (interface
graphique ou commande en ligne), le
système d’exploitation est devenu une
machine virtuelle.
—
Exemples de commandes Linux
login
logout
mkdir (make directory)
vi (editor)
cp (copy)
chmod (change mode)
OS orientés Web
Multitâche/transactionnel
Multiutilisateur
Sûr (conçu pour fonctionner 24h/24h)
Commentaire. — UNIX, Windows Server et
Linux sont les trois systèmes d’exploitation
les plus utilisés*.
* Source : « Usage share of operating systems », wiikipedia.org.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Système d’exploitation
Gestion de la mémoire
Gestion des adresses
Partition : espace mémoire faisant
intervenir une borne inférieure et une borne
supérieure.
Réallocation dynamique : l’adresse
effective des instructions est recalculée par
addition de l’adresse de base* et du
déplacement.
* Borne inférieure de la partition allouée au programme.
Partitions de taille variable
[Za-1] : « Systèmes d’exploitation », p. 370.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Partie III Architecture des réseaux
Architecture matérielle et protocolaire
1. Fondamentaux de l’informatique
2. Architecture des ordinateurs
3. Architecture des réseaux
4. Architecture des applications
5. Cloud computing
Programme sur réseaux
Architecture matérielle
Architecture des protocoles
Terminologie du protocole HTTP
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Architecture matérielle
Typologie des réseaux et des équipements
Typologie des réseaux
E/S (entrées/sorties) : 1 m
PAN (Personal Area Network) : 10 m
LAN (Local Area Network) : 1 km
WAN (Wide Area Network)
Typologie des équipements*
Concentrateur (hub)
Commutateur (switch)
Routeur
* Ne sont présentés que les équipements les plus communs.
Fonction du concentrateur
Le concentrateur est un équipement qui sert
à interconnecter plusieurs ordinateurs à
l’échelle du LAN*.
—
Exemple. — 50 PC sur un même étage.
* Les ordinateurs ainsi connectés forment un « segment ».
Fonction du commutateur
Le commutateur est un équipement qui sert
à interconnecter plusieurs segments à
l’échelle du LAN*.
—
Exemple. — 150 PC répartis sur trois
étages-: les trois concentrateurs sont
connectés au commutateur.
* Le commutateur permet d’optimiser la gestion des flux d’information.
Fonction du routeur
Les routeurs sont des équipement qui
servent à interconnecter plusieurs LAN à
l’échelle du WAN.
—
Remarque. — Internet : association de
« inter » et « network » (le réseau des
réseaux) puis troncation.
Couplage LAN-WAN
routeur
PC
PC
hub switch
switch
hub
PC
PC switch
serveur
serveur
routeur
PC
PC
hub switch
switch
hub
PC
PC switch
serveur
serveur
sous-réseau de communication
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Architecture des protocoles
Principes de fonctionnement
Problématique des réseaux
Dissocier les données et les entêtes*
Structurer les entêtes
Encapsuler/désencapsuler les données
* Informations utilisées par le réseau pour acheminer les données.
Parabole de la lettre
Encapsulation, routage et désencapsulation de la lettre
Modèle OSI
Les logiciels de réseaux se réfèrent à un
modèle d’architecture qu’on appelle le
modèle OSI (Open Systems
Interconnection). Ce modèle fait intervenir
sept couches/strates/niveaux.
—
Couches du modèle OSI
Logiciels de réseaux
À chacune des couches du modèle OSI
correspond une couche logicielle constituée
de logiciels de réseaux spécialisés.
—
Couche logicielle vs protocole et PDU
La couche logicielle génère des PDU (messages) en faisant
référence à un protocole
Protocole
Les protocoles désignent un ensemble de
règles destinées à standardiser le
séquencement et le format des informations
contenues dans les « messages » générés
par les logiciels de réseaux.
—
Parabole de l’enveloppe
Protocole : nom du destinataire, numéro et nom de rue etc.
Types de PDU*
Message : PDU des niveaux 6/7
Segment : PDU des niveaux 4/5
Datagramme : PDU du niveau 3
Frame/paquet : PDU du niveau 2
* Protocol Data Unit.
Principe d’encapsulation
Données Entête Niveau N+ 1
Niveau N Données Entête
Données Entête Niveau N-1
PDU N+ 1
PDU N
PDU N-1
Chemin physique vs logique
[Za-1] : « Réseaux », p. 326.
Exemples de protocoles
HTTP : présentation/appl. (niveaux 6/7)
TCP : transport/session (niveaux 4/5)
IP : réseau (niveaux 3)
Ethernet : liaison (niveau 2)
Protocoles appl. : niveaux 6/7
Protocole Spécification Mise à jour
FTP 1971 1985
SMTP 1982 2008
HTTP 1990 1999
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Partie IV Architecture des applications
Typologie des architectures et langages
1. Fondamentaux de l’informatique
2. Architecture des ordinateurs
3. Architecture des réseaux
4. Architecture des applications
5. Cloud computing
Programme arch. et langages
Modèle d’architecture client-serveur
Modèle d’architecture 3-Tiers
Modèles d’architecture du Web 2.0
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Modèle d’arch. client-serveur
Externalisation/distribution des ressources
Architecture client/serveur
Externalisation des ressources i.e. données/programmes
Message Definition
“The basic unit of HTTP communication,
consisting of a structured sequence of
octets.”
—
Client and User Agent Definition
Client : “a program that establishes
connections for the purpose of sending
requests.”
User agent : “the client which initiates a
request. These are often browsers, spiders
(web-traversing robots).”
Server Definition
“An application program that accepts
connections in order to service requests by
sending back responses.”
—
Format des URL
"http:" "//"
host [":" port]
[abs_path]
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Modèle d’architecture 3-Tiers
Éclatement des couches logicielles
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>CV de M. Dupont</title>
</head>
<body>
<h1>M. Dupont</h1>
<h2>Expérience</h2><p>[…]</p>
<h2>Compétences</h2><p>[…]</p>
<h2>Diplômes</h2><p>[…]</p>
</body>
</html> Ap
p.
sta
tiq
ue CV-dupont.html
Architecture 3-Tiers
1. Couche présentation
2. Couche application-métier
3. Couche persistance des données
Couche présentation* :
Couche logicielle responsable de la mise en
page, de la typographie et de la navigation
du site.
—
Exemples de langages : (X)HTML et CSS
notamment, mais aussi, Javascript.
* Les scripts sont exécutés par le poste client.
Couche application* :
Couche logicielle responsable de la logique
métier et des services techniques : gestion
des sessions et sécurité notamment.
—
Exemples de langages applicatifs : PHP,
Java, etc.
* Les scripts sont exécutés par le serveur.
Couche données* :
Couche logicielle responsable de l’accès
aux données et de la persistance des
données.
—
Exemple de langage de requête : SQL.
* Les requêtes sont exécutées par le serveur.
Parabole des couches logicielles
Prise de commande, préparation et approvisionnement
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Plate-forme vs arch. logicielle
Plate-forme Lamp
Plate-forme logicielle
La notion de plate-forme désigne l’ensemble
des composants logiciels (système
d’exploitation et environnement d’exécution)
qui supportent le fonctionnement d’une
application.
—
Ex. : plate-forme Lamp
Système d’exploitation Linux
Serveur HTTP Apache
Serveur de base de données MySQL
Composant applicatif PHP (Zend Engine*)
* Moteur d’exécution des scripts codés en PHP.
Intégration du composant PHP
Option 1 : le composant PHP est un
module, c’est-à-dire une extension du
serveur HTTP Apache.
Option 2 : le composant PHP n’est pas
utilisé comme module du serveur HTTP
Apache. Dans ce cas, le couplage Apache-
PHP est assuré par une interface*.
* Source : « PHP : SAPI et modes de communication », developpez.com.
Zend Engine
Le composant PHP contient un moteur
d’exécution (scripting engine) — Zend
Engine — dont la fonction est d’interpréter
les scripts codés en PHP. (Zend Engine
transforme le code source en code machine
puis exécute le code.)
Architecture logicielle
La notion d’architecture logicielle désigne
l’ensemble des composants (ou briques
logicielles) qui structurent une application.
—
Couches logicielles et plate-forme associée
Couches HTML/CSS, PHP et SQL | Plate-forme LAMP
Les 3 couches logicielles
Pile application
Couche Métier
Couche Données
Env. d’exécution
Couche Présentation
Pile Application
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Modèles d’arch. du Web 2.0
Participation, RIA, SOA et Web sémantique
Patterns du Web 2.0
Participation Pattern : Wiki, CMS, Blog
RIA/MVC Pattern : applications riches
SOA Pattern : Web Services
Semantic Web Pattern
Tech. des Wikis/CMS/Blogs
Langage de structuration (X)HTML
Feuilles de style CSS
Langage d’interaction Javascript*
Langage applicatif PHP
Langage de requête SQL
* Utilisé pour exécuter des programmes interactifs sur poste client.
Tech. des patterns RIA/MVC
Framework Flex (Adobe)
Framework Silverlight (Microsoft)
Technologie(s) AJAX
Commentaire. — Les frameworks sont des
espaces de travail qui associent langage,
outils de développement et environnement
d’exécution.
Tech. du pattern SOA
Protocole SOAP
Format de description des services WSDL
Annuaire de référencement UDDI*
Framework .NET (Microsoft)
Framework Java/J2EE
* Web service dédié à la publication des services disponibles.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Partie V Cloud computing
Virtualisation et classes de services
1. Fondamentaux de l’informatique
2. Architecture des ordinateurs
3. Architecture des réseaux
4. Architecture des applications
5. Cloud computing
Programme cloud computing
Principes de la virtualisation
Logiciels de virtualisation
Avantages de la virtualisation
Modèle économique du cloud
Classes de services
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Principes de la virtualisation
Hyperviseur vs superviseur
Base technologique du cloud
Multicore computing : plusieurs UAL
Clustering : N serveurs — LAN
Grid computing : N serveurs — WAN
VMM* vs machines virtuelles
* Virtual Machine Monitor.
[Bu-1] : « Virtual machines provisionning and migration services », p. 126.
Virtualization Layer (VMM or Hypervisor)
Workload
La notion de workload désigne une
application et sa plate-forme logicielle hors
système d’exploitation.
—
Exemple de workload
CMS WordPress
Serveur HTTP Apache
Serveur de base de données MySQL
Module applicatif PHP (Zend Engine)
Philosophie de l’hypervision*
Principe 1 : avoir un minimum de code pour
réduire le nombre de failles de sécurité.
Principe 2 : limiter le code partagé entre
[…] machines virtuelles pour augmenter leur
isolation réciproque.
* Source : « Présentation des hyperviseurs xen et kvm », octo.com.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Logiciels de virtualisation
VMM vs VIM
Logiciels de virtualisation
Les logiciels de virtualisation sont des
hyperviseurs aussi appelés VMM (Virtual
Machine Monitor).
—
Hyperviseurs leaders du marché : VMWare,
Xen et KVM (hyperviseurs open source).
* Hyperviseur [vs superviseur : système d’exploitation].
Logiciels d’administration
Les logiciels d’administration des machines
virtuelles sont des VIM (Virtual Infrastructure
Manager).
—
Outils leaders du marché : VMWare vCloud,
Open Nebula et Apache VCL.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Avantages de la virtualisation
En termes de qualité logicielle
La virtualisation…
Plus de rendement
Plus de sûreté/sécurité
Plus de stabilité
Plus d’élasticité
… en termes de qualité.
Rendement
Le chargement de plusieurs machines
virtuelles sur un même serveur permet de
diminuer le nombre de serveurs… et la
consommation électrique.
—
Sûreté
En cas d’accident, le cloud permet de
récupérer – sans rupture de service – une
machine virtuelle préalablement répliquée
sur d’autres serveurs.
—
Sécurité
Le plantage d’une machine virtuelle – qui
serait dû à une attaque –, n’a pas
d’incidence sur le fonctionnement des autres
machines virtuelles.
—
Stabilité
La mise à jour de l’OS d’une des machines
virtuelles, n’aura pas d’incidence sur les
machines virtuelles qui utiliseraient une
version antérieure.
—
Élasticité
En cas de besoin – pic de charge
(augmentation brutale du trafic) –, le cloud
permet de solliciter automatiquement des
ressources supplémentaires sur d’autres
serveurs… Inversement, le cloud est
capable de libérer de ressources.
—
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Modèle économique du cloud
Ressource as a [Service vs Product]
Comparaison des modèles
Ressource as a Service
Abonnement
Segmentation
Mutualisation
Ressource as a Product
Investissement*
Standardisation
Logique propriétaire
* L’investissement implique un amortissement qui engage dans la durée.
Ressource as a Product
Stratégie
de « courte traîne »
basée sur
standardisation
Ressource as a Service
Stratégie de « longue traîne »
basée sur
segmentation [personnalisation]
Mutualisation des services
SaaS : mutualisation de logiciels
PaaS : mutualisation des plates-formes
IaaS : mutualisation des infrastructures
Valeur ajoutée du cloud…
Réduction des coûts (virtualisation)
Flexibilité des coûts (pay-per-use)
Contrôle des coûts (longue traîne)
… en termes de coûts.
Valeur ajoutée du cloud…
Accès ATAWAD
Fonctions de partage
Simplicité des interfaces
… en termes d’usages.
Valeur ajoutée du cloud…
Pas de logiciel/matériel à installer
Pas de contrainte de ressources
Pas de maintenance
… en termes d’administration.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Classes de services du cloud
IaaS, PaaS et SaaS
Classes de services
IaaS (Infrastructure as a Service)
PaaS (Platform as a Service)
SaaS (Software as a Service)
Rôle des acteurs du cloud
Exploitant
Architecte
Éditeur
Architecte
Éditeur
Utilisateur
PaaS
IaaS
SaaS
met en œuvre
met en œuvre
développe
dimensionne
déploie
utilise
Services IaaS côté client
Nombre de machines virtuelles
Nombre de CPU et espace de stockage
Degré d’élasticité (Load Balancing)
Disponibilité (en %)
Services PaaS côté client
Sélection du langage de développement
Synchronisation* des plates-formes
Administration des applications
Facturation des applications
* Déploiement : migration de l’application vers la plate-forme de production.
Déploiement vers Google App Engine
Déploiement d’une application depuis l’environnement Eclipse
Services Google App Engine
Main (Instances, Versions etc.), Data, Administration, Billing
Services SaaS côté client
Gestion des ressources
Partage des ressources
Agrégation de flux/données
Ouverture/intégration de services*
* Web services : API permettant d’accéder à des ressources.
Ce qu’il faut retenir
Self-service ATAWAD*
Facturation des services à la demande
Scalabilité/élasticité des applications
* Any Where, Any Time, Any Device.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Conclusion
Ordres de grandeurs et
synthèse sur couches logicielles
Ordres de grandeur
Processeurs : le Pentium IV compte environ 125 millions
de transistors.
Systèmes d’exploitation : les systèmes d’eploitation
comptent plusieurs millions de LOC*.
Centres de données : les centre de données (Data
Center) plusieurs milliers de serveurs.
Applications : les applications modernes comptent
plusieurs dizaines de milliers de LOC*.
* Lines of Code.
Pile OS
Mémoire
Entrées/Sorties
CPU
Fichiers
Pile OS
Pile { OS+réseau }
Couche 5
Couche 3
Couche 1
Couche 7
Couche 4
Couche 2
Couche 6
Pile Réseau
Pile OS
Pile { OS+réseau+applications }
Couche Métier
Couche Données
Env. d’exécution
Couche Présentation
Pile Applications
Pile Réseau
Pile OS
Contexte Interface(s) MACHINE VIRTUELLE Couche virtualisée
Utilisateur Administration d’un
ordinateur
Interfaces
graphiques :
Windows, MacOs ,
etc.
Logiciel : système
d’exploitation Hardware
Développeur Développement
d’une application
Code source de
haut niveau : PHP,
Python, Java, etc.
Composant logiciel
de traduction :
compilateur
Code exécutable de
bas niveau :
assembleur
Éditeur de langage Développement
d’un compilateur
Code source de
haut niveau : Java,
C, C++, etc.
Composant logiciel
de traduction :
assembleur
(JVM, CLR, AVM)
Code machine
[soumis au
processeur]
Exploitant d’un
centre de données
Administration d’une
ferme de serveurs
(data center)
Interface
graphique : VIM ;
hyperviseur : VMM
Environnement :
workload et système
d’exploitation
Hardware
Synonymes. — Code exécutable - bytecode.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : fondamentaux
Systèmes de numération
Systèmes de numération
[Za-1] : « Représentation interne des informations », p. 45.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : fondamentaux
Types de données
Types de données
[Za-1] : « Représentation interne des informations », p. 56.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : fondamentaux
Langages
Définition d’un langage
[Za-1] : « Langages de programmation », p. 425.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : fondamentaux
Programmation
Env. de programmation
[Za-1] : « Langages de programmation », p. 419.
Edition des Liens
[Za-1] : « Langages de programmation », p. 421.
Macro vs sous-programme
[Za-1] : « Langages de programmation », p. 413.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des ordinateurs
Ordres de grandeur
Transistors
[Za-1] : « Présentation générale »; p. 21.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des ordinateurs
Système d’exploitation
Trois scénarios…
1. Lancement manuel de 3 programmes
2. Lancement automatisé et séquentiel
3. Lancement automatisé
et exécution des programmes en parallèle
… Trois systèmes.
Exploitation par lots - batch
[Za-1] : « Systèmes d’exploitation », p. 355.
PA
S d
e s
ystè
me d
’explo
itatio
n
Exploitation par lots - spooling
[Za-1] : « Systèmes d’exploitation », p. 355.
Multiprogrammation
[Za-1] : « Systèmes d’exploitation », p. 357.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des réseaux
Complément sur les protocoles
Trois principes…
Hiérarchisation - couche logicielle
Encapsulation - service
Abstraction - machine virtuelle
…Trois définitions
Principe de hiérarchisation
Une couche n doit nécessairement faire
appel aux services de la couche (n-1) ; la
couche n ne peut pas accéder aux services
subalternes de niveaux (n-2), (n-3), etc.
—
* Aussi appelées API (Application Programming Interface).
Principe d’encapsulation
Une couche n fait appel aux services* de la
couche (n-1) sans pouvoir accéder au
programme de la couche (n-1).
—
* Aussi appelées API (Application Programming Interface).
Principe d’abstraction (I)
Une couche n fait abstraction des
problématiques traitées par la couche de
niveau (n-1). Les logiciels de la couche (n-1)
sont des machines virtuelles.
—
Principe d’abstraction (II)
En introduisant un niveau d’abstraction entre
l’utilisateur et la machine, le système
d’exploitation apparaît lui aussi comme une
machine virtuelle*.
—
* Voir supra : transparent n°66.
Rôle de la couche physique
La couche physique fait intervenir les
équipements dont le rôle est de transformer
le signal numérique en signal analogique et
inversement.
—
Exemple. — Le modem*.
* Modulateur-demodulateur.
Numérique vs analogique
[Za-1] : « Réseaux », p. 315
Protocole IP : niveau 3
Protocole TCP : niveau 4/5
Generic HTTP Message
Request-Line | Status-Line
Suivi de :
*(message-header CRLF)
Suivi de :
CRLF [ message-body ]
Requête du client
Request-Line
Method (GET, POST, etc.)
URI
Protocol Version
Exemple. — GET /rfc.html HTTP/1.1
Réponse du serveur
Status Line + Header + Body
Status Line
- Success Code | Error Code
- Protocol Version
Message Header
Message Body
Typologie des Status Code
Successful : 2xx
Redirection : 3xx
Client Error : 4xx (404 - Not Found)
Server Error : 5xx
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des applications
Définition d’un proxy ; définition d’un cache
Proxy Definition
“An intermediary program which acts as
both a server and a client.” [Les serveurs
d’application jouent aussi le rôle de client en
soumettant leurs requêtes à des serveurs de
bases de données.]
—
Cache Definition
“A program that stores responses in order to
reduce the response time and network
bandwidth consumption.”
—
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des applications
Langages incontournables du Web
Langages orientés Web
PHP (Utilisé côté serveur.)
Java [utilisé côté serveur : servlets]
Java [utilisé côté client : applets]
Javascript (Utilisé côté client.)
Indice TIOBE 2013
Source : « TIOBE programming … October 2013 », tiobe.com.
Indice TIOBE 2012
Source : tiobe.com.
Indice TIOBE 2011
Source : tiobe.com.
Objective-C
Main programming language used by Apple
for the OS X and iOS operating systems and
their respective APIs.
—
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des applications
Zend Engine vs JVM
Zend Engine vs JVM
* Source : « PHP performance … Opcode Caches », engineyard.com.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : arch. des applications
Qualité logicielle
Facteurs qualité ISO 9126
Capacité fonctionnelle (Functionnality)
Fiabilité (Reliability)
Facilité d’utilisation (Usability)
Facteurs qualité ISO 9126
Rendement (Efficiency)
Maintenabilité (Maintainability)
Portabilité (Portability)
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : cloud computing
Modèles de virtualisation
Virtualisation matérielle
« Pas de modifications de l’OS invité, car le
CPU […], fait croire au système invité (la
machine virtuelle) qu’il a un accès direct au
matériel. »
—
Source : « Présentation des hyperviseurs xen et kvm », octo.com.
Paravirtualisation*
« Modification du noyau de l’OS de la
machine virtuelle afin de coopérer avec
l’hyperviseur pour l’accès aux ressources
physiques et délégation des opérations
d’E/S. »
—
Source : « Présentation des hyperviseurs xen et kvm », octo.com.
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : cloud computing
Modèles de déploiement
Modèles de déploiement
Cloud public (mode partagé ou dédié)
Cloud privé
Cloud hybride (public et privé)
Modèle cloud public partagé
[Bu-1] : « SLA management », p. 419.
Modèle cloud public dédié
[Bu-1] : « SLA management », p. 416.
Modèle cloud public : PaaS
Exploitant
Architecte
Éditeur
Architecte
Éditeur
Utilisateur
PaaS
IaaS
SaaS
met en œuvre
met en œuvre
développe
dimensionne
déploie
utilise
Modèle cloud public : IaaS
Exploitant
Architecte
Architecte
Utilisateur
PaaS
IaaS
SaaS
met en œuvre
met en œuvre
développe
dimensionne
déploie
utilise Éditeur
Éditeur
Modèle cloud privé
Exploitant
Architecte
Architecte
Utilisateur
PaaS
IaaS
SaaS
met en œuvre
met en œuvre
développe
dimensionne
déploie
utilise
Éditeur
Éditeur
Frédéric Simonet
Formateur Entreprise 2.0
Email : [email protected]
Tél. : 06 62 63 94 49
Annexe : création de valeur
Stratégie acquisition vs vente
Stratégies d’acquisition*
Achat de licence (Buy)
Location de service (Lease)
Développement
Build on Services
Build on Open Source
* Motivées par réduction des coûts/gains de productivité.
Stratégies de vente*
Modèle propriétaire
Modèle « as a Service »
Modèle open source
* Motivées par la création de valeur.