Catégorie : Non classé

La sécurité informatique

Introduction à la sécurité informatique

Le but de cette fiche est de familiariser les lecteurs avec les notions de base de la sécurité informatique, telles que définies dans la norme ISO 7498-2 par exemple.

Les objectifs de la sécurité informatique

La sécurité informatique à plusieurs objectifs, bien sûr liés aux types de menaces ainsi qu’aux types de ressources, etc… Néanmoins, les points principaux points sont les suivants :

  • empêcher la divulgation non-autorisée de données
  • empêcher la modification non-autorisée de données
  • empêcher l’utilisation non-autorisée de ressources réseau ou informatiques de façon générale

Les champs d’application de la sécurité informatique

Ces objectifs s’appliquent dans différents domaines ou champs d’applications, chacun faisant appel à des techniques différentes pour atteindre le ou les mêmes objectifs; ces champs sont :

  • la sécurité physique
  • la sécurité personnelle
  • la sécurité procédurale (audit de sécurité, procédures informatiques…)
  • la sécurité des émissions physiques (écrans, câbles d’alimentation, courbes de consommation de courant…)
  • la sécurité des systèmes d’exploitation
  • la sécurité des communications

Terminologie de la sécurité informatique

La sécurité informatique utilise un vocabulaire bien défini que nous utilisons dans nos articles. De manière à bien comprendre ces articles, il est nécessaire de définir certains termes :

  • Les vulnérabilités : ce sont les failles de sécurité dans un ou plusieurs systèmes. Tout système vu dans sa globalité présente des vulnérabilités, qui peuvent être exploitables ou non.
  • Les attaques (exploits): elles représentent les moyens d’exploiter une vulnérabilité. Il peut y avoir plusieurs attaques pour une même vulnérabilité mais toutes les vulnérabilités ne sont pas exploitables.
  • Les contre-mesures : ce sont les procédures ou techniques permettant de résoudre une vulnérabilité ou de contrer une attaque spécifique (auquel cas il peut exister d’autres attaques sur la même vulnérabilité).
  • Les menaces : ce sont des adversaires déterminés capables de monter une attaque exploitant une vulnérabilité.

Pour d’autres définitions, consultez la norme ISO 7498-2 qui définit pas moins de 59 termes; d’autres définitions sont également disponibles dans notre lexique.

Types d’attaques

Les attaques peuvent à première vue être classées en 2 grandes catégories :

  • les attaques passives : consistent à écouter sans modifier les données ou le fonctionnement du réseau. Elles sont généralement indétectables mais une prévention est possible.
  • les attaques actives : consistent à modifier des données ou des messages, à s’introduire dans des équipements réseau ou à perturber le bon fonctionnement de ce réseau. Noter qu’une attaque active peut être exécutée sans la capacité d’écoute. De plus, il n’y a généralement pas de prévention possible pour ces attaques, bien qu’elles soient détectables (permettant ainsi une réponse adéquate).

Profils et capacités des attaquants

Les attaquants peuvent être classés non-seulement par leurs connaissances (newbies, experts, etc…) mais également suivant leurs capacités d’attaques dans une situation bien définie. Ainsi, on dénombrera les capacités suivantes :

  • transmission de messages sans capacité d’écoute (IP spoofing…)
  • écoute et transmission de messages
  • écoute et perturbation des communications (blocage de paquets, DoS et DDoS…)
  • écoute, perturbation et transmissions de messages
  • écoute et relai de messages (attaques type man-in-the-middle)

Une autre caractéristique des attaquants va être leur emprise uni-directionnelle ou bi-directionnelle sur les communications, du fait de la nature asymétrique de celles-ci. En effet, la plupart des canaux de transmissions sur Internet ou sur tout autre réseau hétérogène sont uni-directionnels et empruntent des chemins différents suivant les règles de routage. Ainsi, de nombreux protocoles de sécurité sont également unidirectionnels et il faut établir plusieurs canaux pour permettre un échange en « duplex ». Ces canaux qui sont au nombre de 2 minimum, sont la plupart du temps gérés de façon totalement indépendante par les protocole de sécurité. C’est le cas pour SSL/TLS mais également pour IPSec dont les associations de sécurité (SA) sont unidirectionnelles et indépendantes, chacune définissant son propre jeu de clés, algorithmes, etc…

Services principaux de la sécurité informatique

