您当前的位置:首页 > 电脑百科 > 程序开发 > 开源程序 > 百科

服务中断、系统宕机...GitLab崩了怎么办?

时间:2022-11-18 16:43:38  来源:51CTO  作者:

译者 | 陈峻

审校 | 孙淑娟

 

创新式的开发对于码农来说往往是一项艰巨的“修行”任务。每个GitLab用户都或多或少地认识到,源代码对于保障DevOps团队能够不间断地开展工作流程的重要性。

 

有人也许会问:GitLab可谓最可靠的源代码管理(SCM)工具提供平台之一。它会发生什么状况呢?作为一个开源的开放性平台,GitLab不可避免地会受到诸如:服务中断、勒索软件、以及系统宕机等各种潜在威胁。这些有的源自GitLab服务器受到攻击,有的来自GitLab数据库的自身故障。为此,您和您的团队应始终为各种灾难情况提前做好准备,即:为自己的GitLab数据建立一个强大的备份机制。同时,您也应当保证能够将默认的备份策略,集成到自己的DevSecOps流程、以及CI/CD管道中。

 

一、GitLab备份应该包含什么?

 

一旦决定了待备份的GitLab环境,我们就应该确保GitLab的备份内容包含了各种GitLab存储库和元数据。我们可以将此处的“元数据”,理解为针对各类Wiki、问题、问题注释、部署密钥、合并请求、LFS(译者注:linux from Scratch,一种从网上直接下载源码,从头编译Linux的安装方式)、标签、Webhook、标签、里程碑、发布、操作等组件和环节的备份。只有备份好了这些,开发团队和整个公司在项目中用到的所有Git存储库数据,才能得到充分的保护。

 

二、备份策略的关键特性

 

如果您已梳理清楚了手头的工作流程,那么便可以开始制定备份策略了。为了确保工作流程的不间断,我们应该按需进行多重备份,从而不仅可以及时恢复GitLab数据,而且能够满足审计、合规、以及安全性等需求。下面便是一些值得注意的安全性要素:

 

  • AES加密、以及自用的各种动态与静态加密密钥;
  • 区分灵活的、长期的、以及无限期的保存需求;
  • 对旧的、未使用的存储库进行归档的可行性;
  • 通过报告和邮件通知等监控方式,来检查GitLab备份的执行情况;
  • 对勒索软件予以防护;
  • 检查灾难恢复技术是否满足恢复目标。

 

上面只是与完善备份策略相关的基本安全方面。如果您想制定GitLab环境的完整备份计划,则需要考虑并构建包含各种高级备份功能的替代性备份策略。

 

1.3-2-1备份规则

 

如果DevOps团队已经为某些源代码日夜奋战了许久,那么一旦出现GitLab的中断或备份失败,则会导致他们的成果覆水难收,同时也会让企业蒙受财务上的损失。对此,我向您介绍一个3-2-1的“黄金”备用规则。即:一家公司应当将3个备份副本保存在2个不同的存储实例中,并且至少有1个处于离线。因此,您需要注意备份复制的相关问题,以便它能够协助您将本机备份的副本保存到多个位置,进而实现服务的冗余和业务的连续性。

 

当然,如果您的DevOps备份软件具有多存储兼容性的话,则可以大幅节省花费在软件上的开销。目前,AWS S3、Backblaze B2、谷歌云存储(google Cloud Storage)、Azure Blob Storage、GitProtect Cloud、以及其他任何与S3、本地或混合兼容的公有云,都可以提供此类兼容性。如果您不清楚的话,请询问您的备份服务提供商,以确认是否可以充分利用已有的基础设施,将代码数据、连同自己的存储空间,一并备份到不同的目的地处。

 

2.需无限保留的数据

 

保留期限也是我们在制定备份过程中,需要重点考虑的方面。对于一些非常重要的GitLab数据,您可以将其保留期限设置为5年、10年、甚至是无限期保留。如果您的代码中包含了个人隐私数据,那么其保存期限就需要满足本地的法律、法规、以及共同责任的要求。

 

