Acerca de los nodos de clúster GitHub Enterprise Server
Cada nodo de un clúster GitHub Enterprise Server es una máquina virtual (VM) que ejecuta el software GitHub Enterprise Server. Antes de implementar un clúster, puedes revisar los requisitos de hardware, los servicios necesarios y las recomendaciones de diseño.
Nota: : La agrupación en clústeres de GitHub Enterprise Server se debe configurar con HTTPS.
Requisitos de hardware
Cada nodo debe tener un volumen raíz, así como un volumen de datos separado. Estas son las recomendaciones mínimas. Es posible que se requieran más recursos según su uso, como la actividad del usuario y las integraciones seleccionadas.
Servicios | Mínimo de memoria requerida | Mínimo de espacio libre de volumen de datos requerido |
---|---|---|
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 | 14 GB | 10 GB |
elasticsearch-server | 14 GB | 10 GB |
Servicios requeridos para agrupamiento
GitHub Enterprise Server está compuesto por un conjunto de servicios. En un clúster, estos servicios se ejecutan en varios nodos y la instancia equilibra las solicitudes entre los nodos. La instancia almacena automáticamente copias redundantes de datos en nodos independientes. La mayoría de los servicios son pares iguales con otras instancias del mismo servicio. Las excepciones a esta distribución son los servicios mysql-server
y redis-server
, que funcionan con un único nodo principal con uno o varios nodos de réplica.
Para una redundancia adecuada, usa estos nodos mínimos para poner en funcionamiento cada servicio.
Nota: Los requisitos de escalado del entorno dependen de muchos factores, incluido el tamaño y número de repositorios, el número de usuarios y la utilización general.
Ejemplo de configuración del clúster
En el ejemplo siguiente se muestra una configuración mínima del clúster, que incluye 11 nodos que ejecutan los servicios necesarios.
Niveles | Servicios | Mínimo de nodos requeridos |
---|---|---|
Front-end | job-server ,memcache-server ,web-server | 2 |
Base de datos | consul-server ,mysql-server ,redis-server | 3 |
Storage | git-server ,metrics-server ,pages-server ,storage-server | 3 |
Búsqueda | elasticsearch-server | 3 |
Recomendaciones de diseño de agrupación
La agrupación permite que los servicios que constituyen GitHub Enterprise Server experimenten un aumento gradual independientemente de los demás. Esta flexibilidad puede usarse para diseñar e implementar una agrupación que se adapta a las organizaciones con diferentes requisitos de escalabilidad. Por ejemplo, es posible que algunas organizaciones necesiten una mayor capacidad de almacenamiento para extracciones frecuentes o de gran tamaño, pero el uso del servidor web puede ser relativamente bajo. Otra organización puede tener un buen rendimiento con menos recursos de almacenamiento, pero necesitar muchos nodos que ejecuten pages-server
o elasticsearch-server
. Hay muchas combinaciones diferentes posibles. Trabaja con tu representante de cuenta para determinar la mejor configuración de agrupación para tus necesidades específicas.
- Esparcir nodos redundantes por todo el hardware independiente. Si compartes su CPU, memoria o dispositivos de almacenamiento, reducirás el rendimiento e introducirás puntos de falla únicos. Los componentes de trabajo en red compartidos también pueden reducir la capacidad y aumentar el riesgo de pérdida de conectividad en caso de una interrupción.
- Uso de almacenamiento rápido. Por lo general, las redes del área de almacenamiento (SAN, por sus siglas en inglés) se optimizan para obtener una máxima utilización de espacio, disponibilidad y tolerancia a fallas, y no un rendimiento absoluto. La agrupación de GitHub Enterprise Server brinda redundancia y disponibilidad, y ofrecerá un mejor rendimiento en el almacenamiento más rápido disponible. Se recomienda el almacenamiento SSD local.