Pour remédier aux failles et pour contrer les attaques, la sécurité informatique se base sur un certain nombre de services qui permettent de mettre en place une réponse appropriée à chaque menace. A ce niveau, aucune technique n’est encore envisagée; il ne s’agit que d’un niveau d’abstraction visant à obtenir une granularité minimale pour déployer une politique de sécurité de façon optimale (les aspects pratiques tels qu’analyses de risques, solutions technologiques et coûts viendront par la suite. Voir le « Site Security Handbook », RFC 1244 pour plus de détails). Décrivons les principaux services de sécurité :

  • confidentialité
  • authentification (entité, origine des données)
  • intégrité
    • machines (tamper-résistance, tamper-proofness, exécution sécurisée…)
    • données (avec possibilité de récupération)
    • flux :
      • mode non-connecté, au niveau paquet (échanges de type requête-réponse, comme UDP)
      • mode orienté-connexion (ensemble de l’échange, comme TCP)
      • intégrité de séquences partielles (VoIP, applications, etc… permet d’éviter les DoS par exemple)
  • contrôle d’accès (= autorisation, à différentier de l’authentification)
  • non-répudiation (avec preuve d’émission ou avec preuve de réception)

Notez que le chiffrement, les signatures digitales et autres techniques correspondent au niveau d’abstraction inférieur, décrit comme l’ensemble des mécanismes de sécurité permettant de réaliser les services décrits ci-dessus. Plusieurs mécanismes peuvent par exemple réaliser le service d’authentification (schémas d’authentification, chiffrement, signatures digitales…). Néanmoins, ces mécanismes de sécurité ne correspondent pas encore aux solutions finales qui seront réellement implémentées. Il faudra pour cela effectuer un dernier raffinement, consistant à choisir les algorithmes symétriques, les algorithmes asymétriques, la tailles des clés, etc…

Enfin, il existe d’autres notions qui ne peuvent être classées directement dans ces listes; la confiance (trust) est un bon exemple. En effet, bien qu’elle soit très coûteuse, la confiance est obligatoire pour garantir l’efficacité des mécanismes de sécurité mis en place. Citons l’exemple d’un protocole d’encapsulation chiffrée (tunneling), développé en soft, permettant d’échanger des données tout en préservant leur confidentialité. Or, si seules les données sont protégées, il est plus simple pour un attaquant de s’introduire dans l’une des machines aux extrémités (PC ou autres), de modifier les librairies correspondantes de façon à fausser le mécanisme de sécurité (nombres aléatoires forcés à une valeur constante, valeurs de clés prédéfinies, algorithmes NULL) et enfin de pouvoir accéder à loisir aux données transmises. D’où la nécessité de mettre en place un schéma de confiance visant à interdire ce type d’attaque; il est nécessaire de pouvoir faire confiance aux équipements de sécurité car dans le cas contraire, l’utilité même des mécanismes de sécurité est remise en question.

L’urbanisation des systèmes d’informations

Etat de l’art

Dans les grandes entreprises, le Système d’Information est de plus en plus complexe et manque d’agilité. Il peut être assimilé au syndrome du « plat de spaghettis », avec de trop nombreux composants surnuméraires et des interfaces multiples et insuffisamment normalisées.

De plus, on constate un fonctionnement en silos, avec peu ou pas de communication entre les équipes, une absence de vision transverse préjudiciable à des choix cohérents, et une mauvaise connaissance du patrimoine applicatif.

Lorsque la Direction des Systèmes d’Information achève sa mue et se transforme en fournisseur de services, alors la Production Informatique devient un métier à part entière, évolue d’un centre de coûts vers un centre de profits. Des efforts toujours plus importants lui sont demandés en termes de rationalisation des coûts et il lui est demandé d’accompagner la stratégie de l’Entreprise.

Définitions

Qu’est-ce que l’urbanisation ?

Définition proposée par le Club Urba-EA : Urbaniser, c’est organiser la transformation progressive et continue du système d’information visant à le simplifier, à optimiser sa valeur ajoutée et à le rendre plus réactif et flexible vis à vis des évolutions stratégiques de l’entreprise, tout en s’appuyant sur les opportunités technologiques du marché. L’urbanisme définit des règles ainsi qu’un cadre cohérent, stable et modulaire, auquel les différentes parties prenantes se réfèrent pour toute décision d’investissement dans le système d’information.

Définition plus concise : Urbaniser, c’est piloter la transformation continue du système d’information pour le rendre plus agile, plus efficient et plus cohérent afin de le simplifier durablement.

Objectifs, enjeux et bénéfices de l’urbanisation des Systèmes d’Information

Objectifs

La démarche d’alignement stratégique et d’urbanisation d’un Système d’Information vise à répondre à 4 objectifs majeurs :

  • Synchroniser les actions du Système d’Information avec la stratégie de l’Entreprise, afin de renforcer la valeur d’usage du Système d’Information et en faire un atout pour l’Entreprise 
  • Rendre le Système d’Information « lisible » pour favoriser le dialogue et la communication avec les directions métiers, les Maîtrises d’ouvrage (MOA) et les Maîtrises d’œuvre (MOE)
  • Disposer d’un Système d’Information agile, capable d’évoluer rapidement et en toute sécurité tant d’un point de vue métier que technique 
  • Contribuer à la maîtrise des coûts informatiques

