Comment configurer les environnements de développement, de transfert, de production et d'assurance qualité


8

Je suis en train de configurer de nouveaux serveurs pour une organisation. Quelles sont les normes ou les meilleures pratiques pour la mise en place d'un nouvel environnement avec développement, test, transfert et production (ou je suis ouvert à d'autres niveaux que je ne connais pas)? De plus, j'ai entendu parler d'organisations déployant des serveurs en SQL, application, serveur Web, etc. Où puis-je trouver de bons exemples de solutions possibles pour la configuration du serveur?

La virtualisation de ces environnements parmi quelques boîtiers physiques est-elle une bonne pratique?

J'ai cherché en ligne quelques idées sur la façon dont d'autres organisations ont configuré leur environnement, mais je ne trouve rien de particulièrement utile. Je me réjouis de tout lien vers lequel vous pouvez me diriger pour discuter de la création d'une solution d'entreprise complète pour une petite ou moyenne entreprise.

Je viens de trouver ce lien: http://dltj.org/article/software-development-practice/ Je voudrais trouver plus d'articles comme celui-ci si quelqu'un en connaît de bons, ils peuvent me pointer vers.

Avant de voter contre ma question, veuillez publier des commentaires pour me permettre d'expliquer davantage. Je n'en connais peut-être pas assez pour poser les bonnes questions.


2
Je pense que la première chose que vous devriez faire est d'expliquer la tâche réelle que vous devez accomplir. À quoi sert la demande? Quelle charge aura-t-elle? Quels changements pensez-vous que vous obtiendrez? (Comme: Avez-vous besoin de 4 niveaux, Dev, Test, Stage, Prod)
MichelZ

1
L'exigence est d'héberger de nombreuses applications Intranet personnalisées (moins de 50 ans). Ce sont tous sur la pile Microsoft. Actuellement, nous utilisons un serveur SQL de développement et des serveurs Web locaux pour le développement, ainsi qu'un serveur SQL et un serveur Web distincts qui hébergent nos environnements de test et de production. Je sais que les choses pourraient être beaucoup mieux faites que ce que nous faisons actuellement, c'est pourquoi j'ai originalité posé cette question. Je ne sais tout simplement pas ce qui est "mieux" avec mon expérience.
TreK

2
Pas une réponse en soi, je vais donc mettre un commentaire. Une chose dont vous voulez vous assurer est que vous disposez d'un mécanisme (par exemple, clé API, validation IP) pour vous assurer que vos environnements de test ne peuvent pas accéder à votre environnement de production.
HTTP500

Réponses:


8

Ceci est une question assez chargée. Mon conseil général est de concentrer votre attention sur la gestion de la complexité et de permettre au système de se développer de manière organique.

Virtualisation:

Vous voulez vraiment éviter l'étalement du serveur, et de nos jours, tout est virtualisé. Choisissez une plate-forme qui vous permettra d'ajouter rapidement des serveurs virtuels et de les gérer efficacement. Une tendance que j'ai vue est d'avoir deux (par exemple) clusters AIX ou VMWare, un pour prod, un pour non-prod. Le non-prod est utilisé pour tous les environnements de développement, de test et de transfert. Ces environnements sont parfaits pour les serveurs Web ou les serveurs d'applications, mais j'essaierais d'éviter de mettre de grandes bases de données de production en croissance en tant que machine virtuelle (au moins sur Windows).

Bases de données

Ceux-ci peuvent facilement devenir incontrôlables lorsqu'ils ont besoin de partager des ressources avec d'autres serveurs. Ayez toujours des bases de données en cours d'exécution sur un système d'exploitation dédié, jamais partagées avec une application ou un serveur Web, sauf s'il y a une très bonne raison à cela. Que vous utilisiez une machine virtuelle ou du matériel est la seule question.

Vous voulez une infrastructure évolutive qui ne vous plafonnera pas si vous avez besoin, par exemple, de passer à une solution en cluster. De nombreuses bases de données iront bien dans une machine virtuelle, mais pour les quelques-unes qui auront éventuellement besoin de plus de puissance que ce qui est pratique à fournir dans un environnement de machine virtuelle, vous souhaiterez que vous les mettiez à la place sur du matériel brut .

Si vous ne parlez pas de fenêtres, certaines de ces directives ne seront pas pertinentes. Il est courant, par exemple, de placer de grandes bases de données en croissance sous forme de partitions logiques dans un hyperviseur AIX.

Espace de rangement

