Nota: GitHub Enterprise Server o clustering deve ser configurado com HTTPS.
Recomendações básicas de hardware
Cada nó deve ter um volume raiz e um volume de dados separado. Essas são as recomendações básicas de hardware. Podem ser necessários mais recursos dependendo do uso, como atividade do usuário e integrações selecionadas.
| Serviços | Requisito mínimo de memória | Requisito mínimo de espaço livre para volume de dados | 
|---|---|---|
| job-server,memcache-server,web-server | 14 GB | 1 GB | 
| consul-server,mysql-server,redis-server | 14 GB | 10 GB | 
| git-server,metrics-server,pages-server,storage-server | 7 GB | 10 GB | 
| elasticsearch-server | 14 GB | 10 GB | 
Requisito de serviços para clustering
Para manter a redundância adequada, use esses nós mínimos ao operar cada serviço.
Observação: as demandas de dimensionamento da sua organização dependerão de vários fatores, como tamanho e número de repositórios, número de usuários e uso geral.
| Serviços | Requisito mínimo de nós | 
|---|---|
| job-server,memcache-server,metrics-server,web-server | 2 | 
| mysql-server,redis-server | 2 | 
| consul-server | 3 | 
| git-server,pages-server,storage-server | 3 | 
| elasticsearch-server | 3 | 
Recomendações de criação de cluster
O clustering permite que os serviços que compõem o GitHub Enterprise Server sejam dimensionados de maneira independente. Essa flexibilidade pode ser usada para projetar e implementar um cluster que se adapte a organizações com diferentes requisitos de dimensionamento. Por exemplo, talvez algumas organizações precisem de mais taxa de transferência de armazenamento para fetches grandes ou frequentes, mas o uso do servidor da web pode ser relativamente baixo. Outras organizações podem ter bom desempenho com menos recursos de armazenamento, mas precisar de vários nós pages-server ou elasticsearch-server em execução. Muitas combinações são possíveis. Converse com seu representante de conta para determinar a configuração de cluster ideal para o seu caso.
- Use nós redundantes em todo o hardware independente. Compartilhar dispositivos de armazenamento, memória ou CPU reduz o desempenho e aumenta as chances de pontos únicos de falha. Componentes de rede compartilhada também podem reduzir o rendimento e aumentar o risco de perda de conectividade em caso de interrupção.
- Use o armazenamento rápido. As redes de área de armazenamento (SAN) costumam ser otimizadas para explorar ao máximo o espaço, a disponibilidade e a tolerância a falhas, mas não o rendimento. Além de oferecer redundância e disponibilidade, o clustering do GitHub Enterprise Server terá melhor desempenho no armazenamento mais rápido disponível. Recomenda-se fazer o armazenamento local em SSD.
- Estabeleça camadas de nós relevantes para a sua organização. Veja esta configuração de exemplo:
- Camada de front-end com dois nós e os seguintes serviços:
- web-server
- jobs-server
- memcache-server
 
- Camada de banco de dados com dois nós e os seguintes serviços:
- consul-server
- mysql-server
- redis-server
 
- Camada de busca com três nós e o seguinte serviço:
- elasticsearch-server
 
- Camada de armazenamento com três nós e os seguintes serviços:
- git-server
- pages-server
- storage-server
- metrics-server
 
 
- Camada de front-end com dois nós e os seguintes serviços:
Diagrama de cluster de exemplo
Observação: isto é apenas um exemplo. O cluster ideal dependerá das demandas exclusivas de cada organização. Converse com seu representante exclusivo ou com Equipe de Vendas do GitHub para que possamos ajudá-lo a determinar a melhor configuração de cluster.