Enjeux

Urbaniser le Système d’Information de la Production Informatique, c’est répondre positivement aux enjeux suivants :

  • Positionner le Système d’Information de Production par rapport au Système d’Information Interne de l’Entreprise
  • Aligner les priorités d’investissements sur le Système d’Information de Production par rapport aux objectifs stratégiques
  • Clarifier les responsabilités sur les différentes zones du Système d’Information que ce soit en termes de MOE ou MOA
  • Etablir et communiquer des règles d’urbanisme pour le Système d’Information de Production
  • Evaluer les opportunités technologiques du marché
  • Définir un plan de progrès pour le Système d’Information de Production 
  • Contribuer au choix de solutions et faciliter leur intégration dans le Système d’Information

Bénéfices

Les bénéfices attendus d’une approche urbanisée du Système d’Information sont principalement :

  • Un alignement facilité du Système d’Information sur la stratégie de l’entreprise et une contribution significative à l’apport de valeur
  • Une réduction de la complexité et un renforcement de la cohérence 
  • Une meilleure préparation des décisions sur l’évolution du Système d’Information (impacts, risques, valeur apportée…)
  • Une diminution de la redondance applicative, mutualisation des outils informatiques, réduction des coûts d’intégration 
  • Une réduction du coût des projets du Système d’Information et des processus en favorisant une optimisation globale
  • Une définition claire des rôles et responsabilités des différents acteurs.

Soutenir la démarche d’urbanisation

La démarche d’urbanisation vise à améliorer progressivement la performance et la gouvernance du Système d’Information pour en faire un avantage concurrentiel décisif. Pour cela, l’urbanisation s’appuie sur un outil essentiel – la cartographie – grâce à laquelle l’entreprise va disposer d’une vision claire, documentée et valorisée de son patrimoine.

La mise en œuvre d’une démarche de cartographie / urbanisation va permettre de bâtir progressivement un Système d’Information modulaire, réactif, plus apte à servir la stratégie de l’entreprise.

Les différents niveaux de cartographie

Cartographier : pourquoi faire ?

La cartographie est un instrument indispensable pour la gouvernance du Système d’Information de l’entreprise. Elle contribue à donner une vision claire et partagée du patrimoine, à maîtriser les évolutions, à réduire les coûts de maintenance et de développement, à faciliter les analyses d’impact et à valoriser le patrimoine applicatif.

Cartographier le Système d’Information, c’est d’abord auditer l’existant, évaluer les besoins, et délimiter le périmètre d’un projet fédérateur pour l’entreprise. Pour cela, il convient de répondre aux questions suivantes :

  • Quelle sont les enjeux autour de la mise en œuvre d’une cartographie de votre Système d’Information ?
  • Quelle est la stratégie à court et moyen terme pour la cartographie ?
  • Quels sont les apports attendus : pourquoi et pour qui ?
  • Quels sont les dysfonctionnements majeurs constatés qui justifient de la mise en place d’une cartographie ?
  • Quel est le budget ?
  • Quel est le périmètre (on privilégie généralement les périmètres métiers regroupant le plus grand nombre d’applications) ?
  • Quels sont les types de constituants (applications, composants, référentiels de données, …) ? Quelles sont les normes et règles d’architecture applicative ?

Cartographier : avec quel outil ?

Il convient également de faire un choix d’outil de modélisation, de publication, … Parmi les outils du marché, on citera bien sûr des éditeurs comme MEGA ou ARIS ; mais dans un premier temps, l’usage de Microsoft Visio peut suffire.

Cartographier : comment ?

Pour produire une cartographie de tout ou partie du Système d’Information, il est possible de s’appuyer sur la démarche suivante :

  • Préparer la collecte des informations nécessaires à la production des cartographies :
    • Informer les populations contributrices sur la démarche et les objectifs à atteindre
    • Décliner le mode opératoire (workshops, réunions individuelles, …)
    • Produire le planning des interviews et les points de revue et validation
  • Réaliser la collecte :
    • Par itérations successives selon une approche pragmatique (le « just enough »)
    • Sur la base de documents prédéfinis (questionnaires, tableaux de collecte, …) 
  • Produire les cartographies :
    • Consolider l’ensemble des données recueillies
    • Matérialiser les flux inter-applicatifs
    • Identifier les principaux référentiels partagés 
  • Faire valider et publier les cartographies.

L’entreprise dispose alors d’une vision claire, documentée, valorisée de son patrimoine au travers d’une cartographie partagée de son Système d’Information.