Vous ne pouvez pas avoir une véritable virtualisation (avec la mobilité des VM et la mise en cluster des hôtes) sans stockage partagé. Les serveurs de production, de développement, de test et d'assurance qualité ont tous la même apparence sur votre stockage, mais vous voudrez peut-être investir un peu de temps pour trouver un moyen de hiérarchiser votre produit. C'est une très mauvaise idée, par exemple, d'avoir une base de données prod lourdement taxée partageant des disques (ensembles de raid, pools, etc.) avec un serveur de développement. Le développeur peut parfois frapper les disques aussi fort que Prod, et la dernière chose dont vous avez besoin est de déterminer si une sorte de test est ce qui ralentit votre production.

Demandez à quelqu'un qui connaît votre stockage de s'asseoir et d'analyser tous les goulots d'étranglement potentiels (ports, cache, contrôleurs, disque, etc.) et de faire de votre mieux pour éviter les conflits pour autant de ceux-ci que possible entre prod et non prod.

Cela dit, parfois, les gens de l'application doivent exécuter des tests de performance pour aider à quantifier les effets d'un nouveau patch ou quelque chose. Dans cette situation, vous devrez peut-être être en mesure de leur offrir des quantités similaires (ou du moins quantifiables) de puissance de stockage.


1

Pourquoi avez-vous besoin de cet environnement? Logiciel fournisseur ou votre organisation qui fait son propre développement?

Je ne sais pas si cela aidera, mais HP et Dell tomberaient tous les deux pour venir évaluer votre centre de données actuel et vous donner une recommandation de refonte ou de création à partir de zéro. Les lecteurs du forum peuvent donner de bonnes réponses proches mais sans voir "ce que vous avez et où vous en êtes, ce que vous voulez et où vous devez être", il sera difficile de vous donner une réponse solide. Rendez-vous service et restez avec un seul fournisseur de matériel pour des raisons d'administration.

Nous avons notre centre de données adapté à cela (nous avons le matériel en place pour le faire)

Environnement VMWare C7000 Hp blade blade with EMC SAN backend, 8 gig fibre connection.

Cela nous permet de limiter le frai, la consommation d'électricité et les coûts de climatisation. Il serait utilisé pour les machines de test, les serveurs Proof of concept, les serveurs de production qui n'ont pas besoin de matériel unique à l'application (dongles USB, cartes fax, etc.)

Environnement du serveur lame physique C7000 Boîtier lame HP avec HBA 16 lames connecté au backend EMC SAN via une fibre de 8 gig.

Ce serait pour les machines qui nécessitent une grande quantité de RAM et de CPU, mais qui n'ont aucun ajout matériel unique. Les machines virtuelles fonctionnent bien, sauf lorsqu'elles nécessitent une énorme quantité de CPU ou de RAM. VMWare permet à vmotion de déplacer le vmserver vers une machine hôte afin d'équilibrer l'utilisation du matériel. L'immobilier VM n'est rentable que lorsqu'il est utilisé à son maximum. Autrement dit, des machines plus petites au lieu de quelques grandes. Cela dépend également du système que vous essayez de tenir debout.

Serveur physique (1U à 5U)

Serveurs HP DL360 - DL 5xx. Matériel spécial comme 4x 8 cœurs CPUS et 256 Go de RAM, cartes série pour interfaces de télécommunications ou cartes fax haut de gamme connectées à plusieurs lignes téléphoniques. Ce groupe comprend les serveurs dont le fournisseur a besoin d'un grand stockage local.

Ceci est un exemple mais pas une réponse complète. Sérieusement, parlez à un fournisseur de matériel et laissez-le vous donner une idée de l'endroit où vous vous trouvez et de la façon de le rendre meilleur / plus efficace.


0

Quelles sont les normes ou les meilleures pratiques pour la mise en place d'un nouvel environnement avec développement, test, transfert et production.

Cela dépend entre autres du budget. Je ne sais pas s'il existe des normes, mais vous voudriez garder le même système d'exploitation et d'autres logiciels sur toutes les boîtes. Utilisez des outils d'automatisation comme Puppet pour automatiser et standardiser vos builds.

La visualisation de cet environnement parmi quelques boîtes physiques est-elle une bonne pratique?

Virtualisation? Oui. Grande pratique. Mais vous devez valider vos configurations si elles sont correctes pour fonctionner en tant que machines virtuelles.

J'ai entendu parler d'organisations déployant des serveurs en SQL, application, serveur Web, etc. Où puis-je trouver de bons exemples de solutions possibles pour la configuration du serveur?

D'autres peuvent probablement sonner, mais à mon humble avis, vous voudriez installer différents composants sur différents serveurs pour plusieurs raisons parmi les mises à niveau et la disponibilité des systèmes d'exploitation et des applications.


1
Tout dépend de la taille de son projet. Je ne pense pas que vous ayez besoin de tout cela pour votre base de données privée de films personnels ... :) Je pense que nous avons besoin de plus d'informations d'OP
MichelZ
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.