3.对勒索软件的防护

 

备份GitLab数据可谓抵御勒索软件攻击的最后一道防线。因此,如果您的GitLab备份方案是针对防范勒索软件的话,它会在备份的过程中,对GitLab数据执行压缩和加密,进而保证数据在其存储状态是不可执行的。据此,即使您的备份数据被某些勒索软件所截获,也不会被轻易执行或无限量地传播。此外,在最坏的情况下,就算某些勒索软件可以加密、修改或删除已截获到的数据,您手头仍有一个备份,可方便您根据确切的时间点,恢复所需的GitLab副本,进而保证您的团队将在毫无拖延地情况下,继续开展项目。

 

4.给审计与合规提供监测报告

 

常言道:拥有信息的人正统治着世界。及时掌握任何有关GitLab备份本身、备份失败、以及备份状态的信息,可以协助DevOps团队厘清他们所碰到的问题,并能够对备份数据的可用性进行实时把控。软件项目团队往往需要通过Slack通知、数据驱动的仪表板、电子邮件通知、以及高级审计日志,来跟踪备份系统的每一项执行操作。此类信息不但能够让您的团队受益,而且可以为审计和安全认证等方面,提供详细的备份完成情况的报告。

三、恢复过程应包含哪些?

 

根据备份策略,对GitLab执行有效的备份,只是整个灾备计划的一部分。我们还需要规划好能够尽快恢复GitLab备份数据的策略。也就是说,灾难恢复计划应确保您的业务在服务中断/宕机、(非)故意的人为错误、以及因勒索软件攻击而造成数据丢失等可能的情况下,仍能保持业务的连续性。

 

下面是我们在制定恢复策略时,需要仔细考虑的方面:

 

  • 需要还原的数据所处时间点。
  • 存储库和选定元数据的恢复程度与数据量。
  • 用于从存储库备份数据进行恢复的GitLab帐户。
  • 是否以交叉恢复的方式,从GitLab恢复到另一个Git托管平台(如:Github或Bitbucket),这在工具之间进行迁移时,非常实用。
  • 恢复到本地设备的可能性。

 

在实践中,如果您可以将备份和恢复两项操作归并到一个应用之中的话,则可以大幅节省团队的时间。

 

有了恢复策略,我们在讨论面对GitLab、基础设施、以及备份方案出现故障等场景时,咱们的团队能够如何准备:

 

1、GitLab出现中断

 

虽然GitLab是一个可靠的托管服务提供平台,但是发生中断的可能性还是存在的。对此,您既可以将GitLab实例以.git文件的方式,恢复到自己的计算机上;也可以基于交叉恢复的方式,直接将GitLab的副本,恢复到另一个Git托管平台。

 

2、您的基础架构出现中断

 

基于前文提到的3-2-1备份规则,哪怕您的基础架构出现中断,您总会在2处目的地拥有着3个备份副本,而且其中1个处于离线状态。因此,您可以从任何一个时间点获得备份副本,并轻松地恢复GitLab存储库及其元数据。

 

3、备份方案本身出现故障

 

在决定使用第三方的备份方案之前,您有必要确认其已为潜在的中断做好了准备,并且可以在真正发生时,为您提供适当、可靠的数据恢复支持。例如:如果它们能够与您共享在本地应用中安装的权限,那么一旦其SaaS环境出现故障,您便可以轻松地从本地应用中,直接访问到自己的数据。

 

四、小结

 

综上所述,为了应对GitLab可能出现的中断,您既可以自行管理备份过程,也可以编写专门的GitLab备份脚本并制作快照的命令,还可以选择第三方备份软件的自动备份服务。同时,您需要实现设定好在灾难发生时,执行哪些恢复流程,让整个GitLab环境尽快可供访问,以确保团队工作的连续性。

 

原文链接:https://dzone.com/articles/devops-security-which-gitlab-backup-best-practices

 

