Question

Récemment, le buzz de la virtualisation a atteint mon lieu de travail où les développeurs testent des machines virtuelles sur leurs ordinateurs. Un peu plus tôt, plusieurs développeurs m'ont parlé de la configuration d'une machine virtuelle sur leurs ordinateurs de bureau afin de préserver la propreté de leurs environnements de développement.

Il existe de nombreux logiciels de machine virtuelle sur le marché:

Je suis intéressé de savoir comment vous utilisez efficacement la virtualisation dans votre travail. Ma question est comment utilisez-vous les machines virtuelles pour le développement quotidien et pour quelle raison?

Était-ce utile?

La solution

Je viens de construire chez moi une véritable machine costaud afin de pouvoir exécuter plusieurs ordinateurs virtuels à la fois. Mon cas est probablement extrême, mais voici ma logique.

Test

Lorsque je teste, en particulier une application de bureau, je crée généralement plusieurs ordinateurs virtuels, un pour chaque plate-forme sur laquelle mon logiciel doit être exécuté (Windows 2000 / XP / Vista, etc.). Si des versions 32 et 64 bits sont disponibles, j'en construis une. Je joue également avec les paramètres matériels de la machine virtuelle (par exemple beaucoup de RAM, peu de RAM, 1 cœur, 2 noyaux, etc.). J'ai trouvé plein de petits insectes de cette façon, qui auraient définitivement trouvé le chemin dans la nature si je n'avais pas utilisé cette approche.

Cette approche facilite également l'utilisation de différents scénarios logiciels (que se passe-t-il si l'utilisateur qui installe le programme n'a pas .NET 3.5 sp1? Que se passe-t-il s'il n'a pas de composant XXX? etc.?

Développement

Lorsque je développe, j'ai un ordinateur virtuel qui exécute mes serveurs de base de données (SQL2000 / 2005/2008). C'est pour deux raisons. Tout d'abord, c'est plus réaliste. Dans un environnement de production, votre application ne fonctionne probablement pas sur la même boîte que la base de données. Pourquoi ne pas le reproduire lorsque vous développez? De plus, lorsque je ne suis pas en développement (rappelez-vous que c'est aussi ma machine personnelle), ai-je vraiment besoin que tous ces services de base de données soient exécutés? Oui, je pourrais les allumer et les éteindre manuellement, mais il est beaucoup plus facile d'allumer une machine virtuelle.

Clients

Si je veux montrer à un client le travail Web que j'ai effectué, je ne peux placer qu'un seul ordinateur virtuel dans la zone démilitarisée. Il peut se connecter à l'ordinateur virtuel et jouer avec le projet Web, tandis que le reste de mon réseau / ordinateur est sûr.

Compatibilité

Vista64 est maintenant ma machine principale. Tous les matériels / logiciels plus anciens que je possède ne fonctionneront pas bien avec ce système d'exploitation. Ma solution consiste à avoir Windows XP 32 en tant que machine virtuelle pour tous ces éléments.

Autres conseils

Voici quelque chose qui n'a pas encore été mentionné.

À chaque fois qu'un projet entre en mode de maintenance (c'est-à-dire abandonded), je crée une machine virtuelle avec tous les outils, bibliothèques et code source nécessaires à la construction du projet. Ainsi, si je dois y revenir un an plus tard, je ne parierai pas les outils ou bibliothèques mis à niveau sur mon poste de travail.

Lorsque j'ai commencé à travailler dans ma société actuelle, la plupart des employés de support / dev / PM exécutaient Virtual PC avec 1 à 3 machines virtuelles sur leur bureau pour les tests.

