APP下载

使用阿里云极速型NAS构建高可用的GitLab

消息来源:baojiabao.com 作者: 发布时间:2026-05-16

报价宝综合消息使用阿里云极速型NAS构建高可用的GitLab

使用阿里云档案储存NAS构建GitLab高可用环境

GitLab简介

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git专案仓库,可通过Web界面进行访问公开的或者私人专案。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个档案历史库。它还提供一个程式码片段收集功能可以轻松实现程式码复用,便于日后有需要的时候进行查询。

由于Git的分散式特性,即使Gitlab不可用,开发人员仍然可以在本地提交程式码。但是,某些Gitlab功能,比如CI,问题跟踪和持续整合会不可用,也会严重影响线上使用。因此高可用架构还是不可缺少的。GitLab软件架构如下图所示:

GitLab高可用设计

主备模式:启动2个例项,只有一个工作提供服务,资料通过分散式储存保持一致

主主模式(scales):Rails server启动多个,同时提供服务,数据库保持独立,资料通过NAS档案储存共享

GitLab高可用方案

水平扩充套件

这种架构适用于许多Gitlab客户访问的使用场景,解决高API使用率,大量排队的Sidekiq作业的问题。

3 PostgreSQL nodes2 Redis nodes3 Consul/Sentinel nodes2 or more GitLab application nodes (Unicorn, Workhorse, Sidekiq, PGBouncer)1 NFS/Gitaly server

混合扩充套件

这种架构通过元件在专用节点上分离,提供高资源使各元件不会相互干扰,解决服务争用/高负载的问题。

3 PostgreSQL nodes1 PgBouncer node2 Redis nodes3 Consul/Sentinel nodes2 or more Sidekiq nodes2 or more GitLab application nodes (Unicorn, Workhorse)1 or more NFS/Gitaly servers1 Monitoring node (Prometheus, Grafana)

全分散式扩充套件

该体系结构可扩充套件到数十万使用者和专案,是GitLab.com体系结构的基础。 虽然分散式架构可以很好地扩充套件,但它增加了节点的复杂性,配置,管理和监控的难度,不易维护。

3 PostgreSQL nodes4 or more Redis nodes (2 separate clusters for persistent and cache data)3 Consul nodes3 Sentinel nodesMultiple dedicated Sidekiq nodes (Split into real-time, best effort, ASAP, CI Pipeline and Pull Mirror sets)2 or more Git nodes (Git over SSH/Git over HTTP)2 or more API nodes (All requests to /api)2 or more Web nodes (All other web requests)2 or more NFS/Gitaly servers

阿里云档案储存NAS选型

GitLab场景通常为海量小档案场景,需要并发的进行档案的读写操作。该种场景适用于极速型NAS。该种NAS后端基于RDMA网络进行时延优化,对于元资料操作密集型的业务有很高的OPS和较低的访问时延。

引用文章

https://docs.gitlab.com/ce/administration/high_availability/README.html

作者:曜斯

2020-01-13 09:56:00

相关文章