Créer une cartographie, c’est bien, la maintenir, c’est mieux !

Dans toute démarche d’urbanisation, il convient d’accompagner le changement et d’assurer la maintenance des cartographies.

En effet, la production d’une cartographie n’est pas une fin en soi et il est souvent nécessaire d’accompagner les équipes dans la maintenance des cartographies. Il convient donc de former les contributeurs et de les sensibiliser à la nécessité de disposer d’une vision « à jour » du Système d’Information de l’entreprise.

L’accompagnement au changement est donc un élément fondamental pour la réussite d’un projet d’urbanisation du Système d’Information.

Concepts, règles et principes d’urbanisation

Les concepts manipulés peuvent s’apparenter à ceux de l’urbanisation de l’habitat humain (organisation des villes, du territoire), concepts qui ont été réutilisés en informatique pour formaliser ou modéliser la réingénierie du Système d’Information.

L’urbanisation s’appuie sur deux règles de base :

  • Une application doit appartenir à un et un seul bloc afin de limiter les impacts lorsqu’on remplace celle-ci 
  • Les dépendances doivent respecter des notions de cohérence forte
    • Entre les applications
    • Entre les modules d’une même application 
    • Entre les composants d’un même module

Le terme « cible » définit l’application que l’on cherche à avoir. Elle s’oppose à l’existant. La méthode pour passer l’existant à la cible souhaitée est appelée la roadmap (feuille de route). Cette roadmap peut prendre des formes « transitoires » car l’atteinte de la cible ne se fait pas en un jour et nécessite de passer par des paliers. Ainsi, on entend parler de roadmap à 3 ans, mais de formes transitoires année par année.

Le Système d’Information peut donc être comparé au quartier d’une ville : si ce dernier est bien bâti et bien urbanisé, il est possible de raser un bâtiment au cœur du quartier sans mettre en péril tout le secteur, et de le remplacer par ou de reconstruire un autre bâtiment. L’urbanisation consiste donc à créer un SI agile, modulable et évolutif.

Plan d’urbanisme du Système d’Information

Pour faciliter la planification des évolutions du Système d’Information, l’urbanisation s’appuie sur un plan d’urbanisme qui consiste à représenter le Système d’Information en s’appuyant sur une cartographie fonctionnelle et un découpage de plus en plus fin.

On distingue alors :

  • La zone : elle représente un domaine fonctionnel
  • Le quartier : il représente une opération à l’intérieur d’un métier
  • L’îlot : il représente une application
  • Le bloc fonctionnel : il représente la fonction.

Le Plan d’Urbanisme doit faciliter la construction d’une architecture optimisée du point de vue fonctionnel du Système d’Information, qui permet d’aligner le point de vue du métier et le point de vue informatique.

Plus particulièrement, l’urbanisation vise :

  • A renforcer la capacité à construire et à intégrer des sous-systèmes d’origines diverses 
  • A renforcer la capacité à faire interagir les sous-systèmes du Système d’Information et les faire interagir avec d’autres Systèmes d’Information 
  • A renforcer la capacité à pouvoir remplacer certains de ces sous-systèmes 

Et de manière générale pour le Système d’Information à :

  • Favoriser son évolutivité, sa pérennité et son indépendance 
  • Renforcer sa capacité à intégrer des solutions hétérogènes (progiciels, éléments de différentes plates-formes, etc.).

Quelques règles

Règle 1 : Réaliser un découpage par processus ou par métier

Règle 2 : Une fonction appartient à un bloc et un seul

Règle 3 : Une fonction ne peut être couverte que par une application et une seule

Règle n : …

Implémenter une démarche d’urbanisation

Définir le périmètre du projet d’urbanisation

Définir le périmètre d’un projet d’urbanisation, c’est répondre aux questions suivantes :

  • Quelle sont les enjeux autour de la mise en œuvre d’une démarche d’urbanisation du Système d’Information ?
    • Un renforcement de la gouvernance du Système d’Information ?
    • Une rationalisation de l’outillage et des coûts de production / exploitation ?
    • Une situation par rapport à l’état de l’art (benchmarking) ?
    • o L’Identification des besoins prioritaires, la production d’une roadmap.
  • Quels sont les apports attendus : pourquoi et pour qui ?
    • Une meilleure préparation des projets et un accompagnement facilité des acteurs 
    • o Un meilleur respect des règles (réutilisation des composants, redondance des données, unicité des référentiels, …).
  • Quel est le niveau de qualité des cartographies existantes, de maîtrise de l’utilisation des référentiels et des flux inter-applicatifs ?
  • Quel est le taux de pénétration des concepts d’urbanisation ?

Elaborer le plan d’urbanisme du Système d’Information