译者介绍:

陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。​



Tags:GitLab   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
如何在 GitLab 执行器中使用 Podman
使用 Podman 启动 GitLab 执行器有多种方法,我在本文中概述了其中两种。GitLab 执行器Runner 是一个与 GitLab CI/CD 配合使用的应用,可在 GitLab 基础设施上的流水线中运行作...【详细内容】
2023-08-25  Search: GitLab  点击:(294)  评论:(0)  加入收藏
使用 GitLab 的 Terraform CI/CD 管道
使用 GitLab 管道部署 Terraform 为管理基础设施提供了一个安全、无缝的过程,从而实现更快、更高效的部署。基础设施即代码 (IaC) 是现代 DevOps 和敏捷团队一致、高效地管理...【详细内容】
2023-05-17  Search: GitLab  点击:(405)  评论:(0)  加入收藏
服务中断、系统宕机...GitLab崩了怎么办?
创新式的开发对于码农来说往往是一项艰巨的“修行”任务。每个GitLab用户都或多或少地认识到,源代码对于保障DevOps团队能够不间断地开展工作流程的重要性。...【详细内容】
2022-11-18  Search: GitLab  点击:(248)  评论:(0)  加入收藏
python + selenium实现gitlab全文搜索
一般来说软件开发相关企业都会有自己内部的源代码管理工具,比如私有部署的gitlab服务器。特别是企业上规模之后会有多个产品线,各个业务产品线各自的项目解决方案会非常多。以...【详细内容】
2022-11-16  Search: GitLab  点击:(293)  评论:(0)  加入收藏
GitLab 禁用 Windows
作为 GitHub 的重要竞争对手,GitLab 自成立以来就一直与其在源码库市场上进行争夺。尤其当微软在 2018 年以 75 亿美元收购了 GitHub 后,GitLab 便适时推出了迁移功能,使许多开发者纷纷转向 GitLab,GitLab 由此迅速成长,于...【详细内容】
2022-08-09  Search: GitLab  点击:(369)  评论:(0)  加入收藏
GitLab 技术选型为何不同:坚持用 Web 框架十多年、坚决不用微服务
关于过气网红编程语言 Ruby,我们此前曾发过一篇文章去回顾其大受追捧的过往,并讨论了它每况愈下的生存状态。不过人气并不能直接说明语言质量差,一方面 Ruby on Rails(用 Ruby...【详细内容】
2022-07-08  Search: GitLab  点击:(266)  评论:(0)  加入收藏
CentOS安装部署GitLab服务器
安装依赖yum -y install policycoreutils openssh-server openssh-clients postfix设置postfix开机启动并启动systemctl enable postfix && systemctl start postfix下载Gi...【详细内容】
2022-05-24  Search: GitLab  点击:(358)  评论:(0)  加入收藏
git、github、gitlab有什么区别?
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。这是官方解释,结合自己经验来说,一般在不大不小的公司里,开发的大佬提交代码就是用这...【详细内容】
2022-04-11  Search: GitLab  点击:(348)  评论:(0)  加入收藏
本地新项目如何推送到gitlab仓库
一、背景介绍很多时候我们都是在gitlab上拉取现有的项目下来做开发。但是假设一个新项目由你来搭建项目框架,你本地新建项目,也搭好了初始化的项目框架。现在需要把这个项目放...【详细内容】
2022-03-21  Search: GitLab  点击:(679)  评论:(0)  加入收藏
GitHub还是GitLab?谈谈两者的区别
【CSDN 编者按】开发人员在开发编程项目时可能会面临这样一个问题,GitHub和GitLab各有优缺点,用哪一个更好呢?那么今天我们就来简单介绍一下GitHub和GitLab并谈谈它们各自的优...【详细内容】
2022-03-10  Search: GitLab  点击:(74)  评论:(0)  加入收藏
▌简易百科推荐
GitHub顶流"Web OS"——运行于浏览器的桌面操作系统、用户超100万、原生jQuery和JS编写
Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一周 ——star 数就已接近 7k。作者表示这个项目已开发 3 年,并获得了超过 100 万用户。根据介绍,P...【详细内容】
2024-03-10  OSC开源社区    Tags:GitHub   点击:(28)  评论:(0)  加入收藏
一文读懂 AutoGPT 开源 AI Agents
Hello folks,我是 Luga,今天我们继续来聊一下人工智能(AI)生态领域相关的技术 - AutoGPT AI Agents ,本文将聚焦在针对不同类型的 AutoGPT 技术进行解析,使得大家能够了解不同 A...【详细内容】
2023-11-27  架构驿站  微信公众号  Tags:AI Agents   点击:(257)  评论:(0)  加入收藏
了解一下开源许可协议
开源许可协议开源许可协议是指允许软件源代码公开、免费获取、使用、修改和分发的许可协议。开源许可协议的目的是促进软件的自由共享和协作,使得开发者可以共同改进和创造新...【详细内容】
2023-11-18  沐雨花飞蝶  微信公众号  Tags:开源   点击:(217)  评论:(0)  加入收藏
七个很实用的开源项目,我们一起学学吧!
本周特推的两个项目都是异常实用的项目,一个接棒上周的视频重制项目 video-retalking 这次则是直接将视频替换成另外一个语种;另外一个则是解决日志阅读问题的 tailspin,让你在...【详细内容】
2023-11-06  HelloGitHub  微信公众号  Tags:开源   点击:(385)  评论:(0)  加入收藏
八个适合程序员接私活赚钱的开源项目
智慧团购一套基于Spring Cloud和Vue.js的社区团购配送系统,经过真实的用户检验且完善的社区团购配送系统,社区团购配送系统包含管理台、集团总店(商家PC端)、城市合伙人、区域...【详细内容】
2023-10-13  前端充电宝  微信公众号  Tags:开源项目   点击:(276)  评论:(0)  加入收藏
八个优秀开源DevOps工具
DevOps(Development和Operations)是一组软件工程过程最佳实践,并非工具,旨在将制造世界的精益概念应用于软件世界。维基百科给出的定义是:“DevOps是一种重视软件开发人员(Dev)和IT...【详细内容】
2023-10-10  andflow  微信公众号  Tags:DevOps   点击:(291)  评论:(0)  加入收藏
开源存在风险的根本原因
漏洞仍然是可以预防的几乎所有(96%)的漏洞仍然是可以避免的。2023年本可以避免21亿次具有已知漏洞的OSS下载,因为有了更好的修复版本——与2022年的百分比完全相同...【详细内容】
2023-10-09     企业网D1Net  Tags:开源   点击:(300)  评论:(0)  加入收藏
中国14岁初中生,开源Windows 12网页版,star数近2k
出品 | OSC开源社区(ID:oschina2013)前几天在网上冲浪,发现名为「Windows 12 网页版」的开源项目——在网页端实现了Windows 12 的交互和 UI。项目亮点: 精美的 UI 设...【详细内容】
2023-09-07    OSC开源社区  Tags:开源   点击:(250)  评论:(0)  加入收藏
苹果开源FastViT:快速卷积Transformer的混合视觉架构
苹果此前在论文《FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization》中提出的 FastViT 架构已正式开源。论文地址:https://arxiv.org/pdf/23...【详细内容】
2023-08-16  OSC开源社区    Tags:FastViT   点击:(322)  评论:(0)  加入收藏
金融机构使用开源软件,有哪些潜在风险?
面对新技术,无法逃避,只有先行和后行,没有不执行。本文来自社区文章《论述金融机构使用开源软件的潜在风险》及对该文的评论交流,由社区同行分享,也欢迎大家参与探讨。@朱向东 中...【详细内容】
2023-08-14    IT168企业级  Tags:开源软件   点击:(280)  评论:(0)  加入收藏
站内最新
站内热门
站内头条