关于极狐GitLab 的安装升级,可以查看官方指导文档。
昨天,网易云音乐崩了这一事件冲上了热搜,好多网友也都表示:没有怀疑是网易云的问题,以为是自己手机或者网络出现了问题。也有部分网友戏称,是不是网易云内部有员工删库跑路导致应用崩了。故障发生后,网易云音乐发公告证实了是应用本身的问题,至于原因,说是与基础设施有关,并不是传说中的删库跑路,其他细节并未披露太多,在故障发生数小时内,故障被排除,应用恢复正常。
最近两年,大厂是不是就会出现服务宕机、崩了的事故,去年的滴滴、阿里云、语雀都发生了宕机事件,也都相继冲上了热搜,就在上周,全球最大的源代码托管平台 GitHub 也发生了宕机,导致全球用户都无法访问服务,包括 Copilot 在内,事后官方表示由于配置错误导致数据库链接出现问题。应用发生故障是不可避免的事情,重要的是避免那些人为失误造成的宕机停服。
因此,要想避免这一点,进一步提升软件的可靠性,一般有以下几点:
- 所有变更都要审核:不管变更大小,所有变更都要经过相关人员的审核。而且要对变更的原因进行记录,方便后续的审计。简单来说,如果有变更需求,那么就先在系统上提一个变更需求,写清楚变更的原因、需要执行的操作、变更的范围(方便衡量爆炸半径)等。然后责任人开始操作(能自动化的地方一定要自动化,避免人为操作),而且操作应该是逐级验证,先上开发环境,然后上测试环境,最后上生产环境。在这个情况下,常用的工具就是 GitLab(当前在国内有专门面向中国企业的中国发行版——极狐GitLab,可以直接私有化部署),因为在讲究 IaC 的时代,不管是基础设施还是应用程序,最终都是以代码的形式存储在代码仓库里,变更就是对于代码的修改,这时候需要先提一个 Issue(议题),利用 Issue template,快速完成变更需求的撰写,然后创建合并请求(MR),提交变更的代码,然后指派多个代码审核人员对变更代码进行审核,多人审核能够对变更代码进行全方位审核,是把控变更质量和可靠性的有效手段,审核通过,代码合入主分支,CI/CD 流水线能够自动将应用程序部署到测试环境,测试通过再部署到生产环境。这种标准化的流程,在把控变更质量的同时,利用了自动化的能力(CI/CD,GitLab CI 是国内使用率很高的 CI/CD 工具),避免人为操作带来的误操作。
- 高可用架构:所谓的高可用架构,简单来说,就是部署“多套”实例,这些实例互为主从,平时是由主实例对外提供服务,一旦主实例发生故障,从实例就升职为“主实例”,从而对外提供服务,这种情况下,用户是不会感受到这种切换的,依旧会体验到丝滑的服务。上面提到的 GitLab 本身就具有独特的高可用架构——GEO,也就是常说的多地域部署模式。这种架构下可以部署多套 GitLab 实例,一主多从模式,这些实例可以分布部署在不同的城市,比如主实例在北京,从实例在上海,当然,如果需要还可以在杭州部署一个从实例。主从实例之间的数据会实时同步。该架构除了能提高 GitLab 的可靠性之外,还有一个优势:靠近用户的节点会为就近的用户提供服务,这样用户的体验会很好,比如杭州的用户如果在杭州的节点上clone 大量代码,体验可能要比杭州用户去北京节点clone大量代码的体验好。这种架构特别适合有跨地域研发团队的公司。尤其针对 AI 公司,在美国、中国都有研发团队,如果要基于同一套代码协作,这种模式可以说是最佳选择。
- 自动化:自动化的目的除了提高效率外,更重要的一点是能够避免过多的人为操作带来的误操作,引发人为故障。在软件研发领域,自动化一般就是指 CI/CD 了。在 CI/CD 领域有两大顶级工具,一个是 Jenkins,一个是 GitLab CI。Jenkins 是通过插件机制实现丰富多样的功能,但是过多的插件也让插件的安全性无法得到保证,很多插件已经很久不更新了。GitLab CI 是 GitLab 除了源代码托管之外的功能,是内置的,不用按照配置第三方工具链就可以使用。主要通过配置 YAML 文件来编写流水线。另外,GitLab CI 和源代码托管在同一个平台上,所以能打通两者的数据,比如 CI/CD 构建过程中的数据,诸如代码扫描报告、测试报告,都会直接嵌入到合并请求中,这样方便研发人员、安全人员、代码审核人员查看。
GitLab CI/CD 与 MR、Issue 相结合当然,GitLab 经过十余年的发展,已经从最开始的代码协作演进成 AI 赋能的一体化 DevSecOps 平台。而对应的中国发行版——极狐GitLab,也是这样一个平台:能够让国内用户快速私有化部署构建、具备很多国内特色功能、AI 赋能的 DevSecOps 平台。极狐GitLab 支持源代码、二进制、容器、Helm Chart 等方式进行灵活安装,而且对国内的很多操作系统,比如麒麟、欧拉,数据,诸如 TDSQL、人大金仓等都做了很好的适配。按照官方指南 在数分钟之内就可以快速构建起一个可用的系统。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。