Elaborer le plan d’urbanisme du Système d’Information, c’est :

  • Comprendre les objectifs stratégiques, s’assurer de l’alignement des objectifs du Système d’Information sur les objectifs du métier et prendre en compte les impacts potentiels 
  • Analyser le système existant en s’aidant des cartographies produites pour en tirer un bilan : forces / faiblesses, manques / redondances, orientations & opportunités technologiques 
  • Définir une cible urbanisée pour le Système d’Information de Production sur la base des enjeux et des orientations validées 
    • Concevoir plusieurs scénarios d’architecture pour le système cible 
    • Proposer des critères de choix (gains financiers, complexité de mise en œuvre, gestion des compétences, valeur ajoutée, …) facilitant l’évaluation des scénarios 
    • Elaborer une trajectoire tenant compte des priorités, de la complexité et des coûts de mise en œuvre, des contraintes techniques et de la valeur ajoutée produite.

Définir le cadre méthodologique et la gouvernance associée

La mise en place du cadre méthodologique passe par :

  • La définition des règles d’urbanisation 
  • La production d’un guide méthodologique 
  • La sensibilisation et la formation des contributeurs MOA, MOE 
  • Une communication sur les apports de la démarche

La mise en place de la gouvernance passe par :

  • La définition d’une organisation propre 
  • L’intégration de la démarche d’urbanisation dans la démarche projet appliquée dans l’entreprise 
  • Une révision de la documentation

Soutenir la démarche

La mise en place d’une démarche d’urbanisation nécessite un temps d’adaptation et il est souvent nécessaire d’accompagner les équipes sur les premiers projets. Il est donc essentiel que l’organisation mise en place agisse en soutien aux équipes (MOA, MOE) dans la phase d’appropriation, dans la réalisation des analyses d’impact, dans le respect des règles, dans la production des nouveaux livrables, …

Cet investissement est nécessaire pour s’assurer de l’atteinte des objectifs, et permettre ainsi un véritable retour sur investissement.

Cloud privé vs cloud public

Depuis quelques années, le Cloud Computing a le vent en poupe. De plus en plus d’entreprises font appel à cette manière de stocker, d’accéder et d’échanger des données informatiques.

Le concept est simple : faciliter le travail de l’ensemble des collaborateurs en leur permettant un accès aux informations dont ils ont besoin depuis n’importe où, tout en permettant une plus grande maintenabilité et sécurité. Et pourtant, le concept du Cloud reste quelque chose d’assez vague dans l’esprit de la plupart des chefs d’entreprise.

Mais quelle est exactement la différence entre les deux, et à quel moment devez vous faire appel à l’un ou à l’autre ? et quel partenaire Cloud pour me conseiller et m’accompagner ?

ComputerLand est justement spécialisé dans les prestations de Cloud Computing. Et l’on se rend compte d’une chose : de nombreuses questions se posent. Par exemple, lorsque l’on fait le choix de passer à cette méthodologie, on entend parler régulièrement soit de Cloud privé, soit de Cloud public mais aussi et plus récemment de Cloud hybride.

cloud privé public hybride, quelles différences ?


Dans tout système de Cloud, seule votre entreprise et vos collaborateurs vont pouvoir accéder à vos ressources. Peu importe le terminal utilisé, que ce soit un ordinateur, une tablette ou un mobile, que ce soit dans les locaux de l’entreprise ou à l’extérieur, vous allez vous connecter à votre serveur de Cloud.

Définition Cloud privé: Avant toute chose, il s’agit du format le plus courant,  le Cloud privé ou Cloud dédié, les deux termes sont valables, désigne une infrastructure qui vous est totalement dédiée, c’est-à-dire que ce sont votre ou vos serveurs privatifs qui vont gérer l’ensemble de vos données et pour tous les utilisateurs de votre entreprise. Celui-ci est administré soit en interne, soit par un prestataire spécialisé. Votre Cloud privé qu’il soit hébergé en interne ou dans un datacenter est très proche d’une infrastructure locale.

Pour la plupart des sociétés, le Cloud privé a un coût fixe en fonction du type de serveur utilisé, de sa capacité en terme de puissance, de stockage et de la maintenance qui est associée. Parfois, le prix peut aussi varier en fonction du nombre d’utilisateurs.

A l’inverse, le gros avantage du Cloud privé est d’avoir un contrôle beaucoup plus complet sur ses données et sur son infrastructure. Elle sera en effet bien plus adaptée à ses besoins, mais elle risque d’être plus coûteuse.

Les avantages :

  • il est adapté sur mesure à vos besoins votre infrastructure
  • vous ne payez pas plus cher avec plus de transfert de données

Les limites :

  • il est moins réactif en cas de montée en charge
  • il est coûteux à mettre en place


