本方案主要满足以下业务场景
git 本是个分布式源码管理 。所以本方案期望不增加过高复杂度和硬件成本的前提,保证gitlab主体具备高可用,同时由于源码重要性和实时性需要具备数据一致性,而且为避免硬件问题导致数据丢失,采用rsync+定时冷备的方案。
GITLAB服务组成
nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。