【DevOps全家桶学习】版本控制与源码管理,开始初次实践?

302 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

DevOps的关键环节:软件配置管理的核心功能是版本控制。版本控制系统是一种软件,可以管理代码的所有版本并跟踪代码中的更改,也就是我们常说的“源码管理”

源码管理 与 其他 DevOps环节

在自动化构建的过程中,总是需要将我们开发的应用的源码拉取到服务器中进行生成、发布、测试操作,之后再推送到目标服务器上进行部署应用

-->这就需要我们拥有一个在线保存开发过程中的源代码的地方,也涉及源代码管理

分布式-Git 与 集中式-SVN

版本控制系统分为集中式和分布式两种工作模式,Git和SVN是最为广泛被使用的代表

Git因自身一些特点,经由实践被一定程度上认为更适合DevOps:

  • 安全性:SVN是集中式,存在单点故障风险(Git是分布式)
  • 分支功能:Git分支功能强大,便于查询和追溯分支间的提交历史,且支持双向合并
  • 合并支持:Git基于DAG的设计比SVN的线性提交提供更好的合并追踪,避免不必要的冲突,提高了工作效率
  • 开发审核:Git支持团队成员自建分支和版本库,从提交说明、代码规范等方面对提交逐一审核
  • 存储方式:Git把内容按元数据方式存储,而SVN是按文件
  • 发布控制:Git发布控制相当灵活,而SVN并没有明确的发布控制配置

Git 常用的是以下 6 个命令:git clonegit pushgit add 、git commitgit checkoutgit pull

优秀Git工具平台--GitLab

GitLab 是一个开源的源代码管理应用,支持私有化部署安装

与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,易于浏览提交过的版本并提供一个文件历史库。

GitLab 官网:about.gitlab.com (各种文档请参考官网~)

image.png 图来源Gitlab官方:docs.gitlab.com/ee/developm…

  • Nginx:静态web服务器
  • gitlab-shell:用于处理Git命令和修改authorized keys列表
  • gitlab-workhorse: 轻量级的反向代理服务器
  • logrotate:日志文件管理工具
  • postgresql:数据库
  • redis:缓存数据库
  • sidekiq:用于在后台执行队列任务(异步执行)
  • Puma:Puma是一个Ruby应用服务器,用于运行核心Rails应用程序,该应用程序在GitLab中提供面向用户的功能。这通常以捆绑或配置的形式显示在进程输出中。ru取决于GitLab版本

写在最后

重新开始更文啦!最近因为工作原因,一直在学习devops的内容,感谢大家的支持!我会继续努力坚持学习!养成了好习惯,每天必定会抽出时间多多少少学习技术知识~

以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)