A l’inverse, le Cloud public ne veut pas dire que les données sont accessibles à n’importe qui, mais uniquement que vos données sont hébergées sur une multitude de serveurs eux-mêmes accessibles par un nombre déterminé d’utilisateurs. Les Cloud les plus connus sont d’ailleurs des Cloud public, comme par exemple le Cloud de Microsoft office ou encore celui d’Amazon.

En règle générale, dans le cadre d’un Cloud public, vous payez en fonction de l’utilisation de vos données. Plus vous allez stocker, utiliser ou télécharger d’information, plus la facture sera élevée.

Beaucoup d’entreprises préfèrent passer par un Cloud public, pour la simple et bonne raison que vous n’êtes pas limités par le volume de vos données. En effet, les entreprises qui proposent des services de Cloud public disposent d’infrastructures conséquentes et peuvent donc s’adapter presque immédiatement à l’augmentation de vos besoins. A l’inverse, c’est une limitation que vous avez sur du Cloud privé pour lequel l’installation et l’augmentation de la capacité du Cloud va forcément prendre plus de temps et vous rendre moins factice.

Un des gros avantages du Cloud public est que les dépenses initiales sont pratiquement réduites à néant puisque vous venez vous greffer à l’infrastructure déjà existante.

Les avantages :

  • il est rapide et peu coûteux à mettre en place ;
  • il s’adapte rapidement à l’augmentation de vos besoins.

Les limites :

  • plus vous utilisez le Cloud public, plus il est cher ;
  • il n’est pas forcément adapté à vos besoins et logiciels spécifiques.
Quelle différence entre Cloud privé et cloud public ?

Dans certain cas de figure, souvent pour des grandes entreprises ayant des besoins complexes, on va avoir un système mixte : c’est ce qu’on appelle le Cloud hybride.

Dans ce cas de figure, l’entreprise fait appel à plusieurs Cloud différents certains publics et certains privés. Tous demeurent des entités indépendantes les unes des autres.

Dans ces cas de figure l’intérêt est extrêmement simple à comprendre il permet principalement d’effectuer la portabilité de données entre différent Cloud, différents logiciels ou différentes entités.

La virtualisation

virtualisation tout savoir

Virtualisation : qu’est-ce que c’est et à quoi ça sert ?

Bastien L 13 mai 2019 Dossiers Ecrire un commentaire

La virtualisation est une technologie permettant de créer et d’exécuter une ou plusieurs représentations virtuelles d’un ordinateur ou de ses différentes ressources sur une même machine physique. Découvrez tout ce que vous devez savoir sur cette technologie : définition, fonctionnement, avantages…

Les besoins en puissance de calcul et en espace de stockage des entreprises ne cessent d’augmenter. Malheureusement, les serveurs x86 sont trop limités pour répondre à ces besoins. De fait de nombreuses organisations déploient de multiples serveurs, et n’exploitent qu’une fraction de leur capacité. En résulte un usage inefficace et coûteux. La virtualisation est une technologie qui permet de remédier à ce problème, et bien plus encore.

Qu’est-ce que la virtualisation ?

La virtualisation consiste à créer une représentation virtuelle, basée logicielle, d’un objet ou d’une ressource telle qu’un système d’exploitation, un serveur, un système de stockage ou un réseau. Ces ressources simulées ou émulées sont en tous points identiques à leur version physique.

Les machines virtuelles sont exécutées sur une couche d’abstraction matérielle. Ainsi, les entreprises sont en mesure d’exécuter plusieurs systèmes d’exploitation et applications simultanément sur un serveur unique. Les ressources et capacités du serveur sont réparties entre les différentes instances. Ceci permet de réaliser d’importantes économies et d’utiliser les serveurs plus efficacement puisque leurs capacités sont pleinement exploitées.

De plus, la virtualisation permet d’exécuter des programmes de façon isolée pour effectuer des tests en toute sécurité sans risquer de compromettre les autres machines virtuelles exécutées sur le même serveur hôte. Pour les particuliers et les utilisateurs de PC, il est aussi possible d’utiliser la virtualisation pour exécuter des applications nécessitant différents systèmes d’exploitation sur un seul et même ordinateur.

Comment fonctionne la virtualisation ?

virtualisation fonctionnement

La technologie de virtualisation repose sur l’abstraction d’une application, d’un système d’exploitation ou du stockage de données du véritable logiciel ou du hardware sous-jacent. L’un des principaux cas d’usage est la virtualisation de serveur, reposant sur une couche logicielle appelée  » hyperviseur  » pour émuler le hardware.

L’hyperviseur permet de créer et d’exécuter des machines virtuelles. Le logiciel se charge de diviser les ressources entre les différents environnements virtuels en fonction de leurs besoins.

