DevOps

DevOps是development和operations的组合,也就是开发和运维的简写,主要用于提高企业高速交付应用程序和服务的能力。

DevOPs是针对企业中的研发/运维/测试人员的工作理念,强调整个组织的合作以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付。

DevOPs平台:

  • 代码托管:gitlab/svn
  • 项目管理:jira/禅道/Teambition
  • 运维平台:腾讯蓝鲸/自研平台
  • 持续交付:jenkins+gitlab

DevOps优势:

  • 速度:应用版本快速的迭代更新,以更好地适应不断变化的市场需求
  • 快速交付:更快地将应用交付至生产环境
  • 可靠性:保证应用交付的结果是成功的
  • 规模:可以在大规模环境下可靠地交付应用
  • 增强合作:建立适应DevOPs文化模式的团队,开发人员和运维、测试人员协同工作
  • 安全性:在快速迭代的同时保证应用的质量

CI/CD 

CI:continuous integration持续集成,多名开发者在开发不同功能代码的过程当中,可以频繁地将代码行合并到一起并且互相不影响工作

CD:continuous deployment持续部署,是基于某种工具或平台实现代码自动化构建、测试和部署到线上环境以实现交付高质量的产品

持续集成——git(分布式代码管理工具)

git优点:

  • 可靠性,数据的上传和下载必须是安全的,一致的,所有行为都要进行验证,数据的变更通过不同的版本进行逻辑隔离
  • 分布式,git的代码恢复不依赖于中央服务器,而是每个开发电脑都是一个本地仓库,可以用于代码提交和回滚(svn提交和回滚都需要连接中央服务器,如果通过公网访问将会很慢)
  • 高效:git基于分布式的功能实现代码的快速提交与秒级回滚

github:基于git的公有代码仓库

gitlab:基于git的私有代码仓库

git安装

1.选择规格大的虚机,1c2g会卡死,可以看官网的规格建议。官网在国外,下载慢(700多M),选择清华源下载:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/(ce为社区版,ee为企业版)选择对应的系统和版本

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.7.3-ce.0.el7.x86_64.rpm yum -y local install gitlab-ce-13.7.3-ce.0.el7.x86_64.rpm

2.安装成功后会出现:

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=13-7

3.编辑/etc/gitlab/gitlab.rb配置gitlab访问url,可以配置域名或者IP(external_url 'http://xxxxx'),同时可以配置发邮件的邮箱。比如开发需要修改密码的时候能发邮件给他点链接自助修改密码,或者一些变动需要邮件通知到管理员的,可以在这里配置一下邮件服务器

# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.server"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "smtp user"
# gitlab_rails['smtp_password'] = "smtp password"
# gitlab_rails['smtp_domain'] = "example.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false

4.执行gitlab-ctl reconfigure,完成后,gitlab-ctl status看一下

常用命令(参考https://git-scm.com/book/en/v2)

  1. gitlab-ctl reconfigure 无论修改了gitlab什么配置,均需要执行一下
  2. gitlab-ctl stop/start/status/restart 停止/开启/查看状态/重启
  3. gitlab-ctl tail xx 查看xx组件日志
  4. git clone 

下载一个项目和它的整个代码历史

  1. git config --list 

显示当前的Git配置

  1. git config --global username/useremail 

设置提交代码时的用户信息

  1. git add file/dir 

添加指定文件/目录到暂存区

  1. git commit -m [message] 

提交暂存区到仓库区

  1. git branch 

列出所有本地分支

  1. git branch branch-name 

新建一个分支,但依然停留在当前分支

  1. git checkout -b branch-name 

新建一个分支,并切换到该分支

  1. git merge branch-name 

合并指定分支到当前分支

  1. git log 

显示当前分支的版本历史

  1. git pull url branch 

取回远程仓库的变化,并与本地分支合并

  1. git push url branch 

上传本地指定分支到远程仓库

  1. git reset HEAD branch/filename指定退回某一次提交的版本()

 git reset 三种模式区别:

--hard 撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交

--soft 会在重置时,保留工作目录和暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

devops平台架构图 devops平台是什么_暂存区