1、码云代码托管平台核心架构简介 架构 运维 总结简介简介 架构架构 运维运维 总总结结码云是开源中国社区在2013年推出的基于 Git 的代码托管 服务,为开发者提供稳定、效、安全的云端软件开发协作平 台;论是个、团队、或是企业,都能够用码云实现代码托 管、项管理、协作开发。产品特点个用户免费个开发者可免费创 建 1000 个 项 ( 不 限公有、私有),提 供最多 5G 的免费代 码存储空间代码托管代码托管 持 Git/SVN 管 理 , 提供代码审核、Bug 跟踪以及 Webhook 钩回调等功能团队协作团队协作轻量级敏捷项管理具,提供需求、任 务、问题跟踪功能, 提供任务看板具质质量量分析
2、分析键分析项源码, 直观了解项代码质 量,提供代码安全扫 描功能功能特点持通过微信服务号 接收账号登录、任务 分配、Pull RequestsJava/PHP 代码 API 档动 成和浏览强的Jenkins 插 件助动 化流程Pages 功能,持引擎 Jekyll、Hugo、Hexo禁强制 推送功能代码与任务强关联、持配置不同的访问式、完善的日志记 录,便追溯客户案例公有云客户私有云客户校版用户当前数据项 数500W+用 户300W+企业5W+ 校500+数据增项日均8K+日均 Push50W+用户日均4K+简介简介 架构架构 运维运维 总总结结码云基于 Gitlab 5.1.0 版本进改造应
3、用架构STEP1: 单机架构ClientAppDBApp8核 32G内存 块 2T 存储盘DB4核 16G内存 块 1T 存储盘u存储空间的压u计算资源的压Ceph 是是 个个 Linux PB 级分布式级分布式件系统件系统。可轻松扩展到数 PB 容量性能(每秒输/输出操作IOPS和带宽)可靠性STEP2: 分布式件系统DNS 分发分发App1App2AppNNFSMON/OSDMON/OSDMON/OSDCeph使 用 Ceph 进仓库的存储架构遭遇IO瓶颈RBD块设备被故卸载STEP3: NFS架构Gitlab 官的集群案n NFS缓冲件导致删除不彻底n NFS性能问题n 占用内带宽的问题
4、n 法便的横向扩展存储n 毫维护性gitgitee-app1:$ df -hSize Used Avail Use% Mounted onFilesystem/dev/sda1/dev/sda2184G15G 160G9% /307G47G 245G 16% /home172.16.3.66:/data10T50G 9.9T1% /data172.16.30.1:/disk110T50G 9.9T1% /disk1172.16.30.2:/disk210T50G 9.9T1% /disk2172.16.30.3:/disk310T50G 9.9T1% /disk3172.16.30.4:/di
5、sk410T50G 9.9T1% /disk4172.16.30.5:/disk510T50G 9.9T1% /disk5172.16.30.6:/disk610T50G 9.9T1% /disk6172.16.30.7:/disk710T50G 9.9T1% /disk7凌乱的磁盘挂载STEP4: 分布式架构DNS 分发分发Frontend 分发集群Backend1Backend2BackendNReposReposReposMysqlRedis集群ES集群Router分布式架构组成模块Backend1Backend2BackendNReposReposReposRouterNginx Pr
6、oxySSH ProxyServer ProxyLFS ProxyFrontend 集群MysqlRedis集群ES集群按用户进分与仓库关的请求随机分发仓库同台机器的逻辑处理如何分发应 用KeepAlived DRBD服务Mysql Cluster Redis Cluster ES ClusterBackend1ReposBackend1bakReposFrontend1Frontend1bakKeepAlivedKeepAlived稳定性用户分配策略 迁移策略扩展Frontend以及Backend可维护性深圳北 京杭州企业专线带宽质量不理想内部络管制异地多中深圳节点杭州节点Backend1R
7、eposBackend1ReposBackend1ReposBackend1ReposBackend1ReposBackend1ReposBackend1ReposBackend1ReposRouterNginx ProxySSH ProxyServer ProxyRouter SSH Proxy Server Proxy Nginx ProxySync异地多中架构n 同步仓库队列,定要保证可靠性 n 多个中之间的仓库定时校验架构提升n 正在改造按项进分n 将Gitee主程通过RPC调用式与仓库剥开n 读写分离Backend1Backend2BackendNReposReposReposBac
8、kend1Backend2BackendNReposReposReposReposReposRepos主程与仓库分离Backend1ReposBackend1-1Backend1-2RouterWrite写主仓ReposSyncReposSyncRead!读写分离写操作读操作简介简介 架构架构 运维运维 总总结结Ansible HostplaybookWeb ServicesNginxgit-srvbrzoSidekiq WorkerSServerHostSystem updateServer init发布GrafanaElasticsearchLogstashKibana监控DDoS攻击历史峰值 : 365.80GDDoS攻击次数 : 417DDoS攻击历史峰值 : 487.75GDDoS攻击次数 : 171DDoS攻击历史峰值 : 47.66GDDoS攻击次数 : 19DDOS软件漏洞CC攻击攻击安全防护未来n 容器化(Sonar、Pages等服务已完成) n 运维动化简介简介 架构架构 运维运维 总总结结总结n 码云直以为程序员服务为标 n 架构之路很难但迎接挑战n 多多分享多多汲取意