Par le passé, on distinguait les hyperviseurs natifs, directement intégrés au hardware du logiciel, et les hyperviseurs  » hébergés «  semblables à des applications logicielles. Cependant, sur les systèmes modernes, cette distinction a perdu de l’importance. Pour cause, il existe désormais des systèmes comme le KVM (kernel-based virtual machine), qui est intégré au kernel Linux et peut exécuter les machines virtuelles directement bien qu’il soit possible de continuer à utiliser le système lui-même comme un ordinateur normal.

Les utilisateurs peuvent ensuite interagir et lancer des applications ou des calculs au sein de l’environnement virtuel, que l’on appelle généralement machine virtuelle. La machine virtuelle est l’équivalent émulé d’un ordinateur, et est exécutée par-dessus un autre système. Elle peut exploiter la puissance de calcul du CPU et la mémoire de la machine hôte, un ou plusieurs disques virtuels pour le stockage, une interface réseau virtuelle ou réelle, ainsi que les autres composants tels que les cartes graphiques ou même les clés USB.

La machine virtuelle fonctionne comme un fichier de données unique. Elle peut donc être transférée d’un ordinateur à l’autre, et fonctionner de la même manière sur les deux machines. Si la machine virtuelle est stockée sur un disque virtuel, on parle souvent d’une image disque.

Quels sont les différents types de virtualisation ?

types virtualisation

Il existe différents types de virtualisation. On dénombre six principaux domaines de l’informatique où la virtualisation est couramment utilisée :

La virtualisation de serveur, précédemment évoquée, permet d’exécuter plusieurs systèmes d’exploitation sur un seul serveur physique sous forme de machines virtuelles. Elle permet une efficacité accrue, une réduction des coûts, un déploiement plus rapide des workloads, une augmentation des performances d’application, une disponibilité de serveur en hausse, et l’élimination des complications liées à la gestion de serveurs.

La virtualisation de réseau consiste à reproduire un réseau physique et ses différents composants : ports, interrupteurs, routeurs, firewalls, équilibreurs de charges… ceci permet d’exécuter des applications sur un réseau virtuel comme sur un réseau physique, tout en profitant de l’indépendance matérielle inhérente à toute forme de virtualisation.

La virtualisation de stockage consiste à assembler la capacité de stockage de multiples appareils de stockage en réseau sous forme d’un seul appareil de stockage (virtuel) pouvant être géré depuis une console centrale.

La virtualisation desktop est similaire à la virtualisation de serveur, mais permet de créer des machines virtuelles reproduisant des environnements de PC. Ceci permet aux entreprises de réagir plus rapidement aux changements de besoins et aux nouvelles opportunités. De plus, les PC virtualisés, tout comme les applications, peuvent être transférés rapidement à des sous-traitants ou à des employés travaillant sur des appareils mobiles comme les tablettes.

La virtualisation de données repose sur l’abstraction des détails techniques traditionnels des données et du Data Management : localisation, performance, format… ceci permet d’ouvrir l’accès aux données et d’accroître la résilience. De plus, la  » Data Virtualization  » permet aussi de consolider les données en une source unique afin de simplifier leur traitement.

Enfin, la virtualisation d’application consiste en l’abstraction de la couche application du système d’exploitation. Ceci permet d’exécuter l’application sous une forme encapsulée, indépendante du système d’exploitation. Ainsi, il est par exemple possible d’exécuter une application Windows sur Linux et vice-versa.

Quelle différence entre une machine virtuelle et un container ?

En principe, les containers Linux sont similaires aux machines virtuelles. Les deux permettent l’exécution d’applications au sein d’un environnement isolé, et peuvent être accumulés séparément sur une même machine. Cependant, leur fonctionnement est différent.

Un container n’est pas une machine indépendante complète. Il s’agit simplement d’un processus isolé partagent le même kernet Linux que le système d’exploitation hôte, ainsi que les bibliothèques et autres fichiers nécessaires à l’exécution du programme contenu dans le container. En général, les containers sont donc conçus pour exécuter un programme unique et non un serveur complet.

Virtualisation vs Cloud Computing : quelle différence ?

La virtualisation et le Cloud Computing sont deux technologies à ne pas confondre. La virtualisation permet de rendre les environnements informatiques indépendants d’une infrastructure physique, tandis que le Cloud Computing est un service délivrant les ressources informatiques partagées à la demande via Internet.

Ces deux technologies sont donc différentes, mais peuvent aussi être complémentaires. Il est par exemple possible de virtualiser les serveurs, pour ensuite migrer vers le Cloud en vue d’une agilité amplifiée et d’un accès self-service.

DevOps

Définition :

