Linux en entreprise - Version 2 en construction
Retour
page d'accueil
Réponse à
Daniel Martin,
par F.Gélenne
Etude "Linux en entreprise" - Version 2
Ce texte étudie
l'éventuelle préconisation de Linux en entreprise. Les comparaisons
avec NT et Solaris n'ont pour but que de situer Linux: l'étude n'a
pour objet ni NT ni Solaris (qui a été choisi comme exemple
de UNIX).
On va voir plus bas que l'argumentation
porte sur "une utilisation de Linux en entreprise pour faire de l'informatique
de gestion lourde"; c'est beaucoup plus restrictif.
Si vous abordez ce texte après avoir lu
un de mes articles dans la presse, sachez que c'est ce document qui représente
la version la plus à jour de mes réflexions: mon opinion
peut évoluer après examen de faits nouveaux ou discussion
avec d'autres informaticiens, ce qui est normal.
Objectifs de ce texte
-
Positionner Linux parmi les solutions de serveur d'entreprise: à
quels types de serveurs et d'applications convient-il?
-
Fournir une liste assez complète de critères de choix de
serveurs d'entreprise.
-
Expliquer les motivations des informaticiens qui ont choisi Linux.
Résumé pour les managers
Voici les conclusions du
texte qui suit:
Il n'y a pas un, mais plusieurs
Linux. Tous ces Linux partagent un même noyau, mais diffèrent
par de nombreux autres logiciels qui complètent chaque distribution
et sont parfois incompatibles entre eux. Il n'y a donc pas plus de Linux
standard que de UNIX standard.
C'est globalement faux: un exécutable
HP-UX ne marchera pas sous Digital-Unix. En revanche, un exécutable
développé avec la distribution Debian de Linux fonctionnera
parfaitement avec la distribution RedHat. On peut comparer les différences
liées aux distributions Linux avec les différences entre
lesAIX, distribué tantôt par IBM tantôt par Bull.
Une partie des aptitudes et
fonctionnalités impressionnantes de Linux annoncées ça
et là résultent de développements "maison"; elles
ne sont pas reproductibles partout comme celles d'un produit standard.
Elles ne dureront que tant que leur auteur s'en occupera ou qu'un autre
acceptera de se plonger dans les sources.
Il faudrait préciser cette
assertion à l'aide d'exemple précis. Il me semble que l'on
parle ici des extensions "temps-réel" de Linux ou autre fonctionnalité
très spécifique (moins d'un utilisateur sur mille à
vue de nez). Pour l'essentiel d'une distribution (noyau Unix + quelques
centaines d'applications), les fonctionnalités sont reproductibles
partout, et ce sur une période de 10 ou 15 ans pour les produits
GNU/FSF (Microsoft peut en dire autant?). Cette affirmation est manifestement
trop synthétique: on ne peut pas dire si c'est vrai ou faux, on
se sait pas de quoi on parle.
Le noyau de Linux et certains
autres logiciels gratuits (Apache, etc.) sont robustes, plus robustes que
NT. Pour un petit serveur, Linux est tellement plus simple à apprendre
et à exploiter que NT qu'on doit le préférer à
NT dans certains cas cités dans cette étude.
Là par contre, c'est clair,
précis, et complètement faux: NT est plus simple à
manipuler par un informaticien non expert. Par contre Linux, comme tous
les Unix, est beaucoup plus riche, donc difficile à apprendre, mais
beaucoup plus flexible (rien que les commandes mount et ln manquent cruellement
sous WIndows). Si on conçoit un jour un serveur web pour 50 utilisateurs
et que l'on se retrouve peu de temps après avec 5000 utilisateurs,
on s'entirera beaucoup mieux avec n'importe quel Unix (et en particulier
Linux) qu'avec Windows. D'ailleurs Windows est beaucoup moins utilisé
que Linux (ou même BSD) pour les serveurs web.
Par rapport à Solaris,
Linux est plus simple à personnaliser par suppression de modules
inutiles et adaptation de certains autres. Par contre, je ne peux pas citer
de cas, en informatique de gestion d'entreprise, où Linux serait
supérieur à la version SPARC de Solaris en richesse, en performance,
en disponibilité ou en support (je n'ai pas d'informations sur la
performance de la version Intel de Solaris, dont je n'ai testé que
la portatibilité avec la version SPARC).
La gestion des installations/désinstallation
des applications est largement facilitée par les "gestionnaires
de packages" (rpm pour RedHat), spécificité Linux. A priori,
sur un même hardware Linux est généralement plus performant
et d'une fiabilité équivalente à Solaris (très
superieure à NT). Solaris est plus riche sur certains points, mais
toutes les applications n'en ont pas forcément besoin.
Linux convient mieux que NT
à certains petits serveurs. Il ne convient pas, comme Solaris, à
des applications lourdes ou vitales qui exigent:
-
une haute performance
-
une haute disponibilité
-
un support de qualité certifiée et disponible sans interruption.
On ne peut absolument pas mélanger
"haute performance" et applications vitales. Par exemple, les images de
synthèse du "Titanic" nécessitaient de hautes performances
et ont été calculées sous Linux. Par contre les ordinateurs
des Airbus ne risquent pas d'utiliser Linux, pas plus que Solaris et encore
moins NT (ou CE puisque c'est de l'embarqué!). Pour de l'informatique
bancaire, où le rapport vitesse de calcul/coût a moins d'importance
que la fiabilité des transactions, on peut très bien comprendre
que Linux ne présente pas d'intérêt particulier.
Linux est jeune: pour beaucoup d'entreprises son adoption
date de 1995 ou après; Oracle n'est disponible sous Linux que depuis
fin 1998.
Linux évolue en ce
moment très vite, bien plus vite que NT ou Solaris. Ses fonctionnalités
s'enrichissent rapidement, et de plus en plus de fournisseurs de matériels
et de logiciels offrent des produits pour ce marché. Cette vitalité
augure bien de son avenir. Il faut cependant être prudent face aux
affirmations des enthousiastes de Linux, qui ont systématiquement
tendance à prendre les promesses du Linux de demain pour des réalités
d'aujourd'hui sur lesquelles on peut compter en entreprise.
Tout à fait d'accord.
Un exemple typique: Linux ne supporte pas encore la norme C++ de 1992,
mais
la plupart des Unix commerciaux ne la supportait pas non plus en 1997 (en
particulier au niveau des templates). Il faut toujours vérifier
en détail; c'est vrai pour tous les produits.
La gratuité de Linux
est parfois fallacieuse: dans certains serveurs il coûterait bien
plus en temps d'administration que des systèmes d'exploitation payants,
du fait de l'absence d'agents d'administration centralisée pour
des plates-formes comme HP OpenView, Tivoli ou CA-Unicenter. Dans d'autres
serveurs Linux est bien la solution la plus économique.
Ca peut être vrai ou faux,
selon les exigences de l'application. Il est juste de ne jamais oublier
le coût de la maintenance qui est généralement le plus
important. Mais Linux a de bons atouts sur ce point.
Linux est choisi par des passionnés
de technique qui veulent se faire plaisir et se mettre en valeur en le
personnalisant. C'est aussi une réaction contre les logiciels imposés
par de grands éditeurs: avec Linux les utilisateurs reprennent le
pouvoir. Inversement, l'adoption de Linux est souvent freinée par
des politiques d'entreprise, d'éditeur ou de prestataire de services
(exemple: "Ici nous n'utilions que NT").
Je suis assez d'accord. Pour
tout ceux qui ont pris goût à la micro-informatique à
travers la programmation, Linux (parce-que c'est un Unix) offre un environnement
considérablement mieux pensé que Windows (saluons au passage
AT&T, Ken Thompson, Dennis Ritchie, Brian Kernigan, Donald Knuth, Richard
Stallman, Eric Allman...), et son coût le rend accessible au particulier
(ce qui n'est pas vrai pour les autres Unix). Ca n'a rien d'étonnant
puisque ce sont précisément ces passionnés qui l'ont
écrit! On n'est jamais mieux servi que par soi-même!
Le texte détaille toutes
ces affirmations et fournit une liste de critères de choix de système
d'exploitation d'entreprise.
Les informations de ce texte
résultent de tests et travaux d'analyse effectués par moi
à mon initiative, sans rétribution d'aucune sorte. Cette
deuxième version tient compte des remarques et contributions d'un
certain nombre d'utilisateurs de Linux, parmi lesquels Julien Plissonneau
Duquène et Jérôme Kalifa, que je remercie vivement.
Table des matières
Qu'est-ce
que Linux?
Critères
d'appréciation d'une solution d'entreprise
Disponibilité
Niveaux
de gravité d'une indisponibilité
Exigences:
matérielles, logiciel et services
Définitions
Comparaison
de Solaris, NT et Linux
Robustesse
Services
Conclusions
sur le positionnement de Linux
L'aspect
psychologique d'un choix Linux
Critères
de choix d'un système d'exploitation
Support
des applications vitales de l'entreprise
SGBD
Serveur
Web
Serveurs
d'applications
Moniteurs
transactionnels
Progiciels
de workflow disponibles: Lotus Domino, FlowMark, etc.
Grands
progiciels: SAP, Oracle Applications, BAAN, etc.
Progiciels
d'application divers
Data
Warehouse
Matériels
supportés par Linux
Fonctionnalités
techniques du système d'exploitation
Multitâches
préemptif
Multithreading
Multiprocesseurs
symétriques (SMP)
Fichiers
journalisés pour protéger contre les crashs et pannes de
courant
64
bits (adresses, instructions, données)
Annuaire
fourni avec système d'exploitation (DNS, NIS, LDAP)
Respect
des standards: UNIX98, POSIX, etc.
Outils
de génie logiciel
API
système documentées
Compilateurs
C, C++, Java avec un environnement de développement moderne
L4G
et générateurs d'applications
Qualité
de service
Accessibilité
Disponibilité
Intégrité
des données et des transactions
Performance
Sécurité
Traçabilité
Facilité
et vitesse de développement et maintenance
Indicateurs
de qualité de service - contrats de service
Exploitabilité
Outils
d'installation et d'administration locale
Outils
d'administration centralisée CA-Unicenter, Tivoli, HP OpenView,
SunNet Manager, etc.
Linux
est-il économique en exploitation?
Sécurité
Certification
C2, B1, etc.
Support
de protocoles sécurisés: IPSEC, PPTP, etc.
Support
de clés publiques / partagées, serveurs Kerberos, certificats
Disponibilité
de firewalls
Intégrabilité
Mainframes
Autres
systèmes UNIX
NetWare
NFS
et SMB
CORBA,
DCOM
Pérennité
Evolution
par versions à compatibilité garantie? à quelle périodicité?
Garantie
de support des périphériques nouveaux lorsqu'ils sont disponibles
(drivers)
Risque
de disparition de l'auteur d'un module important
Services
disponibles
Services
de l'éditeur du système d'exploitation
Disponibilité
en France
Disponibilité
24 x 7
SSII:
à compétence certifiée ou auto-certifiée?
Références
installées en applications d'entreprise
Stratégie
des fournisseurs
Remarques
faites pendant les tests
Solaris
Linux
Prix
du logiciel
Autres
remarques
Positionnement
de Linux
Ce chapitre passe en revue
les critères de choix d'une solution informatique de gestion pour
entreprise, petite ou grande. La liste de critères ci-dessous est
(évidemment) indépendante du système d'exploitation.
La comparaison de systèmes d'exploitation n'est faite que pour certains
critères: je n'ai retenu que ceux dont j'avais besoin pour un choix
éventuel de Linux. La liste complète est fournie pour servir
de check-list aux architectes de solutions responsables d'un choix.
Ici Daniel Martin précise
bien qu'il s'agit d'informatique de gestion, le résumé
l'oublie presque complètement. Il y a des nombreux autres secteurs:
calcul scientifique (maths purs, images de synthèse, simulations
de phénomènes physiques...), développement logiciel
(à destination d'une autre plateforme Unix), applications réseau
(web, serveur de fichiers, d'imprimantes...), applications industrielles
(lecture des codes postaux à la Poste américaine, gestion
des stocks chez Loréal, gestion d'autobus en Italie...), formation...
Enfin, en gestion, Iveco-Australie utilise des clients Linux pour SAP (Windows
ne permettait pas d'ouvrir suffisamment de fichiers simultanément).
Le texte ci-dessous liste donc
les critères de choix, en n'ajoutant d'explications que lorsqu'elles
sont indispensables. La manière dont Linux, NT et Solaris répond(ent)
à ces critères est examinée au fur et à mesure.
Marché Linux: client ou serveur?
En entreprise le marché
des clients est détenu à environ 90% par les systèmes
d'exploitation Microsoft. La place de Linux et de UNIX est donc celle de
serveurs, à part quelques systèmes individuels spécialisés
tels que les stations de CAO ou d'administration informatique. Et, dans
le marché des serveurs, la place en entrée de gamme est souvent
prise par NT et par des systèmes plus spécialisés
comme NetWare.
D'accord si on interprète
ce paragraphe comme ceci: il s'agit d'entreprises de gestion, et
de la place actuellement occupée par Linux et non pas de
la place qu'il pourrait occuper.
Aujourd'hui, nous voyons donc
l'avenir de solutions UNIX plus dans les serveurs d'applications et de
SGBD haut de gamme que dans les serveurs d'entrée de gamme. Dans
les petits serveurs, Linux est en concurrence directe avec NT ou NetWare
plus qu'avec UNIX. Dans les serveurs de grande puissance et/ou de haute
disponibilité Linux serait en concurrence avec UNIX seul, NT n'ayant
pas encore vraiment percé dans ce marché.
Les grandes entreprises ne sont
qu'une partie du marché des serveurs de gestion, qui se vendent
aussi dans des PME. Il y a donc là aussi un marché pour Linux,
UNIX et NT.
La position de NetWare est particulière.
Ce système d'exploitation est, depuis toujours, un excellent serveur
de fichiers et de d'impressions. Aujourd'hui, NetWare 5 est de plus en
plus un serveur d'applications et de base de données: à part
les progiciels comme GroupWise et BorderManager, le runtime Enterprise
JavaBeans et le SGBD Oracle 8 incorporés le prédisposent
à ce rôle, y compris dans des réseaux TCP/IP. Les avantages
de NetWare par rapport à NT et UNIX sont une compatibilité
avec les nombreux réseaux IPX/SPX existants et une plus grande simplicité
de compréhension et d'administration. Malgré ces atouts,
dans le texte qui suit, nous n'évoquerons pas NetWare, parce que
ce n'est ni un système de temps partagé comme Linux, UNIX
et NT Terminal Server, ni un serveur d'usage général comme
eux.
De toute façon Linux sait
parler IPX, TCP/IP, NFS, NetBios, Appletalk...
En résumé, début
1999 Linux est surtout un Système d'exploitation pour petits serveurs,
en concurrence directe avec NT et NetWare.
Dans la cadre d'une utilisation
en gestion, tout le monde peut être à peu près d'accord
sur ce point.
Systèmes utilisés pour cette étude
-
Linux: nous avons testé la version Red Hat 5.2 (noyau 2.036), une
des plus vendues du marché, sur un biprocesseur avec 2 Pentium Pro
200 et 2 contrôleurs disques SCSI
-
Solaris 7, la dernière version de l'UNIX de Sun, sur un serveur
UltraSPARC II avec processeur 300 MHz et 3 contrôleurs disques SCSI
-
Windows NT Server, sur le même système Intel que Linux.
Il n'a pas choisi la simplicité,
un pentium II unique aurait offert les mêmes performances
que l'Ultrasparc II, voire mieux.
Dans chaque système
nous avons aussi testé un serveur Web: Sun WebServer sous Solaris,
Internet Information Server sous NT et Apache sous Linux. Nous avons aussi
installé Oracle 8 sous Linux, NT et Solaris.
Qu'est-ce que Linux?
Le mot Linux désigne
en fait un ensemble de logiciels gratuits, téléchargeables
sur l'Internet - exécutables et sources, ou vendus sous forme de
distributions peu onéreuses (200 à 1200 FF environ) par des
sociétés comme Red Hat ou Caldera.
Une distribution Linux comprend:
Et vraiment BEAUCOUP d'autres
logiciels: traitement de texte professionnel Latex (comparable à
FrameMaker), environnement de développement complet, manipulation
d'image avec GIMP (genre Photoshop en plus riche et plus complexe)... On
peut lire "Le système Linux" (= Running Linux) aux éditions
O'Reilly.
Il n'y a pas de Linux "standard"
car, à part le noyau, les autres logiciels (indispensables, comme
c'est le cas des bibliothèques) sont souvent incompatibles entre
eux d'une distribution à une autre. Cette absence de standardisation
oblige les éditeurs soucieux du fonctionnement correct et portable
du logiciel qu'ils vendent, comme Oracle, de fournir leurs propres bibliothèques
pour compléter le noyau Linux.
Là c'est soit de la mauvaise
foi, soit un manque d'expérience: dans 99% des cas on ne rencontre
pas ce genre d'incompatibilité (les libc ont une compatibilité
ascendante); le reste du temps c'est parce qu'un patch corrigeant un bug
est nécessaire. La fréquence de cette situation sous Linux
est comparable aux Unix commerciaux, et bien plus faible que sous Windows.
Personnellement, j'ai toujours un 486 avec Linux 1.2.13 (installé
il y a 4ans), tant que mes besoins n'évoluent pas, aucun patch
n'est nécessaire. Voilà une caractéristique qui
distingue radicalement Linux des OS commerciaux.
Critères d'appréciation d'une solution
d'entreprise
Pour convenir à des
applications vitales, une solution d'entreprise doit être disponible,
performante et apte à garantir un haut niveau de qualité
de service. Toute fonctionnalité offerte par cette solution, doit,
pour que son existence soit crédible, être réelle et
prouvée par un nombre suffisant de sites qui l'exploitent sans problème.
Cette exigence est destinée à protéger les utilisateurs
contre les promesses fallacieuses ("le vaporware"). Ainsi, par exemple,
si je dis "Linux supporte le clustering" (mot défini plus bas) je
dois pouvoir le prouver en désignant des sites en exploitation effective,
depuis un temps assez long et avec une qualité de fonctionnement
suffisante pour que cette exploitation soit jugée stable.
En outre, pour que son existence
soit crédible, une fonctionnalité doit pouvoir être
obtenue avec un produit standard, sans que l'on soit obligé de développer
du code "maison" ou de faire de gros efforts d'intégration: un simple
paramétrage pendant ou après l'installation doit suffire.
D'accord avec ces 2 paragraphes.
Enfin, pour qu'un utilisateur
puisse la mettre en oeuvre sans risque, il faut que le niveau de compétence
requis pour l'installer, l'intégrer à l'existant et l'exploiter
soit à sa portée, sans exiger la disponibilité d'un
gourou. Il faut également que les outils d'exploitation (exemples:
agents d'administration à distance et agents de sauvegarde en réseau)
soient disponibles. Il faut, enfin, que les services extérieurs
nécessaires soient disponibles.
Là ça commence
à être flou et douteux: les 3 derniers paragraphes évoquent
quelque chose comme OS 390 ou AS 400; à la limite un Unix commercial,
mais en aucun cas Windows. Y a-t-il des déploiements sur ces machines
qui soient faits par des non-experts ? L'installation de Solaris à
elle seule (enfin avec sa ribambelle de patch) n'est pas une partie de
plaisir, et encore moins destinée à un utlisateur lambda.
On a au minimum affaire à quelqu'un qui connait le C, sh et la configuration
d'un réseau.
A ce propos je me suis aperçu,
dans de nombreux messages reçus de partisans de Linux, qu'ils attribuent
à ce système d'exploitation des fonctionnalités qui
ne répondent pas à ces critères. Par exemple, il leur
suffit, pour dire "Linux sait faire cela" ou "Linux supporte cela", que:
-
Moins de 1% des sites Linux ait mis en oeuvre la fonctionnalité,
ou
-
Qu'un groupe de recherche soit en train de travailler sur le sujet et réussisse,
à grand renfort d'heures de travail de gens extrêmement compétents
et motivés, à faire tourner des sites (exemple: projet BEOWULF),
ou
-
Que la fonctionnalité vienne de sortir sur une première distribution,
sans avoir eu le temps d'être exploitée dans cette version
pendant un certain nombre de mois.
C'est une critique justifiée.
Mais Linux n'est pas le seul OS à souffrir de ce genre d'approximation.
Aucun représentant IBM ne disait en 1997 que leur compilateur C++
avait des habitudes complètement exotiques! Même topo avec
HP-UX. Quant à Windows, on a plus vite fait le tour de ce qui est
exempt de reproches que du reste!
Mes exigences sont beaucoup
plus élevées car, en tant que consultant, je ne peux recommander
à un client grand compte une solution qui présente des risques.
Mes clients ne se comportent pas comme les universitaires du projet de
calcul massivement parallèle sous Linux appelé BEOWULF, qui
appliquent à des projets à l'état de l'art la maxime
suivante: "Pourquoi acheter une solution qu'on devrait pouvoir développer
nous-mêmes?". Mes clients ont des budgets précis et des délais
stricts à respecter pour rendre disponible une nouvelle application,
et ne peuvent de ce fait prendre des risques avec des solutions non éprouvées.
Même si on leur fournit une solution nouvelle, ils veulent être
sûrs, avant de compter dessus en l'exploitant dans une application
vitale pour l'entreprise, qu'ils disposeront de la compétence, du
support et de garanties de pérennité, et sans faire exploser
leurs budgets ou compromettre la disponibilité pour les utilisateurs.
On comprendra donc pourquoi
je suis prudent avant de croire que "Linux peut le faire".
C'est tout à fait juste.
Mais une circonspection aussi grande est nécessaire à l'égard
des produits commerciaux: le marketing fumeux (ou vaporware) est au moins
équivalent à l'engouement passionné.
Disponibilité
En entreprise, le critère
de disponibilité est extrêmement important dès qu'on
parle d'une application vitale ("mission critical").
Niveaux de gravité d'une indisponibilité
Le tableau ci-dessous décrit
les conséquences éventuelles de l'indisponibilité
d'une application en fonction de son niveau, classé de 0 à
5.
|
|
Exemples d'applications
et conséquences si indisponibles
|
|
|
Economiseurs d'écran,
jeux, etc.: une panne est sans conséquence
|
|
|
Productivité personnelle:
traitement de textes, tableur, etc. Une panne impacte une personne mais
ne gêne pas beaucoup l'entreprise
|
|
|
Applications horizontales:
comptabilité, paie, services de fichier et d'impression, etc. Une
panne impacte un petit groupe mais ne gêne l'entreprise que si elle
dure plusieurs jours
|
|
|
Productivité de groupe
(email, workflow) et applications verticales: gestion de production, logistique,
etc. Une panne empêche le fonctionnement d'une partie importante
de l'entreprise au bout de quelques heures; si elle se prolonge elle met
en péril sa rentabilité voire sa survie
|
|
|
Conduite de processus industriel,
saisie de commandes par téléphone, etc. Une panne bloque
immédiatement un travail qui est la raison d'être de l'entreprise
ou du département.
|
|
|
Informatique embarquée
de sécurité, comme les commandes électriques de vol
d'un avion moderne: une panne met en péril la vie humaine
|
Le niveau 5 ne concerne aucun Unix, commercial
ou non, et encore moins Windows. Il y a plusieurs utilisations satisfaisantes
de Linux au niveau 4, voir http://www.linuxbusiness.com/fr/case.html
Conséquences de l'indisponibilité
d'une application selon son type
Exigences: matérielles, logiciel et services
Pour les applications de niveaux
0 à 2 tous les systèmes d'exploitation conviennent. A partir
du niveau 3, la disponibilité demande, selon les besoins, tout ou
partie des fonctionnalités suivantes:
-
des solutions matérielles: clustering et disques RAID 1 (mirroring),
3 (striping avec disque de parité) ou 5 (striping avec parité
répartie) avec remplacement sans arrêt du système ("hot
plug"), voire tolérance de pannes et processeur de maintenance aux
niveaux 4 et 5
-
des solutions logicielles (en plus du logiciel nécessaire aux solutions
matérielles ci-dessus): partitionnement en multiples sous-systèmes
indépendants et clustering à image système unique
(décrits ci-dessous), robustesse prouvée du logiciel système,
répartition dynamique de charge entre noeuds multiples, logiciel
d'administration évolué permettant une surveillance continue
et une intervention à distance. Le minimum que l'on puisse exiger
est la disponibilité de fichiers journalisés (décrits
plus bas)
-
des services (assistance par un interlocuteur dont la compétence
est certifiée, disponible immédiatement ou dans un délai
garanti - 2 heures, par exemple; conseils, développement et intégration
par une société au personnel certifié et à
la compétence prouvée depuis longtemps, formation avec examen
d'aptitude, etc.)
Dans de nombreux cas Windows est
utilisé au niveau 4 malgré son manque de fiabilté,
il faut relativiser un peu. Si l'on applique
l'ensemble de ces solutions on se situe dans un cadre d'utilisation extrèment
particulier. Ceux qui s'offrent tout ça (en particulier le "hot
plug") savent pourquoi et ils n'ont pas besoin de lire la presse ou des
articles sur internet!
Définitions
-
Le partitionnement en sous-systèmes multiples permet à un
même (gros) serveur multiprocesseurs de supporter plusieurs machine
virtuelles indépendantes; chacune a son propre système d'exploitation
et ses propres ressources matérielles. Les divers systèmes
d'exploitation peuvent être du même type (avec la même
version ou des versions différentes) ou même de types distincts.
En cas de panne matérielle ou logicielle, en général
une seule machine virtuelle est affectée, les autres continuent
à tourner. On peut utiliser une partition pour tester une nouvelle
version du système, d'un SGBD ou d'une application sans risque pour
les autres. On peut dynamiquement changer la répartition des ressources
matérielles (processeurs, disques, mémoire, contrôleurs
divers) entre les diverses machines virtuelles. Exemples: IBM OS/390 et
Solaris 7.
-
Serveurs en cluster avec basculement transparent pour les applications
clientes
En informatique de gestion,
on appelle "cluster" un système comprenant plusieurs "noeuds". Chaque
noeud est, en général, un système multiprocesseurs.
Tous les noeuds accèdent à un même sous-système
de disques, dont le contrôleur doit avoir au moins autant d'accès
qu'il y a de noeuds. Le sous-système peut comprendre plusieurs cartes
RAID, chacune gérant une grappe de disques avec une redondance qui
rend invisible une panne d'un seul disque. Le sous-système supporte
souvent son propre dispositif de sauvegarde. Les divers noeuds sont interconnectés
entre eux pour s'entendre sur les accès aux disques communs pour
éviter les conflits d'accès. Les noeuds sont accessibles
en réseau pour les clients, en général par l'intermédiaire
de cartes réseau redondantes. En cas de panne d'un noeud, le traitement
peut se poursuivre sur un autre. Le cluster est une solution de disponibilité
bien plus qu'une solution d'accroissement de la puissance.
En général,
lorsqu'un noeud tombe en panne, l'application est déconnectée
et doit se reconnecter à un noeud encore opérationnel. Lorsque
cette reconnexion est automatique et transparente pour le programmeur,
on obtient une disponibilité plus simple à gérer et
un temps d'indisponibilité plus court. Les logiciels de clustering
les plus évolués offrent ce basculement transparent.
Le clustering à image système unique permet à un
cluster à 2, 3... N noeuds de se comporter comme un seul système
multiprocesseurs pour les applications qu'il supporte, comme pour ceux
qui l'administrent. Exemples: IBM Parallel Sysplex et Solaris 8 (en 2000).
A part une très haute disponibilité, on obtient une excellente
répartition dynamique des charges. On peut ainsi gérer des
charges de travail hétérogènes et lourdes tout en
garantissant les temps de réponse (parce qu'on réserve à
chaque application une fraction minimum des ressources globales).
La répartition dynamique des charges permet de répartir
des demandes de traitement entre divers serveurs. Cette répartition
équilibre en permanence les charges pour optimiser le débit
global ou garantir certains temps de réponse. En cas de panne d'un
noeud, les demandes sont réparties entre les autres noeuds. La répartition
dynamique utilise des logiciels agents dans chacun des noeuds et un dialogue
entre ces agents et le système répartiteur, qui doit être
de type haute disponibilité ou tolérance de pannes.
Ces solutions ne concernent au maximum
qu'une entreprise sur 100 ou 1000. Or le titre de l'article est "Linux
en Entreprise". Peut-être qu'il aurait fallu écrire
"Linux comme mainframe dans le secteur bancaire"?!!!
Comparaison de Solaris,
NT et Linux
-
Solaris offre déjà toutes les fonctions de haute disponibilité
ci-dessus (y compris le support de la tolérance de pannes sur les
serveurs Sun Netra ft) sauf l'image système unique qu'il offrira
dans la version 8 en l'an 2000.
-
Solaris supporte le remplacement sans arrêt d'exploitation de processeurs,
modules mémoire, contrôleurs et disques RAID.
Sûrement pas la Sun SparcStation 4 que
j'utilise! Et qui doit valoir dans les 60kF, mais elle ne tourne que sous
Solaris 2.6, la version qui précède Solaris 7. Les numéros
de versions Sun sont difficiles à suivre (SunOS 5.5 = Solaris 2.5).
Sérieusement: quelle est la part du marché de l'informatique
en nombres de sites pour de telles solutions ? On doit être largement
au-delà des 100kF par machine (contre 10kF pour un PC d'une puissance
de calculéquivalente), ceux qui en ont besoin le savent et ne risquent
pas de se poser la question de l'utilisation de Linux ou de Windows NT.
-
Solaris supporte un processeur de maintenance avec accès à
distance.
-
Solaris supporte des bus multiples redondants avec basculement automatique.
-
Solaris sur SPARC permet, après une panne, un redémarrage
automatique qui contourne les éléments défaillants:
processeur, mémoire, disque, etc.
Voici ce qu'on trouve sur
le CD Red Hat 5.2 au sujet des disques RAID gérés par Linux
dans le répertoire /doc/HOWTO/Root-RAID-HOWTO:
As of this writing, the
problem of stopping a root mounted RAID device has not yet been solved
in a satisfactory way. A work-around proposed by Ed Welbon and implemented
by Bohumil Chalupa is incorporated into this document which eliminates
the need for a long ckraid at each boot for raid1 and raid5 devices. Without
the workaround, it is necessary to ckraid the md device each time the system
is re-booted. On a large array this can cause a severe availability performance
degradation."
"As of this writing (June
1998), the administration of RAID under Linux is far from trivial, and
is best attempted by experienced system administrators. The theory of operation
is complex. The system tools require modification to startup scripts. And
recovery from disk failure is non-trivial, and prone to human error. RAID
is not for the novice, and any benefits it may bring to reliability and
performance can be easily outweighed by the extra complexity. Indeed, modern
disk drives are incredibly reliable and modern CPU's and controllers are
quite powerful. You might more easily obtain the desired reliability and
performance levels by purchasing higher- quality and/or faster hardware."
Le texte ci-dessus est intéressant:
dans le monde Linux on utilise la solution gratuite de M. X ou de M. Y,
mais en vérifiant que cela convient, en le maintenant soi-même
au niveau du code source du système ou des drivers et en prenant
ses responsabilités.
Il existe des contrôleurs
RAID pour Linux (matériel et drivers) produits par des petites sociétés.
Des contacts avec des utilisateurs de RAID sous Linux ont permis de confirmer
que cette technologie est disponible, matériel et logiciel, mais
que son administration est délicate. Je n'ai pas encore trouvé,
sous Linux, de sous-système RAID à connexions de noeud multiples,
convenant aux clusters. On peut conclure que pour le moment la technologie
RAID est bien moins répandue sous Linux que sous Solaris ou sous
NT, systèmes où je les utilise dans mon laboratoire de façon
parfaitement banale et transparente.
Robustesse
-
Solaris est robuste: de nombreux serveurs en production sous Solaris ne
sont rebootés qu'une ou deux fois par an, malgré des erreurs
d'exploitation et l'installation de logiciels.
-
NT est d'une robustesse moyenne: les enquêtes auprès des utilisateurs
montrent qu'un serveur sous NT est rebooté en moyenne tous les 2
ou 3 jours. J'ai installé NT des dizaines de fois à ce jour,
et je m'en sers depuis des années dans mon laboratoire, en développement,
pour des tests avec base de données, en serveur Web et pour de la
bureautique. Tous les systèmes NT ont toujours eu des fuites de
mémoire: la mémoire utilisée augmente inexorablement
de jour en jour, sauf dans les systèmes où la même
application tourne en permanence. Selon le nombre de nouvelles applications
qui se lancent et s'arrêtent, je dois rebooter mon système
NT 4 SP3 tous les jours ou tous les deux jours. Mais, à part des
problèmes avec WORD 8 et des drivers de cartes écran, NT
ne s'effondre pas.
Word suffit donc à effondrer
NT! Quelle drôle de comparaison avec les applications lourdes et
vitales dont il est question quelques lignes au-dessus! Word ne fait pas
vraiment partie du monde de l'édition professionnelle, il s'agirait
plutôt de PageMaker, FrameMaker, Quark XPress... mais là encore
on est loin des systèmes évoqués plus haut. Quelle
confusion!
-
Linux est robuste: on le reboote plus souvent pour "bricoler" un nouveau
logiciel système ou application que parce que c'est nécessaire.
Comme Solaris, il supporte l'installation et le démarrage de logiciels
et de drivers sans rebooter.
Ha, le délire des comparaisons
aberrantes s'arrête et on redescend sur terre.
Services
Il n'existe pas de processus
de certification de compétence dans le monde Linux. On peut seulement
affirmer que des efforts en ce sens sont en cours. Du reste, il est difficile
de certifier la compétence pour un logiciel dont la spécification
(le périmètre), les versions et les distributions évoluent
rapidement. Il faut savoir que Red Hat, par exemple, va changer pour la
troisième fois en 4 ans de logiciel d'interface utilisateur, en
adoptant GNOME. Chaque adoption d'une interface utilisateur avait ses raisons,
mais le fait est là: pas de stabilité, et ce dans un domaine
techniquement très complexe. A ce point de vue, signalons que Microsoft
est tout aussi instable: en 15 ans, il est passé de DOS à
OS/2, puis Windows 16 bits, Windows 32 bits, Windows 95 et aujourd'hui
Active Desktop (basé sur HTML) dans Windows 98. Cela fait une durée
de vie moyenne de 2 ans et demi par interface utilisateur, et un effort
de mise à jour de compétence considérable.
Là on dit vraiment n'importe quoi.
Celui qui trouvait jolie son interface graphique MWM ou TWM d'il y a dix
ans peut toujours l'avoir. Ca n'a rien à voir avec le système
d'exploitation: on peut changer d'interface graphique (le window-manager),
les programmes continueront à fonctionner.On peut aussi travailler en
mode texte et profiter des dernières carctéristiques du noyau, des libraries...
C'est d'ailleurs un point
fort: en fonction de la puissance de calcul dont on dispose (en particulier
au niveau de la carte graphique) on choisit une interface adaptée
aux performances de la machine. Cette confusion est très étonnante
pour quelqu'un qui prétend connaître Unix. Il sera sûrement
plus délicat d'avoir sous Windows NT la même interface graphique
que sous Windows 3.1!
Solaris 2.6 est livré avec CDE comme interface
graphique; or CDE est très lourd. Sur une machine un peu ancienne
(2 ans ou plus), on aura intérêt à utiliser un window-manager
du domaine publique comme fvwm, fvwm95 (qui a la même esthétique
que Windows 95) ou encore AfterStep. Ca n'a pratiquement pas d'incidence
sur le fonctionnement des applications, si ce n'est un gain de vitesse
substentiel. On voit ici l'un des points forts d'Unix: sa modularité.
De ce fait, la compétence
des prestataires de services Linux est, pour l'essentiel, auto-proclamée.
A leurs clients d'y croire, et de vérifier au besoin.
C'est vrai. Est-ce réellement
différent avec les autres plateformes ?
Il n'y a pas de support officiel
de Linux, comme on en trouve (examens de certification à l'appui)
pour Solaris et NT. En général, lorsqu'on a un problème,
on pose une question dans un forum de discussion Internet et il se trouve
une dizaine de personnes pour vous répondre, en général
en moins de 24 h. Sur ces réponses, dont la valeur est à
vérifier au cas par cas puisque personne n'est responsable et ne
doit rien à personne, combien seront bonnes? Combien vous feront
perdre votre temps? Le délai de 24 h vous convient-il? Red Hat vend
un support 24 x 7 aux USA et cherche à l'installer en France; mais
il ne supportera pas les logiciels tiers.
Qui est satisfait par le support
Microsoft dans le cadre d'une utilisation réellement professionnelle?
IBM, Dell, Compaq... et Sun on annoncé leur désir de supporter
Linux. Rien ne remplace l'expérience pour évaluer la valeur
d'un support; on est loin d'avoir un support idéal d'un côté
et déplorable de l'autre. Il n'y a qu'à lire les messages
de mise en garde dans les documents Microsoft: on ne peut le tenir responsable
d'aucun disfonctionnement.
Il faut comprendre que les
lois du marché font qu'il y a deux niveaux de support commercial:
celui (pas cher, mais de très bas niveau) qui est destiné
à des milliers ou des millions d'utilisateurs, et celui (bien plus
cher) destiné à des entreprises. Dans ce domaine, une entreprise
de support doit donner une bonne qualité et un bon prix, si elle
veut prospérer ou simplement survivre. Un certain nombre de SSII
se sont lancées dans le support Linux, certification ou pas. L'avenir
montrera si la concurrence suffit pour garantir une bonne prestation aux
utilisateurs.
Tout à fait d'accord.
Les gens d'Alcove
ou d'Atrid
sont d'anciens spécialistes d'UNIX commerciaux, tout à fait
sérieux. En revanche le support Microsoft est à ranger dans
le "très bas niveau" comparé à Solaris.
Oracle est disponible sous
quatre Linux, dont Red Hat et Caldera. Mais il ne supporte que ses logiciels:
si vous installez un logiciel tiers, si vous modifiez le noyau, ils dégageront
leur responsabilité plus que si vous exploitez une version standard
de Solaris ou NT.
C'est clair que Linux n'est pas
une plateforme de choix pour Oracle. Mais si on peut s'offrir Oracle, on
ne va pas chercher à économiser et prendre Linux. Oracle
a surtout cherché à se faire de la publicité à
bon prix avec leur portage Linux. Vont-ils l'abandonner aussi vite que
leur projet de Network Computer? Ils sont les plus grands spécialistes
du VaporWare! On dit que Larry Ellison n'est qu'une potiche qu'Oracle conserve
à cause du bruit qu'il fait!
Dans sa concurrence avec
NT, Linux l'emportera donc de plus en plus, au fur et à mesure que
le marché s'apercevra qu'il est bien plus simple à comprendre,
donc à exploiter.
Encore une fois: la prise en main d'Unix
(tant Solaris que Linux, AIX, HP-UX, Digital-Unix..) est plus rude que
celle de Windows; ne serait-ce que parce-que tout le monde connait déjà
Windows (avec tous ces jeux, pardon, tous ces outils multimédias).
Le point de vue de Daniel Martin me semble tout à fait unique! Par
contre, une fois maîtrisé, Unix est beaucoup plus productif
car les tâches répétitives peuvent toujours être
automatisées; c'est bien l'intérêt des ordinateurs.
Pour résumer, en termes de prise en main
(cout fixe) puis exploitation (cout variable),
Windows a un coût fixe moyen et un coût
variable moyen; Unix, et Linux en particulier, ont un coût fixe élevé
et un coût variable faible. Pour une utilisation intensive et si
les besoins s'y prêtent (les outils sont-ils disponibles?) Unix sera
donc préférable.
Conclusions sur le positionnement de Linux
Remarque: pour adopter Linux
il faut posséder au départ une culture UNIX + GNU + Emacs
ou vi.
Encore une fois: il ne faut pas sous-estimer
cette formation.
Pour les petits serveurs,
Linux convient:
-
Pour les applications de niveaux 1, 2 et parfois 3. Exemples: serveurs
d'impression, serveurs Web, serveurs de messagerie, serveurs-passerelle
de communications vers un réseau ou les fax, serveurs de fichiers,
petits serveurs de SGBD, serveurs de bureautique quand les progiciels nécessaires
sont disponibles, etc.
-
Pour les serveurs où il est le système d'exploitation optimal
parce qu'on a pu le personnaliser.
-
Pour les stations individuelles qui ont les applications nécessaires
-
dont l'exploitation est si simple que le travail d'administration est insignifiant
(le problème des outils d'administration sera abordé plus
bas).
-
Pour des petits systèmes multipostes en temps partagé, livrés
clés en mains et supportés par le créateur de leur
logiciel d'application.
Une première question,
pour les cas ci-dessus, est de savoir si Linux convient mieux qu'un UNIX
comme Solaris, capable de faire au moins aussi bien que Linux dans tous
les domaines sauf ceux où la personnalisation exige le code source.
On les départagera en considérant les autres critères
cités plus bas dans cette étude.
Une deuxième question,
pour les mêmes cas, est de savoir si Linux convient mieux que NT.
Il faut voir, ici, que la version multiposte de NT (Windows NT Terminal
Server) est marginale, peu utilisée, donc d'avenir incertain. Elle
est, en plus, d'une gourmandise de ressources matérielles incroyable.
Donc, en matière de système multiposte, Linux fera toujours
mieux que NT, sauf lorsqu'on exige que le serveur multiposte supporte les
applications conçues pour Windows. En dehors du multiposte, Linux
pourra être préféré à NT chaque fois
que sa stabilité, sa simplicité et son économie de
matériel clairement supérieures auront plus d'importance
que les qualités prouvées de NT en matière de montée
en charge (tests officiels TPC), de support des disques RAID et des clusters.
C'est ainsi, par exemple, qu'on installera avec profit Linux sur des serveurs
anciens (486, par exemple) dont la configuration est devenue trop modeste
pour NT, tels que des serveurs d'impression, de messagerie ou de pages
Web.
Linux ne convient pas, au moins
en ce début de 1999:
-
Pour les applications exigeant une haute disponibilité
-
Pour les applications exigeant une forte montée en charge, telles
que le transactionnel lourd avec des milliers d'utilisateurs actifs et
le support de grandes bases de données utilisées en aide
à la décision.
-
Pour les serveurs d'applications lourdes supportant des plates-formes telles
que Enterprise Java Beans, à l'intérieur de solutions comme
SilverStream, NetDynamics, WebSphere, BEA M3 ou Oracle Application Server,
lorsque la charge de traitement exige une configuration SMP avec de nombreux
processeurs, une machine virtuelle Java supportant le fonctionnement SMP
et l'interopérabilité avec de nombreux types de serveurs.
C'est un peu méprisant,
mais le ton de l'article le veut! Les points forts de Linux sont un peu
sous-estimés mais l'argumentation se tient; pour Solaris du moins.
Par contre, en ce qui concerne l'OS que Word suffit à effondrer,
je doute qu'on arrive à avoir des milliers d'utilisateurs actifs
pendant des semaines!
Il est significatif que Microsoft ait choisi Solaris pour les machines
qui fournissent le service "hotmail".
En dehors des problèmes
de disponibilité et de performance, Linux n'a pas aujourd'hui les
outils d'administration permettant de garantir la qualité de service
en exploitation lourde (voir plus bas).
L'aspect psychologique d'un choix Linux
La section précédente
sur le positionnement a mis en évidence une caractéristique
essentielle de Linux au point de vue des hommes qui choisissent ce système
d'exploitation, l'installent, en modifient ou en complètent le code
source et l'administrent: la psychologie. Je vais traiter ce point tout
de suite, pour ne pas avoir à y revenir.
Alors qu'un choix de système
d'exploitation UNIX ou NT n'a pas de dimension psychologique, le choix
de Linux en a une dont voici les caractéristiques.
-
Linux est développé par des hommes qui travaillent sans motivation
d'argent. En faisant don de leur temps et de leur talent, réel,
ils ont les mêmes motivations que tous les altruistes: se mettre
en valeur pour ses qualités professionnelles et sa générosité.
Ces motivations sont les mêmes que celles des missionnaires et de
ceux qui défendent un idéal, et elles sont éminemment
respectables.
Une conséquence de
cet altruisme est l'honnêteté à l'égard des
autres hommes qui ont choisi Linux: en cas de danger, l'éthique
Linux veut qu'on avertisse le collègue.
-
Les hommes qui ont choisi Linux, les "linuxiens", ont fait un choix personnel
et entretiennent avec Linux une relation passionnelle analogue à
celle du fanatique d'une marque automobile avec ses véhicules favoris.
J'en ai rencontré peu qui soient ouverts au dialogue sur le choix
de Linux et son éventuelle infériorité par rapport
à d'autres systèmes d'exploitation: quand on aime, on place
l'objet de son amour au dessus de tous les autres. Si on attaque Linux
on les attaque dans ce qu'ils ont de cher et ils réagissent violemment.
Autant ils sont honnêtes avec d'autres linuxiens, autant ils exagèrent
les qualités de Linux lorsqu'ils le défendent contre des
non-croyants.
Je parie donc que ce texte
me fera beaucoup d'ennemis parmi eux, bien que je partage avec eux le même
idéal altruiste: l'écris mes articles (170 à ce jour)
gratis, et je publie mes études, celle-ci et les autres, gratis
sur mon site Web, même lorsqu'elles m'ont coûté des
semaines de travail.
La première version
de ce texte, plus dure vis-à-vis de Linux parce qu'elle ne considérait
que les besoins de serveurs haut de gamme, m'a valu une centaine de messages.
Plus de la moitié ne contenaient que de la haine et des insultes,
montrant par là que leurs auteurs étaient d'un niveau trop
bas pour avoir d'autres arguments: sitôt arrivés ils sont
partis à la poubelle. A part une demi-douzaine qui m'approuvaient,
tous les autres argumentaient contre mon texte. Il est intéressant
de noter qu'aucun de ces interlocuteurs n'a abordé le thème
de la disponibilité (à l'évidence hors de leurs préoccupations)
et aucun n'a contesté la supériorité tous azimuts
de Solaris sur Linux.
Si: dans les universités il y
a des spécialistes qui se débrouillent généralement
sans le support Sun. Pour eux, et pour une puissance de calcul donnée:
1PC/Linux = 10kf, 1StationSolaris = 60kF. Tout ça pour utiliser
un compilateur fortran pour faire du calcul numérique. Il y a d'autres
situations similaires. J'aime bien le "niveau trop bas"!
Si je suis contre Linux
pour des applications de niveaux 3 et au dessus, tout en admirant les linuxiens,
c'est à cause de mon rôle de consultant: je considère
comme erronée une adoption de Linux pour une telle application,
au moins parce qu'il y a un meilleur choix: UNIX.
Je crois plutot qu'il y a beaucoup de situations de niveau 4 où Linux conviendrait
bien mieux que Windows. La fin de la phrase est amusante: on dirait qu'il
a d'un coté UNIX, qui serait Solaris, AIX... et de l'autre Linux. En fait, Linux, BSD,
Solaris, AIX... sont des Unix. Linux appartient à la famille des logiciels libres,
la carctéristique de ceux-ci est d'etre livrés avec leurs sources. Il y a meme
des esprits polémiques (sans aucun rapport avec Linux) qui prétendent que AIX
signifie "AIn't uniX" (c'est pas unix) à cause des nombreuses particularités de l'OS
d'IBM. Linux est beaucoup plus respectueux des normes POSIX, et des conventions UNIX
en général.
Je conseille donc aux managers
à qui un informaticien recommande d'adopter Linux de tenir compte
de ce désir de bricoler. Si ils acceptent, ils risquent de voir
les responsables de systèmes Linux perdre du temps à résoudre
des problèmes pour le plaisir, et à discuter avec d'autres
linuxiens par l'Internet, au téléphone et dans des réunions.
Ils risquent de leur voir adopter des solutions parce que celles-ci leur
permettent de se réaliser, pas parce qu'elles sont optimales pour
l'entreprise. Ils risquent de voir ces enthousiastes prendre des risques
avec l'aptitude de leur système à monter en charge et sa
disponibilité. Et ils risquent de se retrouver, au départ
du gourou Linux maison, avec des systèmes si profondément
personnalisés (sans documentation) qu'ils sont impossibles à
maintenir et à exploiter par quelqu'un d'autre. Si ils refusent
le choix Linux ils vont créer pas mal de frustration. Manager c'est
choisir, n'est-ce pas?
Là on touche à un problème
très vaste et fondamental: bien sûr on est là pour travailler quand
on est au bureau! Mais si pour un décideur, le critère de
productivité est le nombre de coups fils non-professionnels, c'est
qu'on a probablement affaire à quelqu'un qui n'a aucune notion de
qualité logicielle au niveau des méthodes de travail, de
la conception détaillée, de la conception système,
du choix des outils, de la communication interne... Bref aucune compétence
pour travailler dans le secteur de l'informatique. Ca n'empêche pas
de réussir et de gagner beaucoup d'argent, mais dans ce cas les
discussions techniques n'ont pas grande utilité. Dans le magazine
"Transfert" on voit comment travaillent plusieurs entreprises à succès
dans la Silicon Valley, Excite en particulier. Il y a de quoi etre surpris!
Un bon manager ne devrait pas confondre le vernis des apparences et la qualité
intrinsèque du travail. Mais c'est un autre débat.
-
Les Linuxiens détestent les multinationales, qui créent des
produits informatiques en leur refusant la possibilité de les améliorer
et de voter par Internet sur le choix de leurs spécifications. Le
succès commercial récent de Linux s'explique en partie par
la frustration vis-à-vis de NT et de Microsoft, et par la nostalgie
de la tradition d'ouverture et du respect des contributions personnelles
du monde UNIX. Les linuxiens, qui n'aiment pas avouer les motivations très
personnelles de leur choix Linux, invoquent parfois de mauvaises raisons,
comme le fait que Linux demande moins de mémoire et de puissance
processeur que NT; la vérité est qu'ils choisiraient Linux
même si il était plus gourmand.
-
En allant plus au fond des choses, le logiciel libre représente
une lame de fond importante en informatique: un nombre croissant d'utilisateurs
en ont assez de subir les solutions imposées par les fournisseurs;
ils prennent en mains de plus en plus la création des solutions
à leur portée.
-
Plusieurs constructeurs ont une attitude bienveillante à l'égard
de Linux; Sun, par exemple, aide au portage de Linux sur SPARC sans chercher
à défendre Solaris: après tout, puisque certains systèmes
tourneront sous Linux quoique Sun fasse, il faut qu'on puisse aussi les
choisir dans la gamme Sun/SPARC. COMPAQ et Intel investissent dans Red
Hat.
C'est une présentation assez
juste de ceux qui recommandent et utilisent Linux. En revanche on peut
préciser l'historique du logiciel libre: au départ, des chercheurs
de AT&T ont créé UNIX en 75 environ. La conception d'UNIX
est d'une qualité très superieure à celle de Windows
comme le démontre le fait qu'il soit parfaitement adapté
aujourd'hui à des tâches qu'on ne pouvait pas imaginer il
y a 20 ans. Disons qu'Unix est le fruit d'une équipe d'universitaires
particulièrement doués, tandis que DOS s'apparente plutôt
à une bidouille de garage. Bill Gates et Paul Allen ne le renient pas, ils
en sont plutot fiers et présentent cela comme une exemple de réussite!
Différents industriels ont commercialisé
leur adaptation plus ou moins fidèle d'UNIX. Rapidement les sources
n'ont plus été livrés avec les produits comme c'etait
le cas au tout début. Afin de pouvoir corriger les bugs des commandes
de l'OS et de disposer de commandes qui soient les mêmes quelle que
soit la marque de la machine, la Free Software Foundation (fondation
pour le logiciel libre et non pas gratuit, avec sa licence
GNU qui garantit l'accès aux sources) a centralisé et développé
un certain nombre d'outils: commandes, compilateurs, éditeurs...
Petit à petit on s'est approché d'un système complet.
En codant un noyau, Linus Torvalds a apporté la clé de voute
et a permis d'avoir un OS complet. Comme le rappelle souvent Roberto Di
Cosmo, on devrait parler de GNU/Linux.
Conclusion: ce sont principalement
des universitaires ou des ingénieurs en développement logiciels
qui ont écrit ces programmes, pour leur confort dans leur travail,
pour avoir des stations Unix bon marché grâce aux PCs. Rien
à voir donc avec les jeunes passionnés qui écrivent
des jeux vidéos, qui marchent, mais qui ne sont pas forcément
codés proprement, donc maintenable. Tout ceux qui travaillent dans
l'informatique peuvent vérifier que les règles de codage
sont souvent beaucoup plus strictes dans les logiciels libres que dans
les produits industriels. Ce n'est pas surprenant: il suffit d'imaginer
une équipe où tous les codeurs sont très expérimentés,
passionnés (puisque non rétribués) et
impliqués , par opposition
à une équipe où on n'a pas que des experts et
où "on s'en fout à moitié
du moment qu'on est payé"...
Critères de choix d'un système d'exploitation
Ce chapitre liste les critères
de choix principaux à prendre en compte lorsqu'on choisit un système
d'exploitation pour un serveur, en informatique de gestion. Je ne reviendrai
pas sur la disponibilité, traitée précédemment.
Support des applications vitales de l'entreprise
SGBD
Un système d'exploitation
serveur qui ne supporte pas le(s) SGBD de l'entreprise doit être
proscrit, car un changement de SGBD coûterait bien plus cher que
l'adoption d'un autre système d'exploitation. Dans un serveur de
base de données, du reste, le SGBD masque le système d'exploitation
sous-jacent; cette affirmation est si vraie que Oracle commence à
commercialiser une solution où le SGBD est livré avec son
système d'exploitation (un Solaris réduit), tout installé
et intégré, et celui-ci est quasi-invisible.
A part Oracle, qui supporte
4 Linux différents, des portages ont été réalisés
pour Informix, Sybase et DB2. Pour un utilisateur éventuel, il reste
à vérifier, pour chaque portage, que les bibliothèques
ainsi que les outils d'administration et d'interopérabilité
avec les clients sont disponibles. Des indisponibilités sont certaines,
vu l'absence d'intérêt manifestée par les grandes plates-formes
d'administration comme Tivoli, HP OpenView et CA-Unicenter, absentes du
marché Linux (recherche faite sur leurs sites Web le 14/1/99).
Tout cela est juste.
Serveur Web
Si le système d'exploitation
devra supporter un serveur Web, voici quelques particularités de
celui-ci:
Une page active est aussi
utilisable dans le client, avec ses scripts et ses composants ActiveX.
Dans ce cas, le HTML généré par l'exécution
des scripts et composants est affiché directement.
Une alternative aux pages
ASP de Microsoft est la solution Servlet de Java, où le serveur
Web peut renvoyer des pages générées dynamiquement
par une application en réponse à la demande d'un client.
Cette solution est moins souple dans la mesure où il est plus facile
de faire évoluer du script que du code Java, et dans la mesure où
(chez Microsoft) les scripts JavaScript ou VBScript, peuvent accéder
à n'importe quel objet COM pour en personnaliser le comportement;
ils peuvent aussi modifier dynamiquement, dans le poste client, le contenu
et l'affichage d'une page HTML. Voir à ce propos mon texte: http://worldserver2.oleane.com/dmartin/XML_F.htm.
Voici la situation système
d'exploitation par système d'exploitation:
-
Solaris: serveur Web gratuit, Sun WebServer 2.0, administrable à
distance à partir d'un navigateur quelconque et supportant l'API
Java Servlet. Ne supporte pas JavaScript. Voici sa page d'accueil, telle
qu'elle se présente pour un client:
Sun offre aussi un serveur
Web entièrement écrit en Java, Java WebServer. Ce serveur
est facile à porter dans tout système d'exploitation qui
possède une machine virtuelle Java compatible. Il existe déjà
sous Solaris et NT et sera sans doute porté sous Linux.
-
NT: Internet Information Server, gratuit, administrable également
à distance et supportant de nombreuses API, ainsi que des pages
actives; l'intégration IIS-MTS permet de supporter des applications
transactionnelles. Supporte JavaScript et VBScript.
-
Linux Red Hat: serveur Apache, gratuit, administrable à distance.
C'est le serveur Web le plus répandu du marché aux USA, mais
il ne supporte pas JavaScript. Voici sa page d'accueil telle que la voit
un client:
A priori Apache muni de scripts en Perl, s'appuyant
éventuellement une base de donnée livrée avec Linux
permet de couvrir la plupart des besoins (à moins de vouloir absolument
faire une usine à gaz). De très nombreux fournisseurs d'accès
internet ont fait ce choix. Linux et BSD sont plus utilisés que
Windows dans ce domaine.
Serveurs d'applications
Un serveur d'applications constitue
le niveau 2 d'une architecture client-serveur à 3 niveaux. Il supporte
la logique de traitement applicatif, les clients se contentant d'une interface
utilisateur la plus légère possible. Il sous-traite la gestion
des données persistantes au serveur de SGBD, au niveau 3.
Aujourd'hui, les applications
supportées par un serveur d'applications sont orientées-objets.
Elles constituent donc un ensemble d'objets qui tournent en utilisant les
services d'un runtime. Ce dernier leur apporte toutes sortes de services
décrits dans le schéma de "l'architecture AAA" ci-dessous.
Dans ce schéma, le client est dans la couche supérieure (avec
2 architectures possibles) et le serveur de 3ème niveau est dans
la case de droite de la couche Services. Le serveur d'applications peut
donc supporter tous les services de la couche "middleware" et ceux que
l'on appelle "Services communs".
Architecture applicative
proposée par Daniel Martin
Dans la pratique, on commence
à trouver des serveurs d'applications tout faits, accompagnés
des outils de développement indispensables pour créer rapidement
des applications qui utilisent leurs services (des serveurs sans outils,
comme BEA M3, imposent des délais et difficultés de développement
plus importants). Aujourd'hui, les serveurs d'applications les plus prometteurs
sont basés sur la spécification Enterprise JavaBeans.
Donc, si le système d'exploitation
retenu doit supporter des applications au sens "serveur d'applications"
il doit supporter une des solutions du marché, de préférence
avec machine virtuelle Java, runtime Enterprise JavaBeans, intégration
au serveur Web et outils de développement adaptés. La situation
est la suivante aujourd'hui:
-
Solaris et NT: plusieurs serveurs sont déjà disponibles,
d'autres sont annoncés, y compris avec runtime Enterprise JavaBeans
-
Linux: pas encore d'annonce, mais cela viendra sûrement au moins
pour des serveurs d'applications entièrement écrits en Java.
Cette certitude vient du portage, en voie d'achèvement, du JDK 1.2
(Java Development Kit) sous Linux, réalisé avec le concours
de Sun.
Moniteurs transactionnels
Un moniteur transactionnel
a deux fonctions essentielles:
-
la protection de l'intégrité transactionnelle par COMMIT
en deux temps
-
le partage des ressources (connexions aux SGBD réutilisables par
multiplexage, pools d'objets, etc.)
Ces fonctions existent que
les applications soient traditionnelles (exemples de moniteurs: CICS et
TUXEDO) ou orientées-objets (Microsoft MTS). Les moniteurs transactionnels
convergent tout doucement avec les serveurs d'applications: ce sera sans
doute fait dans 2 - 3 ans.
La situation est la suivante:
-
Solaris: Les moniteurs disponibles sont TUXEDO et M3 de BEA, CICS et ENCINA
d'IBM.
-
NT: Les moniteurs disponibles sont TUXEDO, M3 et CICS, ainsi que le MTS
de Microsoft.
-
Linux: pas de moniteur transactionnel.
L'absence de moniteur transactionnel
sous Linux renforce la conclusion qui se dessine depuis le paragraphe sur
la disponibilité: Linux n'est pas destiné aux grandes applications
transactionnelles, au moins pour le moment.
Effectivement, la gestion, les bases de données
ne sont pas l'objectif
principal des développeurs Linux.
Progiciels de workflow disponibles: Lotus Domino,
FlowMark, etc.
Grands progiciels: SAP, Oracle Applications, BAAN,
etc.
Progiciels d'application divers
Data Warehouse
Matériels supportés par Linux
Red Hat supporte Intel (486,
Pentium, etc.), Digital Alpha et SPARC.
Le critère "matériel"
est moins important que le logiciel, vu le nombre croissant de solutions
logicielles portables. L'UNIX testé, Solaris 7, est portable sur
Intel et SPARC. Selon le fournisseur de Linux (Red Hat, Caldera, etc.)
ou selon le code que l'on télécharge sur l'Internet, Linux
existe sur d'autres processeurs.
Est-ce que Solaris fonctionne
bien sur Intel? Il n'y a sûrement pas 10 millions d'utilisateurs
de cette configuration.
Fonctionnalités techniques du système
d'exploitation
Multitâches préemptif
Linux, UNIX et NT offrent tous
ce type de fonctionnement.
C'est un peu rapide: le multi-tâche
est beaucoup mieux géré sous Linux que sous Windows; sans
parler du champion du domaine: BeOS, encore un peu neuf par contre.
Multithreading
Le mécanisme système
de multithreading est important surtout pour la montée en charge,
où il permet:
-
De ne verrouiller que le minimum d'objets strictement nécessaire,
ce qui diminue la fréquence et la gravité des conflits d'accès
qui empêchent le parallélisme de fonctionner
-
De changer de contexte très vite, ce qui est précieux lorsqu'il
y a de nombreux utilisateurs et/ou de nombreux objets applicatifs. A ce
propos, il y a deux types de threads: les threads planifiés, processus
système "légers" qui reçoivent le contrôle du
processeur après planning (comme les processus classiques, mais
avec un planning simplifié) et les threads coopératifs, définis
par le programmeur d'application, qui gardent le processeur tant qu'ils
veulent et doivent en rendre le contrôle par action délibérée
(si ils gardent le contrôle trop longtemps c'est tout le processus
père du thread qui perd le contrôle). Grâce aux threads
coopératifs un programme peut paralléliser son exécution,
ou rendre indépendantes des séquences de code, en définissant
plusieurs threads.
Dans le multithreading décrit
ci-dessus, le système d'exploitation doit multiplexer (c'est à
dire allouer automatiquement ou sous contrôle de l'application) N
threads de l'application sur P processus légers qui utilisent Q
processeurs. L'optimisation de ce multiplexage est extrêmement difficile.
Elle est pourtant d'une extrême importance, car elle conditionne
la possibilité d'exploiter de nombreux processeurs en parallèle
avec un bon rendement, sans temps d'attente. C'est l'état de l'art
en matière de montée en charge, et même de grands constructeurs
ont du mal à effectuer cette optimisation. C'est cette difficulté
qui explique les années de retard de constructeurs comme IBM ou
Hewlett-Packard sur Sun dans la livraison de machines SMP avec beaucoup
de processeurs: inutile d'accumuler les processeurs si leur rendement sera
misérable.
Une application peut gérer
son propre multithreading coopératif, par exemple pour en disposer
sur plusieurs systèmes d'exploitation qui, eux, n'en ont pas. C'est
le cas de Oracle, par exemple, qui utilise son propre multithreading lorsque
le système d'exploitation sous-jacent n'en a pas qui convienne.
-
Solaris et NT offrent les deux types de threads, ce qui permet d'exploiter
le mieux possible les configurations multiprocesseurs pour supporter de
nombreux utilisateurs. Dans les deux cas, ces threads sont si efficaces
que Oracle les utilise de préférence aux siens, et malgré
l'obligation d'écrire du code non portable pour cela.
-
Linux offre des threads POSIX, mais ceux-ci sont encore un peu récents:
ils viennent encore d'être améliorés dans la version
2.2, non encore disponible en janvier 1999.
Les conséquences de
la jeunesse des threads de Linux sont considérables: Linux n'a aucune
chance de supporter une montée en charge importante où il
y a des milliers d'utilisateurs actifs simultanés.
Et bien si, ça marche.
Le multi-tâche de Linux est assez robuste pour cela comme l'a montré
Louis Léon, chercheur auprès du CNRS et de l'ENSTA: il a
fait des tests en charge sur des machines mono ou multi-processeurs, en
comparant Linux aux Unix commerciaux, avec l'aide de spécialistes
travaillant pour les industriels fournissant ces machines Unix. Là
encore, il faut relativiser un peu, s'il faut redémarrer NT tous
les 3 jours quand on utilise Word 8, que va-t-il se passer avec des milliers
d'utilisateurs simultanés? C'est vrai que les threads ne sont pas
encore bien supportés par Linux; la libc n'est pas réentrante, ce qui est
très genant. Par contre, on peut avoir un grand nombre de processus en
cours d'exécution sans que le multi-tache n'avoue de grandes faiblesses.
C'est beaucoup moins vrai avec Windows.
Voici ce que des tests de threads (menés par Stéphane Pion) sous Solaris, HP-UX
et AIX ont révélé:
Les threads solaris n'ont jamais été coopératifs (2.5 et 2.6) Sun a donc
été disqualifié d'office. En fait SCHED_FIFO était présent mais déclarait un
scheduling UNIX classique!
Quant à la coopération sur les 2 autres systemes, elle a montré
des trous de fonctionnement.
Ces problèmes ne se produisent qu'extrèmement rarement, mais quand on demande
de la coopération et qu'un thread
est déclanché à la place d'un autre, ça s'arrete vite!
Les mêmes problèmes existent peut-être sur linux, mais là, l'accès aux
sources permet de mieux savoir ce que l'on fait.
Les threads les plus performants et aboutis sont à priori ceux de DEC
(non testé ici mais très bonne réputation, et documentation excellente)
Les threads BULL sont en retard (ancienne norme).
Solaris fait une salade entre les thread solaris et les pthreads. Mais
ils présentent une libc fortement réentrante.
Le FIFO HP n'est pas satisfaisant (comme AIX à priori).
J'ai pu remarquer que les problèmes apparaissaient suite à l'utilisation
simultanée de plusieurs processeurs (sur HP K260 PA8000 x 2)
Cette affirmation est confirmée
par la liste des résultats de benchmarks transactionnels publiés
par le Transaction Performance Council (TPC): aucun résultat de
test n'a jamais été publié, ni en transactionnel (TPC-C)
ni en aide à la décision avec grande base de données
(TPC-D). Nous verrons un peu plus bas que, contrairement à NT et
Solaris, Linux ne supporte pas les configurations multiprocesseurs de manière
automatique et stable.
Multiprocesseurs symétriques (SMP)
La technologie SMP est indispensable
à la montée en charge d'un système, particulièrement
si c'est un serveur. Début 99, Solaris gère des systèmes
SMP jusqu'à 64 processeurs et NT jusqu'à 8. Voici le texte
que l'on trouve sur le site Red Hat http://www.redhat.com/support/docs/rhl/intel/rh52-hardware-intel-3.html#ss3.2
le 13/1/99, concernant la dernière version du produit, la 5.2 que
j'ai testée:
"To utilize more than
one processor on SMP (symmetric multi-processor) machines, you need to
build a custom kernel; this is because SMP support is still of experimental
quality in the Linux 2.0.xx kernel."
C'est-à-dire que Linux
ne supporte les multiprocesseurs que de façon insuffisamment fiable.
La jeunesse des threads dans Linux est cohérente avec celle du multitraitement:
pour bien exploiter un système SMP multiutilisateurs il faut des
threads.
C'est complètement faux.
Le "you need to build" indique qu'il faut recompiler le noyau, opération
toute à fait banale, ne serait-ce que pour ajouter ou enlever des
"driver". Il y a maintenant des menus déroulants pour effectuer
cette opération. Par ailleurs une application qui utilise plusieurs
processus (un serveur web typiquement, qui "fork" à chaque nouveau
client) exploitera parfaitement un système SMP. Même la commande
"make" saura parallèliser une compilation. Quand à la notion
d'expérimentalité, elle est relative: Microsoft serait probablement
déjà très satisfait du fonctionnement actuel de Linux
en SMP.
En matière de performances,
les conséquences sont considérables: Linux a 5 ans de retard
sur Solaris et 4 sur NT.
Vue la vitesse d'avancement de
NT5 (annoncé pour début 98) , les 4 ans de retard de Linux
par rapport à NT risquent fort de se transformer dans 6 mois en
2 ans d'avance!
Fichiers journalisés pour protéger
contre les crashs et pannes de courant
Un système d'exploitation
moderne doit protéger le mieux possible l'intégrité
de son système de fichiers contre une panne de courant ou un arrêt
brutal quelconque. C'est pourquoi les systèmes d'exploitation comme
Solaris et NT utilisent une technique de journalisation (loging) analogue
à celle d'un SGBD.
Cette protection efficace a
un autre avantage: elle accélère considérablement
les écritures sur les disques. Celles-ci ne se font plus immédiatement
dans le fichier lui-même; elles sont gardées en mémoire
cache et seront exécutées dès que possible au sens
de la performance. Par contre, une image du bloc de fichier à écrire
est immédiatement ajoutée au bout d'un petit fichier séquentiel,
le journal, où elle sera disponible pour terminer ultérieurement
la mise à jour du fichier de données si nécessaire.
L'accès au fichier journal est en général plus rapide
qu'un accès au fichier de données, surtout si on lui a réservé
un bras de disque; et l'effet de mémoire cache ajoute à la
performance.
Hélas, Linux n'utilise
pas de journalisation. Un système de fichiers Linux sera donc fragile,
bien plus fragile que Solaris ou NT. En outre, en cas d'incident avec un
disque contenant un grand système de fichiers (des milliers de fichiers)
la commande "fsck" d'analyse et rattrapage de l'erreur risque de durer
une heure ou plus.
N'importe quoi! Pour qu'un fsck
dure une heure il faudrait probablement coller un disque de 10Go à
un 486, et encore. Heureusement puisque ce fsck est périodique (tous
les N boot...) pour
maintenir le disque en bon ordre. Les entrées/sorties disque sont
considérablement plus rapides sous Linux que sous Windows. Dans
le cas de lecture/écriture non séquentielles, Louis Léon
a montré que Linux pouvait être jusqu'à 20 fois
plus rapide que Windows! Quant à la fiabilté du système
de gestion de fichier de Windows, elle est notoirement déplorable.
Même dans l'ouvrage de vulgarisation de Roberto Di Cosmo,
certains inconvénients du "FileSystem" microsoft sont expliqués.
64 bits (adresses, instructions, données)
La technologie "64 bits" a
3 dimensions:
-
des adresses sur 64 bits en mémoire (donc aussi dans un fichier,
à cause de l'effet de cache disques transparent des systèmes
d'exploitation modernes)
-
des instructions sur 64 bits, pour accélérer leur traitement
-
des données sur 64 bits pour accélérer leur traitement,
supporter les adresses sur 64 bits et accroître la précision
des nombres non entiers.
La technologie 64 bits est
intéressante sur le plan performance et sur le plan précision
des calculs. Les processeurs modernes la supportent de plus en plus.
Annuaire fourni avec système d'exploitation
(DNS, NIS, LDAP)
DNS est la solution traditionnelle
d'annuaire WAN / Internet de TCP/IP sous UNIX. NIS est son équivalent
LAN. Linux et Solaris les supportent tous deux. NT supporte DNS. La solution
d'avenir est Lightweight Directory Access Protocol (LDAP) supportée
par Solaris, promise dans NT 5 fin 1999 selon Microsoft, et indisponible
dans Linux.
L'absence d'annuaire LDAP (sauf
si on en trouve un, comme d'habitude) est lourde de conséquences
pour l'administration et les applications, ainsi que pour l'intégration
avec les autres systèmes d'exploitation modernes, qui des mainframes
à NetWare ont tous adopté LDAP.
Respect des standards: UNIX98, POSIX, etc.
-
Le support des standards POSIX par NT, que Microsoft s'obstine à
affirmer depuis des années, est une plaisanterie: ce qui est fourni
est à peu près inutilisable. On ne voit pas pourquoi, du
reste, Microsoft encouragerait une portabilité vers UNIX.
-
Le support des standards par Sun fait l'objet d'un engagement clair et
vérifiable, tant pour sa complétude que pour sa qualité.
Regrettons toutefois que l'unicité de l'interface utilisateur CDE
(Common Desktop Environment), commune à l'origine aux divers UNIX
(HP, IBM, Sun, etc.), ait été abandonnée par tous
ces fournisseurs, chacun y ajoutant désormais des extensions propriétaires:
les mauvaises habitudes ont la vie dure! Sun, par exemple, en a ajouté
pas mal dans son CDE 1.3. Il faut savoir aussi que, de leur côté,
les utilisateurs ont préféré l'interface utilisateur
qu'ils connaissaient (ligne de commande, Motif ou Open Look).
-
Aujourd'hui, l'interface utilisateur HTML est de plus en plus utilisée,
souvent avec le renfort d'applets Java: sous Solaris on peut s'en servir
(en local ou à distance) tant pour installer le système que
pour l'administrer.
-
Linux offre plusieurs interfaces utilisateur graphiques en plus de la ligne
de commande. J'ai installé KDE 1.0, que j'ai trouvée conviviale.
De manière générale, Linux et ses diverses distributions
(Red Hat, etc.) s'efforcent de respecter les standards chaque fois que
c'est possible (exemple: threads POSIX).
KDE ressemble beaucoup à
CDE. En revanche , l'environnement GNOME, muni des window-manager "Window
Maker" ou "Enlightenment" va beaucoup plus loin que tout ce qui existe
sur les autres plateformes. Cela dit, GNOME, comme tout projet GNU/FSF
n'est pas lié à Linux et sera vraisemblablement disponible
pour les autres Unix, dont Solaris.
Outils de génie logiciel
API système documentées
Les trois systèmes d'exploitation
ont des API documentées.
-
NT a un ensemble d'API immense, documenté sur plus de 2 GO de texte,
dont il est à peu près impossible de faire le tour tant il
y a de matière. Le problème est d'autant plus sérieux
que le nombre d'interfaces croît très vite, que les interfaces
existantes évoluent, et que Microsoft a intégré profondément
dans le système d'exploitation de très puissants outils:
le SGBD SQL Server, le moniteur transactionnel MTS, le serveur Web IIS,
la passerelle d'interopérabilité entre objets COM, etc.
-
Solaris a également des API documentées, mais contrairement
à Microsoft la séparation entre couches est nette: Solaris
est bien plus facile à comprendre et à utiliser pour un développeur
système que NT. Solaris est aussi plus petit: environ 12 millions
de lignes de code contre plus de 30 millions pour NT 5.
-
Linux a également des API documentées, mais avec une hypothèse:
celui qui veut savoir et comprendre doit lire le code. Cela dit, Linux
est extrêmement personnalisable. Il est facile d'en retirer ce dont
on n'a pas besoin. Pour créer une application optimale avec Linux
on optimise le système d'exploitation, comme on le fait pour des
systèmes embarqués. Cela permet de créer des systèmes
d'exploitation très peu gourmands pour des applications spéciales:
c'est un domaine où la supériorité de Linux sur Solaris
et NT est réelle, même si c'est un domaine pour de rares spécialistes.
Là encore c'est une contre-vérité:
la litérature sur Linux chez O'Reilly, Addison-Wesley, Prenctice-Hall,
International Thomson Publishing et d'autres est tout à fait conséquente.
Sans parler des docs en ligne fournies avec l'OS. Il n'est absolument pas
nécessaire d'aller regarder le code pour faire des appels systèmes.
D'ailleurs ceux-ci sont très biens placés en termes de respect
de la norme POSIX.
Maintenant il est vrai que des experts
peuvent obtenir LE noyau dont ils ont besoin, comme dans le cas de cette
expérience
de biologie qui a fait de Linux, le seul OS "grand pubic" à
être allé dans l'espace.
Compilateurs C, C++, Java avec un environnement
de développement moderne
-
NT supporte une importante batterie d'outils de génie logiciel,
qu'ils proviennent de Microsoft ou de tiers. Cela permet de développer
des applications, en général non portables hors du monde
Microsoft, à interface utilisateur Windows ou HTML. Même les
modes de développement les plus ambitieux (grands projets avec outils
de génie logiciel supportant les diverses phases du cycle de vie)
sont possibles et en général conviviaux. On peut aussi développer
en Java portable ou propriétaire.
-
Solaris offre une large gamme d'outils de développement, y compris
en Java. Ce qui manque aujourd'hui (alors que Microsoft les offre sous
NT) ce sont les outils pour développer et mettre au point en mode
client-serveur du code de script JavaScript et du texte HTML / XML: Sun
n'a pas encore pris conscience du besoin de disposer de pages actives,
ni dans le client ni dans le serveur: son offre repose sur la génération
dynamique de pages dans un serveur, notamment en Java avec l'API Servlet.
Cette offre est donc moins complète que celle de Microsoft.
Les outils de développement
gratuits GNU, disponibles sous Linux, sont aussi disponibles sous Solaris.
-
Linux offre l'environnement de développement GNU pour le langage
C/ C++ et offrira très bientôt la dernière version
du JDK 1.2 Java. Comme Solaris, Linux est en retard sur Microsoft en ce
qui concerne l'interface utilisateur HTML, les scripts et XML.
Linux, comme Solaris, est davantage
destiné à des développements C/C++, ADA, Fortran...
Pour les derniers gadgets à la mode Microsoft est toujours mieux
placé. Par contre, ce qui semble plus convivial au premier abord
est généralement moins productif lors d'une utilisation intensive
car moins propice à une automatisation. De plus le respect des normes
(java par exemple) par Microsoft est assez douteux.
L4G et générateurs d'applications
Qualité de service
Une solution d'entreprise
ne peut se contenter de fonctionnalités suffisantes. Elle se juge
aussi sur son aptitude à fournir une bonne qualité de service,
indispensable aux applications vitales (classes 3, 4 et 5). Cette qualité
s'apprécie dans les domaines ci-dessous, dont nous donnons une définition
succincte, et qui impactent les choix d'architecture.
Accessibilité
Définition: une
application est accessible si on peut travailler avec à partir de
l'infrastructure dont on dispose: matériel, logiciel système
et accès réseau.
-
Pour ne pas que l'interface utilisateur soit un obstacle à son accessibilité,
une application Internet doit dialoguer en HTML, voire même avec
une version de ce langage assez ancienne pour être supportée
par la grande majorité des navigateurs (browsers) disponibles.
-
Pour qu'un serveur soit accessible de partout il faut qu'il soit relié
à l'Internet. Il suffira alors d'une simple ligne téléphonique
et d'un contrat avec un prestataire d'accès local pour pouvoir accéder
à ses services.
-
Pour qu'un SGBD soit accessible à beaucoup d'applications clientes
il faut qu'il supporte le protocole ODBC. On est alors sûr de faire
beaucoup de choses avec, mais pas de les faire de manière performante
ou sécurisée: l'accessibilité n'implique pas d'autres
qualités de service.
Disponibilité
Définition: une
application est disponible si on peut s'en servir sans attendre chaque
fois qu'on en a besoin.
En somme, c'est l'application
qui doit attendre que l'homme veuille travailler, pas le contraire. La
disponibilité implique:
-
La résistance aux pannes du matériel, du réseau et
du logiciel (un problème avec un logiciel ne doit pas impacter les
autres): cette qualité est appelée à tort "Haute Disponibilité"
ou même "Tolérance aux Pannes" par certains constructeurs,
qui ignorent ce faisant les autres exigences de la disponibilité.
Cas particulier: les "pannes" provoquées par un accroissement de
capacité de la configuration (ajout de matériel, mise en
cluster...)
-
En général la solution retenue repose sur une redondance:
multiprocesseurs, disques RAID 3, 5 ou plus, contrôleurs d'entrées-sorties
et bus multiples, etc. Elle demande, en plus, un dispositif de basculement
de charge qui soit le plus transparent possible pour les applications,
une journalisation pour protéger données et transactions,
etc. Ces points seront abordés en détail au chapitre "Disponibilité".
-
La résistance aux incidents d'environnement: pannes d'électricité,
élévation de température, destruction des supports
dans un incendie...
-
La résistance aux erreurs de manipulation des utilisateurs ou des
informaticiens. Exemple: si un utilisateur lance une interrogation de base
de données qui génère un trop grand volume de réponses
susceptible de bloquer l'exploitation par saturation du disque ou du processeur,
un système résistant aux erreurs bloquera cette interrogation
avant qu'il soit trop tard.
-
Les protections reposent sur le filtrage des utilisateurs qui accèdent
au système, l'analyse critique des ordres qu'il reçoit, les
quotas alloués, etc.
-
L'aptitude à supporter des changements de version de logiciel sans
interruption de service. Un changement de version du système d'exploitation
ou du SGBD peut demander plusieurs heures ou même plusieurs jours,
en comptant l'installation et les tests. Une haute disponibilité
peut exiger que tout changement de version se fasse sans arrêt d'exploitation,
ou avec une légère dégradation de la capacité
de traitement acceptable à une heure de charge faible. Voir les
détails au chapitre "Disponibilité".
Intégrité des données et
des transactions
Définition: un
ensemble de données ou d'opérations a la propriété
d'intégrité lorsqu'il n'a pas subi d'altération qui
supprime, ajoute, modifie ou déplace un élément.
Exemple: une transaction
qui comprend plusieurs opérations a la propriété d'intégrité
si toutes ses opérations se sont bien déroulées et
dans le bon ordre.
Ne pas confondre intégrité
et cohérence: la cohérence implique la non-contradiction
des éléments qui existent, pas la présence de tous
les éléments d'un ensemble.
On a l'habitude de décrire
les qualités d'une transaction au moyen de quatre critères
symbolisés par le sigle ACID: Atomicité, Cohérence,
Isolation, Durabilité.
-
L'atomicité exige que toutes les opérations d'une transaction
se soient bien déroulées ou qu'aucune n'ait eu lieu. La fin
d'une transaction où tout s'est bien passé est une opération
appelée COMMIT, qui entraîne l'écriture des données
modifiées dans la base de données (en mémoire) et
dans le journal (sur disque), puis la libération des verrous détenus
par la transaction. Si la transaction se termine mal, l'opération
qui "défait" les mises à jour éventuelles de la base
s'appelle ROLLBACK; elle libère aussi les verrous.
-
La cohérence exige que la base de données, si elle était
synchrone avant la transaction, le soit encore après. Synchrone
signifie que les données ont des valeurs qui sont toutes à
la même date: c'est une condition de leur cohérence, c'est
à dire de leur non-contradiction. En somme, une base cohérente
avant la transaction doit l'être encore après, avec les nouvelles
valeurs de ses données.
-
L'isolation exige que si plusieurs transactions se déroulent en
même temps les opérations de l'une n'impactent pas celles
d'une autre. Ce critère, qui paraît intuitivement utile, a
été remplacé par la norme ISO 9075 qui régit
le comportement des SGBD traitant des transactions SQL par un ensemble
de 4 niveaux d'isolation:
Au niveau minimum, "Dirty
Read", une transaction peut lire des données dans tous les cas,
même si elles sont en cours d'accès par une autre transaction.
On risque ainsi des résultats incohérents, par exemple des
écritures comptables qui ne respectent pas la contrainte "Débit
= Crédit" parce que certaines données ont été
mises à jour et d'autres pas, donc que toutes les données
n'ont pas la même date.
Au niveau suivant, "Read
Committed", une transaction ne peut lire que des données qui ne
sont pas en cours de mise à jour par une autre transaction, c'est
à dire qui sont dans l'état qui suit un COMMIT de fin de
transaction. Ce niveau de protection coûte plus cher en performance
que le niveau précédent. Des quatre niveaux c'est le plus
utilisé, et c'est celui qu'exigent les tests de performance appelés
Benchmarks TPC-C.
Au niveau suivant, "Repeatable
Read", le SGBD garantit que si une transaction relit une donnée
qu'elle avait déjà lue, même il y a une demie heure,
elle retrouvera la même valeur. Le SGBD doit donc garder l'historique
des valeurs des données lues par une transaction, même si
elles ne sont pas mises à jour. Les verrous ainsi créés
ne peuvent être libérés qu'en fin de transaction. Ce
niveau de protection suppose Read Committed et coûte encore plus
cher en performance. Il n'est utile que si le programmeur relit des données
au lieu de les garder en mémoire.
Au dernier niveau, "Serializable",
le SGBD garantit que toutes les transactions se déroulent de manière
totalement indépendante. Ce niveau de protection suppose Repeatable
Read et coûte encore plus cher. Il est rarement utilisé.
-
La durabilité exige que les mises à jour des données
d'une base résistent au temps qui passe et aux incidents éventuels,
c'est à dire qu'on puisse compter dessus. Un SGBD protège
la durabilité (appelée parfois persistance) par un mécanisme
de journalisation, qui garantit:
La possibilité
de remettre la base en état après un incident, en y garantissant
la prise en compte de toutes les transactions terminées par un COMMIT
et l'annulation par ROLLBACK de toutes celles qui étaient inachevées
lors de l'incident; cette remise en état est possible grâce
à un mécanisme de journalisation et de sauvegardes qui fonctionne
en temps réel pendant l'exploitation
La certitude, pour certains
SGBD comme Oracle, que toute transaction entièrement reçue
par un SGBD sera finalement exécutée, immédiatement
si tout va bien, ou après remise en état de la base en cas
d'incident.
Les définitions qui précèdent
s'appliquent à une base de données supposée unique.
Lorsqu'il y a plusieurs bases, peut-être dans des serveurs distincts,
il faut assurer leur coordination et faire en sorte que les propriétés
ACID soient respectées pour la base logique qui est l'ensemble des
deux bases physiques. Nous verrons à ce propos, au chapitre sur
le middleware, le rôle des moniteurs transactionnels et du journal
des transactions.
Performance
La qualité du traitement
veut qu'un ordinateur ne fasse pas attendre l'homme trop longtemps: c'est
une exigence de temps de réponse. On trouvera des conseils pour
obtenir de bons temps de réponse dans les chapitres sur le choix
d'une configuration matérielle et la performance transactionnelle.
Pour le moment, nous définirons
deux aspects de la performance qui sont deux critères de qualité:
Le temps de réponse
perçu par un utilisateur est le temps qui s'écoule entre
le moment où il a demandé un traitement à l'ordinateur
et le moment où la réponse commence à arriver sur
son écran ou son imprimante.
L'aptitude à monter
en charge ("scalability") d'un système est mesurée par le
volume de traitement qu'il peut assurer tout en respectant un critère
de temps de réponse.
Notons que, par convention,
le temps de réponse ne comprend pas le temps nécessaire pour
afficher ou imprimer tous les résultats du traitement: il arrive
donc parfois que ce critère ne soit pas utile, et qu'il faille le
remplacer par un temps total de traitement, qui se termine lorsqu'on dispose
de tous les résultats produits, par affichage ou impression.
Notons aussi qu'un système
peut donner de bons temps de réponse lorsqu'il y a peu d'utilisateurs
et des temps de réponse inacceptables (ou même un blocage
total) lorsqu'il y en a beaucoup. L'aptitude à monter en charge
se traduira donc par des exigences architecturales pour le matériel,
le système d'exploitation, le réseau, l'application, le SGBD
et le moniteur transactionnel. Elle se traduira aussi par des exigences
d'exploitation.
Temps de réponse garanti
Voir dans les paragraphes
précédents les discussions concernant:
-
Le partitionnement en sous-systèmes multiples
-
Le clustering à image système unique
-
La répartition dynamique des charges
-
Le support des configurations SMP
-
Le support des disques RAID
-
Les threads.
Linux n'a pas de mécanisme
spécialement conçu pour garantir un bon temps de réponse.
En particulier, il ne peut pas garantir (comme un mainframe ou un grand
serveur UNIX) un temps de réponse:
Linux n'est effectivement pas comparable
à un mainframe! Mais bon, qui voudrait avoir sur son bureau un ordinateur
qui prendrait la place d'une demi-douzaine d'armoires? Je crois qu'il s'agit
de deux catégories d'utilisations différentes!
-
Par affectation d'un pourcentage de ressources (processeurs, entrées-sorties
disques, mémoire, contrôleurs réseau) minimum à
une application vitale
-
Par définition d'objectifs.
Montée en charge ("scalability")
Sécurité
Le mot sécurité
a deux significations:
-
Le sens du mot anglais "security" qui a trait à la confidentialité,
la protection contre la malveillance, etc.
-
La protection contre les accidents (on dit: "un traitement sûr")
au moyen de sauvegardes des données, de procédures de reprise
sur incident, etc.
Traçabilité
Le mot traçabilité
recouvre deux types d'exigences:
-
Une exigence de type historique: on veut pouvoir retrouver toutes les opérations,
tous les événements et les incidents éventuels qui
ont conduit à la situation présente. Exemple: le compte d'un
client a disparu; on veut retrouver toutes les opérations de modification
ou de suppression de comptes depuis une certaine date.
-
Une exigence de type logique, voire comptable: on veut justifier un résultat
ou un total au moyen du détail des calculs ou opérations
qui y ont conduit. C'est une exigence de preuve. Exemple: l'application
Comptabilité Clients affirme que le solde de M. Dupont est 123.45.
Sachant qu'il était de 98.76 le mois dernier, trouver toutes les
opérations sur le compte de M. Dupont qui peuvent expliquer le nouveau
solde.
Dans les deux cas il est nécessaire
de tenir un historique des opérations. Dans les cas simples, on
peut se contenter d'événements enregistrés dans une
base de données. Souvent, malheureusement, il faut constituer un
historique ad hoc capable de mémoriser de nombreux types d'événements:
on utilisera alors de préférence un SGBD orienté-objets,
mieux à même qu'un SGBD relationnel de stocker de manière
élégante et performante des structures de données
nombreuses et différentes. Et il faudra écrire une application
qui gère l'enregistrement et la recherche dans le journal, voire
aussi l'extraction d'événements pour les "rejouer": ce point
sera repris au chapitre sur la haute disponibilité.
Facilité et vitesse de développement
et maintenance
Cette facilité fait
partie de la qualité de service seulement dans la mesure où
elle permet:
-
de mettre plus vite en exploitation une application nouvelle ou modifiée
-
de faire ces modifications à moindre coût
-
de faire ce travail de manière fiable (absence de bogues)
-
de fournir un résultat dont les autres qualités (ergonomie,
performance, sécurité, etc.) sont valables.
Indicateurs de qualité de service - contrats
de service
Chaque fois que ce sera possible
la qualité sera mesurée à l'aide d'indicateurs chiffrés.
La présence de tels indicateurs sera précieuse dans l'interprétation
des contrats de service conclus entre les prestataires de services et les
utilisateurs de ces
Exploitabilité
Outils d'installation et d'administration locale
La qualité de service
et le coût d'administration d'un serveur dépendent beaucoup
des outils d'administration dont on dispose, et de l'automatisation des
tâches répétitives d'administration et de la fonction
de supervision et réponse aux événements. Il s'agit
ici des divers métiers d'administration:
-
Réseau
-
Système
-
SGBD
-
Services Web
-
Applications, production et sauvegarde avec gestion de la qualité
de service
-
Sécurité
-
PC
On sait qu'il faut administrer
des serveurs et clients répartis de manière centralisée
pour bien utiliser les compétences et ne pas dépenser trop.
Outils d'administration centralisée CA-Unicenter,
Tivoli, HP OpenView, SunNet Manager, etc.
Solaris et NT disposent aujourd'hui
d'outils d'administration fournis par de nombreux éditeurs et permettant
d'assurer une qualité de service maîtrisée et un coût
d'administration raisonnable.
Linux, par contre, n'a pas
d'offre Tivoli, HP OpenView, CA-Unicenter ou SunNet Manager: on ne peut
l'administrer de façon professionnelle, mais seulement de façon
artisanale, ce qui coûte plus cher et ne permet pas de garantir la
qualité de service. Je pense que l'habitude des linuxiens de bricoler
le système d'exploitation, et de faire par eux-mêmes plutôt
que d'acheter, décourage les éditeurs de plates-formes d'administration
ci-dessus, dont les produits sont naturellement contraignants et onéreux.
C'est très discutable
puisqu'Unix permet d'utiliser n'importe quelle application à distance
tandis que sous Windows un couple client/serveur doit être développé
pour chaque application. Par ailleurs, les différents langages de
scripts aliés aux commandes systèmes permettent de faire
beaucoup plus de chose qu'un produit fermé. Là encore la
modularité d'Unix paie.
Linux est-il économique en exploitation?
Dans LMI du 24/4/98 mon
article sur le coût des petits serveurs Oracle montrait que dans
le coût total d'un serveur NT sur 5 ans, soit 871.392 FF, le coût
de la licence du système d'exploitation représente 1,6% et
les divers coûts humains (salaires, charges et prestations externes)
54,9%. J'ai évalué dans le tableau ci-dessous le coût
d'un serveur de SGBD Oracle sous Linux identique à celui utilisé
avec Windows NT. J'ai supposé, bien sûr, que la configuration
biprocesseur fonctionne sous Linux. N'ayant pas fait les tests de performance
de Oracle sur cette configuration Linux, je n'en ai pas indiqué
les résultats.
Les coûts d'un serveur
Linux apparaissent les mêmes que ceux d'un serveur NT, en supposant
que les coûts Oracle soient les mêmes, à deux différences
près:
-
La licence Linux et son support sont gratuits, d'où une économie
de 35.000 FF
(hypothèse pas très équitable, car on compare
un support Microsoft, disponible en une heure ou deux et fourni par du
personnel à compétence certifiée, à un support
de type forum Internet à disponibilité et compétence
aléatoires)
-
L'absence (aujourd'hui) d'agents d'administration Linux pour plate-forme
HP OpenView ou BMC Patrol (ou Tivoli, ou CA-Unicenter, etc.) rend difficile
et coûteuse l'administration centralisée des serveurs Linux,
qui devra donc être effectuée avec des outils UNIX primitifs
et quelques outils Oracle. De ce fait on économise 22.392 FF de
coût de licence d'outils d'administration, mais on dépense
120.000 FF de plus en salaires et charges d'administration système
Linux. J'ai estimé qu'un administrateur système pouvait gérer
20 serveurs UNIX ou NT et seulement 10 serveurs Linux, faute d'outils.
Le surcoût provient aussi du support des disques RAID et des clusters
par bricolage de Linux (voir mon étude sur le Web).
Là où je travaille on n'est
pas aussi riche et on s'en sort plutôt pas mal avec 4 administrateurs
systèmes pour 400 stations Unix grâce aux "outils primitifs".
Comme quoi, la formation est peut-être préférable à
de soit-disant produits miracles (c'est ma conviction profonde).
|
|
|
|
|
|
|
|
|
|
Maintenance matériel
(5 ans) (HP, Sun)
|
|
|
|
Support téléphonique
système d'exploitation et réseau (5 ans) (Microsoft, inclus
chez Sun)
|
|
|
|
Licences système d'exploitation
serveur et clients (5 ans) (Microsoft, inclus chez Sun)
|
|
|
|
Licence SGBD et outils admin.
Oracle (5 ans)
|
|
|
|
Licence outils optimisation
Oracle (5 ans)
|
|
|
|
MAJ licence et support tél.
Oracle (5 ans)
|
|
|
|
Licence et support outils
administration réseau et système:
- NT: HP Openview NNM + Manage/X
- Sun: Administration système HP OpenView
IT/O + MeasureWare / Perfview
N. B. Solution un peu moins chère: administration système
avec BMC Patrol
|
pas d'outil pour Linux
|
22392 |
79688 |
Salaire + charges administrateur
SGBD (5 ans)
(1 administrateur gère 10 serveurs)
|
|
|
|
Sal. + charges administrateur
système (5 ans)
(1 adm gère 20 serveurs UNIX ou NT, 10 Linux)
|
|
|
|
Salaire + charges administrateur
réseau
(5 ans) (1 administrateur gère 40 serveurs)
|
|
|
|
Formation administrateurs
(5 ans, par serveur)
|
|
|
|
Environnement (électricité,
fournitures, etc...)
|
|
|
|
Coût total d'un serveur
Oracle 8 sur 5 ans (FF)
|
|
|
|
Débit en data warehouse
(MB/s)
|
|
|
|
Coût par MB/s (rapport
prix / performance en KF/MB/s, d'autant meilleur qu'il est plus bas)
|
|
|
|
Budget d'un petit serveur de
data warehouse Oracle 8
Même si on prend d'autres
chiffres, le fait d'économiser avec Linux la licence système
et les licences d'outils d'administration système se traduit par
un surcoût en temps humain très supérieur à
l'économie de licences. Lorsqu'un serveur demande une administration
importante pour garantir la qualité de service, Linux n'est donc
rentable que dans les sociétés où on ne compte pas
les coûts humains associés. En outre, aucun test officiel
de performance TPC-C ou TPC-D n'ayant jamais été publié
avec Linux, le niveau de performance d'un tel serveur ne peut être
connu.
Conclusions sur l'administration
Du fait de l'absence d'agents
pour administrer des serveurs Linux de manière centralisée:
-
Il est difficile d'assurer une haute qualité de service avec un
serveur Linux pour les applications qui en ont besoin, faute de fonctions
de supervision automatique et d'automatisation de procédures d'exploitation.
-
Si on adoptait malgré tout Linux pour des serveurs qui demandent
une supervision constante, le coût de celle-ci rendrait le choix
Linux aberrant.
-
Dans tous les cas où l'application exige qualité de service
et coût d'administration modique il vaut mieux adopter une solution
AS/400, UNIX ou NT, où les outils existent.
-
Linux est une solution valable et économique pour les serveurs dont
l'exploitation est si simple et régulière qu'elle ne demande
pour ainsi dire pas d'administration. C'est le cas, par exemple, pour certains
serveurs d'impressions ou de communications.
C'est une question de savoir faire;
des administrateurs systèmes habitués à la philosophie
Unix auront une meilleure productivité avec les outils "primitifs",
plus puissants que leurs compères boutonneux, bourrés de
sous-menus inextricables.
Sécurité
Certification C2, B1, etc.
-
Solaris est certifié C2 et offre aussi une version B1, plus sûre
bien que plus contraignante
-
NT est certifié C2, si on oublie les communications en réseau.
-
Linux n'a aucune certification officielle, donc aucune protection sérieuse.
Nous sommes perdus: il sert de
firewall un peu partout! NT en revanche est un bastion imprenable bien
connu, particulièrement insensible aux virus! C'est une présentation
complètement coupée de l'expérience du réel!
Il n'y a rien de plus facile que de trouver des listes de failles de sécurité
dans WIndows sur internet. Faites une petite recherche sur "back orifice"
par exemple...
Support de protocoles sécurisés:
IPSEC, PPTP, etc.
Support de clés publiques / partagées,
serveurs Kerberos, certificats
Disponibilité de firewalls
Intégrabilité
Mainframes
Autres systèmes UNIX
NetWare
NFS et SMB
En plus de NFS, Solaris 7
et les distributions Linux offrent tous deux un démon SMB permettant
à tous les PC du réseau de voir leurs fichiers comme des
fichiers de PC, et d'y accéder avec le protocole Server Message
Bloc d Microsoft.
CORBA, DCOM
Pérennité
Evolution par versions à compatibilité
garantie? à quelle périodicité?
Garantie de support des périphériques
nouveaux lorsqu'ils sont disponibles (drivers)
Risque de disparition de l'auteur d'un module important
Services disponibles
Red Hat et Pacific HiTech ont
annoncé la disponibilité de support 24 x 7 aux USA; en France
des SSII commencent à se déclarer compétentes et à
offrir du support payant.
Services de l'éditeur du système
d'exploitation
-
Formation
-
Hot Line à temps de réponse garanti et connexion au système
client
-
Conseil
-
Intégration
-
Certification de compétence
Disponibilité en France
Disponibilité 24 x 7
SSII: à compétence certifiée
ou auto-certifiée?
Références installées en applications
d'entreprise
Stratégie des fournisseurs
Voici quelques éléments
sur la stratégie des fournisseurs à l'égard de Linux.
-
Intel, Netscape ont mis de l'argent dans Red Hat en 9/98
-
En 99, DELL, Gateway et Compaq livreront des PC avec Linux pré-installé
-
Le navigateur Netscape 4.5 tourne sous Linux
-
Les éditeurs investissent dans Linux parce que c'est un marché
qui se développe et n'est pas sous la coupe de Microsoft
Remarques faites pendant les tests
Solaris
-
Solaris a été étudié pour être installé
même dans des serveurs sans carte graphique écran: un écran
VT100 ou un émulateur VT100 dans un PC suffisent pour démarrer.
Par la suite, on peut finir d'installer le système en mode VT100
ou à partir d'un navigateur HTML, ce dernier fonctionnant dans le
système déjà installé si il a une carte graphique,
sinon à distance.
-
Le processus d'installation de Solaris permet de générer
un script de reproduction automatique (JumpStart) pour reproduire l'installation
sur d'autres serveurs sans intervention.
-
Solaris installe ses applications avec InstallShield, ce qui est aussi
convivial que sur PC. Toutefois, on n'a pas besoin de rebooter Solaris
après une installation d'application.
-
Solaris offre un outil bien pratique pour visualiser le contenu des fichiers
WORD et EXCEL: PC FileViewer.
-
Solaris peut aussi s'administrer localement avec une interface utilisateur
graphique: Solaris Management Console, qui regroupe les diverses fonctions
d'administration fournies par Sun dans une même interface graphique.
Voici ce que cela donne à l'écran:
Linux
Quand on l'a déjà
installé, Linux, s'installe en une heure environ, le même
temps qu'il faut à NT ou Solaris. La première fois, l'installation
de Linux peut demander bien plus longtemps, si on tombe comme moi sur un
périphérique non supporté et qu'on doit chercher un
driver sur l'Internet.
Le processus d'installation
de Linux demande beaucoup de patience vis-à-vis des nombreux dysfonctionnements
ou comportements hostiles du script d'installation:
-
Linux Red Hat 5.2 propose une installation en Français, mais si
on choisit cette option on se bloque un peu plus loin à cause de
fichiers absents et on finit par choisir l'Anglais.
-
Si on choisit d'installer un Linux en configuration Workstation on ne peut
se sortir de bogues qui prétendent (à tort) qu'il n'y a pas
assez de place disques: on choisit donc l'option Server et Linux prévient
qu'il détruira toutes les partitions de tous les disques; on finit
par choisir une installation "custom" (personnalisée) pour préserver
l'installation NT existante sur le même serveur.
-
L'installation d'un serveur en mode custom pose plusieurs questions dont
la réponse est tout sauf évidente: il faut tâtonner
pas mal, sans aide en ligne pendant cette partie du processus.
-
Linux identifie bien les contrôleurs SCSI, FastEthernet et la carte
d'écran, mais pas la présence de plusieurs processeurs.
-
La configuration du serveur X-Window s'est avérée cauchemardesque...
-
L'installation du serveur Web Apache s'est faite sans même y penser,
un vrai plaisir.
-
Comme Solaris, Linux permet d'installer et de démarrer des drivers
de périphériques sans rebooter le système. Ah, si
Microsoft pouvait en faire autant dans NT...
-
L'installation sur Linux Red Hat de la version ad hoc de Oracle 8 est un
vrai plaisir: elle n'a rien à envier en convivialité à
celle sous NT, quel progrès par rapport à la redoutable V7!
-
Exemples de tailles (en nombre de lignes de code) de divers logiciels gratuits:
-
Linux (noyau) 500.000 (noyau de Solaris: 600.000)
-
Serveur Web Apache: 80.000
-
SendMail: 57.000
Pour quelqu'un qui ne connaitrait
pas du tout Unix, cette installation peut effectivement être cauchemardesque;
comme celle de n'importe quel OS que l'on ne connait pas. Quelqu'un qui
n'a jamais entendu parler d'IRQ risque aussi d'avoir quelques contrariétés
sous Windows où il aussi arrive que certains périphérique
ne s'installent bien qu'en version anglaise. Unix ne s'adresse pas au grand
public, est-ce une découverte? Ceux qui s'y connaissent un peu trouvent
que la difficulté est moyenne, surtout si on lit la documentation
très complète. N'oublions pas qu'on peut aussi s'arracher
les cheveux en configurant WIndows.
Linux n'est pas un petit
logiciel, bien qu'il soit moins riche que Solaris et surtout NT.
N'empêche que l'expérience
montre qu'il tire bien meilleur parti d'un PC comme d'une sparcstation.
Prix du logiciel
Linux est gratuit sauf pour
ce qu'il faut acheter! Dans mon cas, il a fallu acheter un driver de carte
écran, bien que ma carte - installée en usine par le constructeur
du PC, Hewlett-Packard - soit une des plus vendues du marché: la
Matrox Millenium. Cela ne coûte que $39 + taxes et port, mais j'ai
perdu des heures à trouver le fournisseur, effectuer la transaction,
etc.
Mauvais exemple! J'utilise gratuitement en cet instant meme une Matrox Millenium
G200 en ayant juste récupéré un version de Xfree86
datée du 14 décembre 98 comme indiqué dans la documentation
du serveur X. Rien d'extraordinaire, si ce n'est qu'un modem est bien utile.
Solaris existe en version
gratuite ou presque: pour 800 FF on peut avoir une licence du système
et son code source, à condition de ne pas en faire d'exploitation
commerciale; on peut même, dans l'Enseignement, en faire des copies
pour les étudiants. Et la licence Solaris est accompagnée
de l'environnement de développement C et de ONC+ (RPC + NIS + NFS).
Linux est livré avec des outils infiniment plus nombreux. La liste des
langages de programmation disponibles est longue: C/C++, java, smalltalk,
ADA, fortran, lisp, shells, perl, python, tcl/tk, forth... C'est une solution
idéale pour l'enseignement du développement logiciel.
Client du support téléphonique
de Sun et de Microsoft, je dois attester de l'excellente qualité
des deux services: disponibilité, compétence, prévenance.
J'en suis très satisfait depuis environ 5 ans. Je ne comprends pas
la différence de coût:
-
chez Microsoft, cette assistance téléphonique vaut environ
40 KF/an et comprend le prix des licences de développement
-
chez Sun je paie 9 KF/an pour la même chose, avec en prime la maintenance
de mon serveur sur site dans un délai de 4 heures.
Où a-t-on démontré
que NT est moins cher que UNIX?
Autres remarques
A mon avis l'opposition ne se pose pas
en ces termes: pour un coût égal, avec Linux on va investir
dans la formation plutôt que dans les outils. Au total le service
a de bonnes chances d'être meilleur.
Retour page d'accueil