Après quelques mois, j’ai élaboré une proposition. Nous utilisons maintenant un serveur VMware ESXi exécutant un pool de machines virtuelles (toutes fonctionnant 24h / 24 et 7j / 7) avec différents environnements pour que notre équipe de support puisse tester les problèmes des clients et les reproduire. Nous avons des machines virtuelles de Windows 2000 / XP / Vista avec chacune des versions Office 2000/2002/2003/2007 installées (soit 12 machines virtuelles), ainsi que des machines virtuelles de test plus générales, certaines machines Server 2003/2008 exécutant Citrix, des services de terminal, etc. la plupart du temps, lorsque nous arrivons à une nouvelle configuration de client que nous devons déboguer, et qu'il est probable que d'autres clients disposent également de cette configuration, je vais configurer une machine virtuelle. (par exemple, nous n'utilisons que trois ordinateurs virtuels 64 bits pour le moment - principalement 32 bits)

De plus, le même serveur exécute une machine virtuelle XP que j'utilise pour la construction d’installateurs (InstallShield, WiX), le débogage (VS 2005) et la localisation (Lingobit), ainsi qu’une deuxième machine virtuelle utilisée par nos développeurs pour les tests automatisés (TestComplete ).

Les machines virtuelles de développement et d'installation ont reçu une priorité plus élevée et sont toutes deux configurées en tant que machines virtuelles à double processeur avec 1 Go de mémoire. Les ordinateurs virtuels restants ont une priorité égale et une RAM de 256 à 1 Go.

Tout fonctionne sur un Xeon double quad-core avec 8 Go de RAM exécutant ESXi et un raid matériel (4x1 To RAID10)

Pour un investissement à peine supérieur à 2,5 000 USD, nous avons multiplié par 10 la productivité (imaginez le temps nécessaire à un support technique pour installer une version antérieure de Office sur leur bureau afin de reproduire un problème client ou le temps que je ne peux pas utiliser. mon bureau parce que nous construisons des installateurs). La prochaine étape consistera à doubler la RAM à 16 Go à mesure que nous ajouterons davantage de machines virtuelles Server 2008 et Vista gourmandes en mémoire.

Nous avons toujours quelques ordinateurs virtuels sur nos ordinateurs de bureau (des versions localisées de Windows, Ubuntu et Windows 7 s'exécutant sous VMware Workstation, par exemple), mais les configurations les plus fréquemment utilisées ont été déchargées sur un serveur dédié. tous se connecter à distance dans. Beaucoup, beaucoup plus facile.

La virtualisation (avec des instantanés ou des disques non persistants) est vraiment utile pour tester l’installation du logiciel dans une configuration épurée connue (c’est-à-dire qu'il ne reste plus rien des installations antérieures erronées de votre logiciel).

Le fait de disposer de votre zone de développement sur un seul fichier (avec une machine virtuelle) facilitera la sauvegarde et la restauration en cas de problème.

En dehors de cela, vous pouvez également transporter votre boîte de développement portable autour de différentes machines, car vous n'êtes pas limité sur la seule machine sur laquelle vous travaillez habituellement.

Non seulement cela, mais vous pouvez tester simultanément sur différents systèmes d'exploitation , avec un seul système d'exploitation installé sur chaque fichier de machine virtuelle que vous avez.

Croyez-moi, les tâches que j'ai mentionnées ci-dessus vous éviteront beaucoup de tracas.

Un autre cas d'utilisation intéressant pour les ordinateurs virtuels consiste à créer un réseau virtuel d'ordinateurs. Par exemple, vous pouvez faire apparaître des machines exécutant les différents niveaux de votre pile d'applications, chacune exécutant son propre ordinateur virtuel. Pensez-y comme au centre de données d'un pauvre.

Ces ordinateurs virtuels peuvent également apparaître comme disponibles sur votre réseau physique. Vous pouvez donc utiliser RDP ou similaire pour obtenir une session de terminal distant avec eux.

Vous pouvez avoir une machine lourde (beaucoup de mémoire) exécutant ces machines virtuelles, tout en y accédant à distance depuis une autre machine, telle qu'un ordinateur portable, ou avec n'importe quelle machine dotée du meilleur écran.

J'utilise une machine virtuelle sous Windows pour exécuter Linux. Bien qu'il existe déjà une version d'emacs pour Windows, son utilisation sous Linux semble plus gratifiante pour une raison quelconque.

Maintenance des ordinateurs en attente

Je suis dans une situation où des écoles de ma région sont fermées mais leur système de financement doit être maintenu jusqu'à 2 ans pour garantir le paiement de toutes les factures impayées. Auparavant, cette tâche était gérée par la maintenance du matériel des écoles en panne qui rencontraient des problèmes:

  • Cela a gaspillé des ressources matérielles rares et a pris beaucoup d’espace physique.
  • Les responsables des finances devaient être physiquement présents au niveau du matériel pour pouvoir travailler sur chaque système.

Aujourd'hui, j'accueille chaque école mise hors service sur son propre boîtier virtuel dans un seul hôte physique. Rdp accède à chaque système individuel sur le numéro IP de l'hôte, mais avec son propre numéro de port et la sécurité d'origine de chaque école est conservée.

Les agents des finances peuvent désormais travailler dans les écoles bloquées sans avoir à se rendre physiquement, il y a plus d'espace physique dans la salle des serveurs et la sauvegarde de toutes les écoles bloquées à la fois est un processus automatisé simple.

Chaque école mise hors service dans sa propre boîte aux lettres, il n’existe aucun moyen de contamination croisée des données entre les systèmes. Plusieurs milliers de dollars de matériel informatique sont également libérés pour être redéployés.

La virtualisation semble être la solution parfaite à ce problème.

J'ai utilisé l'approche de la virtualisation à l'aide de VMWare Server lorsque la tâche à accomplir consistait à tester un environnement en cluster de WebSphere Application Server. Après la configuration de VMWare Server, j’ai créé une nouvelle machine virtuelle et effectué toutes les installations logicielles nécessaires, telles que WebSphere App Server, Oracle, WebSphere Commerce, etc., après quoi j’ai arrêté la machine virtuelle et copié l’image de disque dur virtuel dans deux fichiers différents. fichiers, l’un en tant que machine virtuelle clonée et l’autre en tant que sauvegarde.

Création d'une nouvelle machine virtuelle et affectation de l'une des images de disque copiées. J'ai donc maintenant deux systèmes en marche, ce qui m'a permis de tester le même scénario d'un environnement en cluster. J'ai pris un instantané de la machine virtuelle par le biais de VMware et si je faisais une activité quelconque, je reviendrais sur les modifications apportées à l'instantané pris pour passer ainsi à l'état précédent et augmenter ma productivité au lieu de devoir rechercher ce qu'il faut inverser. L’image disque de sauvegarde peut également être utilisée si je dois revenir à un état très ancien, au lieu de devoir recommencer à zéro.

La fonctionnalité de cliché qui existe à la fois dans VMWare et dans Virtual PC / Server de Microsoft permet de prendre en compte la virtualisation pour les scénarios dans lesquels vous pensez effectuer des modifications radicales, ce qui peut ne pas être facile à restaurer.

D'après ce que je sais, rien ne ressemble à Parallels sur Mac, mais plutôt pour le travail que pour le test.

L’intégration (avec "cohérence", votre VM ne s'exécute pas "dans une fenêtre" de votre système hôte, tous les programmes du système invité ont leur propre fenêtre dans le système hôte) est magnifique et vous permettent de remplir tous les ALL! ) lacunes:
Mon collègue l'a configuré pour qu'Outlook (il ne ressemble en rien à Outlook pour MacOsX) s'affiche lorsqu'il clique sur un lien "mailto:" sur une page Web, avec Firefox sur Mac!
Dans l’autre sens, s’il veut envoyer un fichier PDF, il double-clique sur la pièce jointe dans Outlook (sous Windows), qui ouvre le fichier PDF dans le visualiseur de PDF de la construction du Mac.

VirtualBox offre également cette possibilité de séparation des fenêtres (du moins lorsque Windows est exécuté sur la machine virtuelle sous Linux), ce qui est très utile au travail.

Pour les tests, bien sûr, rien ne vaut un environnement bien séparé.

Nous disposons d'un serveur physique dédié à l'hébergement de machines virtuelles dans notre environnement de développement. Les machines virtuelles sont régulièrement mises à niveau et démolies et sont utilisées pour tester des logiciels dans des environnements d’exploitation standard connus.

Cela est également très utile lorsque nous voulons qu'une application s'exécute sur un domaine différent de l'environnement de développement.

De plus, l’organisation pour laquelle je travaille est en phase de planification pour créer un vaste terrain d’essai virtuel. Il s'agira d'un grand réseau de machines, reposant sur son propre réseau, et tout le personnel interne, les sous-traitants et les fournisseurs tiers de l'organisation seront en mesure de préparer leur logiciel à des fins de test avant de le mettre en œuvre dans l'environnement de production. Les machines virtuelles refléteront les machines physiques dans l'environnement de production.

Ça a l'air génial, mais tout le monde est un peu sceptique: il s'agit d'une organisation gouvernementale ... La bureaucratie et les lourdeurs administratives vont probablement transformer cela en une grosse perte de temps et d'argent.

Si nous utilisons une machine virtuelle (vpc 2007, Virtual Server 2005, une application VMWare, etc.)

1.Nous pouvons exécuter plusieurs systèmes d'exploitation (Windows 98, 2000, XP, Vista, Windows Server 2003, 2008, Windows 7 / linux / solaris) sur un seul serveur

.

2.Nous pouvons réduire les coûts matériels & amp; Espace du centre de données

3.We peut réduire la puissance et amp; Coût de refroidissement AC.

4.Nous pouvons réduire les ressources administratives,

5.Nous pouvons réduire les coûts d'application

6.Nous pouvons exécuter ADS / DNS / DHCP / Exchange / SQL / Serveur Sharepoint / Serveur de fichiers ... etc

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top