À propos des nœuds de cluster GitHub Enterprise Server
Chaque nœud d’un cluster GitHub Enterprise Server est une machine virtuelle qui exécute le logiciel GitHub Enterprise Server. Avant de déployer un cluster, vous pouvez passer en revue la configuration matérielle requise, les services requis et les recommandations de conception.
Remarque : le clustering GitHub Enterprise Server doit être configuré avec HTTPS.
Configuration matérielle requise
Chaque nœud doit avoir un volume racine ainsi qu’un volume de données distinct. Il s’agit de recommandations minimales. Selon votre utilisation, comme l’activité des utilisateurs et le choix des intégrations, des ressources supplémentaires peuvent être nécessaires.
Services | Mémoire minimale requise | Espace libre minimal requis pour le volume de données |
---|---|---|
job-server ,memcache-server ,web-server | 14 Go | 1 Go |
consul-server ,mysql-server ,redis-server | 14 Go | 10 Go |
git-server ,metrics-server ,pages-server ,storage-server | 14 Go | 10 Go |
elasticsearch-server | 14 Go | 10 Go |
Services nécessaires pour le clustering
GitHub Enterprise Server se compose d’un ensemble de services. Dans un cluster, ces services s’exécutent sur plusieurs nœuds, et l’instance équilibre les demandes entre les nœuds. L’instance stocke automatiquement des copies redondantes de données sur des nœuds distincts. La plupart des services sont des pairs égaux aux autres instances du même service. Les exceptions à cette distribution sont les services mysql-server
et redis-server
, qui fonctionnent avec un seul nœud principal compsé d’un ou plusieurs nœuds réplica.
Pour une redondance convenable, utilisez le nombre minimal de nœuds indiqué ci-dessous pour chaque service.
Remarque : Les besoins de votre environnement en matière de scalabilité dépendent de nombreux facteurs, notamment de la taille et du nombre de dépôts, du nombre d’utilisateurs et de l’utilisation globale.
Exemple de configuration de cluster
L’exemple suivant illustre une configuration de cluster minimale, qui inclut 11 nœuds qui exécutent les services nécessaires.
Niveaux | Services | Nombre minimal de nœuds requis |
---|---|---|
Frontend | job-server ,memcache-server ,web-server | 2 |
Base de données | consul-server ,mysql-server ,redis-server | 3 |
Stockage | git-server ,metrics-server ,pages-server ,storage-server | 3 |
Recherche | elasticsearch-server | 3 |
Recommandations relatives à la conception des clusters
Le clustering permet aux services qui composent GitHub Enterprise Server de faire l’objet d’un scale-out indépendamment les uns des autres. Cette flexibilité permet de concevoir et d’implémenter un cluster qui répond aux différentes besoins de scalabilité des organisations. Par exemple, certaines organisations peuvent avoir besoin d’un débit de stockage plus important pour les récupérations (fetch) volumineuses ou fréquentes, tout en ayant une utilisation relativement limitée du serveur web. D’autres organisations peuvent bénéficier d’un bon niveau de performance avec moins de ressources de stockage, mais nécessiter qu’un grand nombre de nœuds exécutent pages-server
ou elasticsearch-server
. De nombreuses combinaisons différentes sont possibles. Rapprochez-vous de votre représentant de compte pour déterminer la configuration de cluster la mieux adaptée à vos besoins spécifiques.
- Répartissez les nœuds redondants sur du matériel indépendant. Si vous partagez le processeur, la mémoire ou des dispositifs de stockage, vous perdrez en performances et introduirez des points de défaillance uniques. Le partage de composants de réseau peut aussi réduire le débit et accroître le risque de perte de connectivité en cas de panne.
- Utilisez un stockage rapide. Les réseaux de zone de stockage (SAN) sont souvent optimisés pour une utilisation d’espace maximale, la disponibilité et la tolérance de panne, mais pas pour un débit absolu. Le clustering GitHub Enterprise Server assure redondance et disponibilité et fonctionne de manière optimale sur le stockage le plus rapide à disposition. Un stockage SSD local est recommandé.