GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channel=content&utm_source=csdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

更多关于极狐GitLab :https://gitlab.cn 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。

学习极狐GitLab 的相关资料:

  1. 极狐GitLab 官网:https://gitlab.cn
  2. 极狐GitLab 官网文档:https://docs.gitlab.cn
  3. 极狐GitLab 论坛:https://forum.gitlab.cn/
  4. 极狐GitLab 安装配置:https://gitlab.cn/install
  5. 极狐GitLab 资源中心:https://resources.gitlab.cn

关联阅读

搜索【极狐GitLab】公众号,后台输入加群,备注gitlab,即可加入官方微信技术交流群。

极狐GitLab 公众号后台回复新手指南,免费领取极狐GitLab 新手指南一份,从零到一快速上手极狐GitLab。

随着软件发展的演进,职责分工也越来越明确,有了专门编写代码的人员——研发(Dev),专门维护基础设施的人员——运维(Ops),专门进行代码测试的人员——测试(QA)、专门管理安全的人员——安全(Sec)等。人们的潜意识中也是这么划分的,研发就安安静静用 IDE 写代码,写完之后交给测试进行各种测试,测试通过,就告诉运维人员去搭建一个环境然后把应用程序部署起来。

如此分工在早期也没有太大的问题,大家也习惯了这些。因为大家不需要每个月甚至每周去迭代发布产品,甚至按年去发布产品也是稀松平常的事情。但是随着数字化进程的加速,互联网、移动互联网的快速发展,对于软件的快速、高质量交付的需求越来越多。因此围绕如何这两个问题就有了不少探讨,也出现了很多理论和实践。其中 DevOps 算是很亮眼的那一个。

2009 年 DevOps 之父 Patrick Debois 正式提出了 DevOps 这个概念,这也得益于其在做一个项目的时候,发现研发人员(Dev)和运维人员(Ops)之间的协作总是不那么尽人意,两者之间沟通、协作不畅,导致项目运行的效率就很低下,因此他在思考、探索这个问题的过程中,造就了 DevOps 的诞生,其本意是通过加强研发人员和运维人员之间的协作来加速软件的交付。
在这里插入图片描述

此后,企业及组织在落地 DevOps 的过程中又将 CI/CD 发扬光大。CI/CD 作为流程、工具、自动化的合集,能够实现 DevOps 所追求的通过协作来提高软件交付效率。因此涌现出了一大堆工具(甚至让之前的一些工具也大放异彩),比如 Jenkins、GitLab CI、Circle CI、Travis CI、Tekton、ArgoCD 等。

但是,技术的发展是一浪接着一浪,自从 Kubernetes 自 2014 年正式发布以来,就掀起了云原生的快速发展,很多企业或组织也在落地实践云原生,将应用程序部署到 Kubernetes 集群上,而 DevOps 也是作为云原生的重点内容之一,也被越来越多的企业认可。

2017 年,有一家公司—— Weaveworks,在企业内部落地云原生的时候,总结出了一套基于云原生应用程序交付的最佳实践 —— GitOps。GitOps 有以下几个特征:

  • 以声明式系统为基础:声明式系统有个优势,给定期望状态,系统会自动对当前状态进行调谐,以确保当前状态和期望状态保持一致。而 Kubernetes 就是典型的声明式系统,所谓的云原生,其实就是围绕 Kubernetes 在构建应用或者生态。
  • Git 为单一可信源:所有的清单(包括应用程序和基础设施)都存储在 Git 系统上,后续所有的变更都通过 Git 做版本控制。典型的系统包括 GitLab、GitHub、极狐GitLab 等。
  • 一切皆代码:GitOps 讲究的是一切都通过代码来描述,比如基础设施,所以出现了基础设施即代码(IaC)的概念、策略即代码(Policy as Code)、安全即代码(Security as Code)等。这样,代码可以存储在 Git 系统上,变更可追踪。
  • MR/PR:通过 Merge Request/Pull Request 来进行代码变更,这个过程能把代码审核(Code Review)嵌入流程中,确保所做变更是经过审核的。

围绕 GitOps 也诞生了一些工具,比如 Weaveworks 公司的 Flux,Codefresh 公司的 ArgoCD,GitLab/极狐GitLab 公司的KAS(Kubernetes Agent Server)。

在这里插入图片描述

随着企业上云的加速、开源使用率的提升、安全法规的完善,让企业和组织不得不重视研发过程的安全,因此也就出现了 DevSecOps:将安全融入 DevOps 流程,保证应用在研发的每一个阶段都是安全的,进而构建出安全有保证的应用程序。

DevSecOp 最开始出现于 2012 年,最开始叫做 DevOpsSec,后来演变成为了 DevSecOps,经过这几年的发展,从 Gartner 发布的应用程序安全技术成熟度曲线来看,DevSecOps 已经进入到了开花结果的成熟阶段:

在这里插入图片描述

相比而言,GitOps 还在萌芽阶段。

DevSecOps 讲究的是将安全手段融入到软件研发的每个阶段,包括编码、测试、构建等。说直白点就是将众多安全防护手段:密钥检测、SAST(静态应用程序安全测试)、DAST(动态应用程序安全测试)、容器镜像扫描、依赖项扫描等。而且要做到变更代码的自动化安全扫描、安全漏洞的追踪修复等。

在这里插入图片描述

不管是 DevOps、GitOps 还是 DevSecOps,其实核心或者本质是一样的:通过协作(人的沟通、工具的使用、流程的融合)让与软件研发相关的所有人员,齐心协力,快速交付高质量的软件,同时还能保证整个流程的安全。

所做的工作或者努力都是围绕整个软件开发生命周期进行的:

在这里插入图片描述

这个过程中会使用到大量的工具,因此完成 xOps 的过程也是堆积工具链的过程。久而久之,工具链的运维成为了不小的负担,而让人员聚焦在各自职责上的精力变得越来越小。为了减少工具链的运维,同时打通不同工具链之间的数据流,一体化的平台就成为了人们的诉求。

而极狐GitLab 作为 GitLab 在国内的发行版,就是一个一体化的 DevOps 平台。一键式(Omnibus)安装之后,就可以使用开箱即用的其他能力,比如敏捷项目管理、源代码托管、CI/CD、DevSecOps 等。由于所有的功能都在同一个应用程序中,数据结构是一致的,因此不同阶段的数据流是可以流动的,不存在数据孤岛的问题。此外,极狐GitLab 的生态很开放,可以无缝集成很多第三方工具(在用户有特殊需求的情况下),比如 JetBrains 的静态代码扫描工具 Qodana、IM 工具钉钉、飞书、企微等。

更多关于极狐GitLab 在 DevOps、GitOps、DevSecOps 等方面的具体时间可以查看官网 https://gitlab.cn,论坛:https://forum.gitlab.cn,文档中心:https://docs.gitlab.cn 或者搜索关注【极狐GitLab】公众号。

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