DevOps的初识
DevOps定义
DevOps是Development和Operations的组合,也就是开发和运维的简写
DevOps集文化理念、实践与工具于一身,可以提高组织高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助企业更快速的发展和改进产品,这种速度使企业能够更好地服务于客户,并在市场上高效地参与竞争
DevOps是针对企业中的研发人员、运维人员和测试人员的工作理念,是他们在应用开发、代码部署和质量测试等整条生命周期中协作和沟通的最佳实践,DevOps强调整个组织的合作以及交付和基础设施变更的自动化、从而实现持续集成、持续部署和持续交付
DevOps平台
1、代码托管(gitlab/svn)
2、项目管理(jira/禅道/Teambition)
3、运维平台(腾讯蓝鲸/自主研发平台)
4、持续交付(Jenkins/gilab)
DveOps的优势
1、速度:应用版本快速的迭代更新,以更好地适应不断变化的市场需求
2、快速交付:更快的将应用交付至生产环境
3、可靠性:保证应用交付的结果是成功的
4、规模:可以在大规模环境下且可靠的交付应用
5、增强合作:建立适应DevOps文化模式的团队,开发人员和运维人员协同工作
6、安全性:在快速迭代的同时保证应用的质量
为什么要使用DevOps
DevOps强调团队协作、相互协助、持续发展,然而传统的模式是开发人员只顾开发程序,运维只负责基础环境管理和代码部署及监控等,其并不是为了
一个共同的目标而共同实现最终的目地,而DevOps则实现团队作战,即无论是开发、运维还是测试,都为了最终的代码发布、持续部署和业务稳定而付出
各自的努力,从而实现产品设计、开发、测试和部署的良性循环,实现产品的最终持续交付
CI/CD简介
什么是持续集成
持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并且相互不影响工作
什么是持续部署
是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以及实现交付高质量的产品,持续部署到某种程度上代表了一个开发团队的更新迭代速率
代码部署流程
1、测试环境:环境代码和 数据库是独立的
2、预发布环境:一般是连接的生产环境的数据库,用来检测 最新的代码 是否正常
3、生产环境
预发布就是 测试环境 和 生产环境的一个过渡,用来提前检测 最新代码 经测试环境后,上到正式环境是否异常,所以 一般 预发布环境测试时,测试组都会比较小心,尽量避免脏数据
CI/CD流程
Git简介
Git:由linux之父林纳斯托瓦兹在2005年开发的一个分布式持续集成工具,设计之初就具备了以下优点:
1、可靠性:数据的上传和下载必须是安全的、一致的,所有行为都要进行验证,数据的变更通过不同的版本进行逻辑隔离
2、分布式:linus Torvalds认为之前的集中式版本控制系统性能太差,于是git的代码恢复不依赖于中央服务器,而是每个开发电脑都是一个本地仓库,可用于代码提交与回滚
3、高效:Git基于分布式的功能实现代码的快速提交与秒级回滚
Gitlab:基于git的一个私有代码仓库
GitLab安装
安装环境要求
https://docs.gitlab.com/ce/install/requirements.html
国内下载地址
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/
安装依赖环境
[root@xiaomao ~]# yum install -y curl policycoreutils-python openssh-server
安装postfix
[root@xiaomao ~]# sudo yum install -y postfix
开始安装
[root@xiaomao ~]# rpm -ivh gitlab-ce-11.10.8-ce.0.el7.x86_64.rpm
安装成功
配置GitLab站点Url
GitLab默认的配置文件路径是/etc/gitlab/gitlab.rb
默认的站点Url配置项是:
external_url 'http://gitlab.example.com'
[root@xiaomao ~]# vim /etc/gitlab/gitlab.rb
[root@xiaomao ~]# grep "^[a-Z]" /etc/gitlab/gitlab