Le DevOps, est une approche permettant de réunir deux fonctions clés de la DSI d’une entreprise chargée du développement d’applications. D’un côté, vous avez terme le “Dev” représentant les équipes de développeurs et de l’autre, vous avez le terme “Ops” représentant les équipes d’exploitation systèmes (operations en anglais).

Il peut être également interprété d’une autre façon, en se penchant sur une approche plutôt « métier » où le Devops est un poste qu’occupe un salarié ayant des compétences dans le développement, mais aussi en ingénierie système.

Cette approche DevOps, souvent mal comprise, repose sur la méthode agile et du lean management où les responsables métiers, le développement, les opérations et le service qualité collaborent pour déployer en continu les différentes versions ou fonctionnalités d’un logiciel. L’objectif étant de s’adapter aux opportunités du marché et aux retours clients.

Comment est apparue l’ approche DevOps ?

Ce terme Devops a été inventé par Patrick Devois en octobre 2009 lors des premiers événements de « Devopsdays » à Gand en Belgique. Il a cherché à donner un nom au vu de l’émergence de ce mouvement.

Avant l’apparition de cette approche Devops:

  1. L’équipe de développement logicielle ou applicative se charge de collecter les besoins métiers et de les développer. Elle teste ensuite le logiciel ou l’application lorsqu’elle est finalisée.
  2. Si le logiciel ou l’application répond aux besoins métiers, le code source est mis à disposition à l’équipe opérationnelle pour la partie exploitation.

Cela posait un problème, car sans communication en continu des deux équipes ni l’une ni l’autre ne pouvait connaître les obstacles que chacun pouvait rencontrer.

Le monde de l’informatique évolue toujours aussi vite et il faut sans cesse s’adapter. Que ce soit pour développer un logiciel ou une application web, il faut qu’ils soient mis sur le marché le plus rapidement possible. Toutes nouvelles fonctionnalités ou mises à jour doivent être déployées sans problème et s’il y a des bugs, il faut pouvoir les corriger. L’équipe opérationnelle doit aussi savoir s’adapter rapidement dans la surveillance et le déploiement de ces nouvelles applications ou logiciels. D’où l’intérêt de l’association du « Dev » et de l’ » Ops » où une collaboration étroite est nécessaire !

Le fonctionnement et principe du DevOps

L’approche DevOps c’est un déploiement continu avec :

  • Un développement et des tests constants
  • Une intégration et une mise en œuvre constante : déploiement avec des processus fiables
  • Une surveillance constante et une validation de la qualité opérationnelle

On représente le DevOps comme un cycle de vie où l’on passe d’une phase projet à une phase de surveillance, dès que cette phase est terminée, un nouveau cycle démarre.

Voici les grands principes d’une stratégie DevOps :

  • Avoir une approche axée sur le client où il est important d’avoir constamment ses retours pour corriger et mettre à jour immédiatement les logiciels ou applications web développés.
  • Avoir une vue d’ensemble sur les projets de développement et permettre le travail en équipe en mêlant les différents départements de votre entreprise. Miser sur des profils polyvalents.
  • Optimiser les coûts, la rapidité de mise en œuvre et le produit ou service en lui même en apportant constamment des améliorations.
  • Automatiser ce qui peut être automatisé.

Qui est concerné ?

Les principales personnes concernées sont les DSI où il est nécessaire faire collaborer deux équipes différentes, mais complémentaires : les développeurs et l’opérationnel.

Approche DevOps : quels sont les avantages ?

En plus d’améliorer et optimiser le travail en équipe, l’approche DevOps permet :

  • d’améliorer l’expérience client : une entreprise doit pouvoir obtenir et répondre en continu au retour des clients, mais également des utilisateurs, partenaires, fournisseurs… et cela implique donc la mise en place de processus impliquant toutes les parties prenantes.
  • d’innover et optimiser l’utilisation du temps : en réduisant les coûts de mise en œuvre et en automatisant les déploiements, cela laisse l’opportunité aux équipes de tester différentes versions ou fonctionnalités et de passer moins de temps à corriger les erreurs ou tout recommencer.
  • d’accélérer le retour sur investissement : en déployant les logiciels plus rapidement et en misant sur des processus fiables et automatisés.
  • d’avoir un meilleur rendement informatique : moins d’erreurs et d’échecs dans les déploiements avec des délais de production plus courts.
  • d’intégrer la sécurité en continu : les objectifs de sécurités sont connus à l’avance et sont intégrés en continu dans le travail au quotidien des équipes.

Se faire accompagner par des experts

Vos attentes

Vous souhaitez gagner du temps dans vos déploiements logiciels ou applicatifs.

Vous souhaitez minimiser les risques d’erreurs et simplifier les actions complexes de mise en production.

Vous souhaitez augmenter la stabilité de votre plateforme sur le moyen terme et disposer d’un processus de déploiement automatisé et sécurisé.