文章目录

  • 一、DevOps介绍
  • 二、Code阶段工具
    • 2.1 Git安装
    • 2.2 GitLab安装
  • 三、Build阶段工具
  • 四、Operate阶段工具
    • 4.1 Docker安装
    • 4.2 Docker-Compose安装

一、DevOps介绍

软件开发最开始是由两个团队组成:

  • 开发计划由开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。
  • 运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。

这看似两个目标不同的团队需要协同完成一个软件的开发。在开发团队指定好计划并完成coding后,需要提供到运维团队。运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。

这时开发团队需要经常等待运维团队的反馈。这无疑延长了事件并推迟了整个软件开发的周期。

会有一种方式,在开发团队等待的时候,让开发团队转移到下一个项目中。等待运维团队为之前的代码提供反馈。可是这样就意味着一个完整的项目需要一个更长的周期才可以开发出最终代码。

基于现在的互联网现状,更推崇敏捷式开发,这样就导致项目的迭代速度更快,但是由于开发团队与运维团队的沟通问题,会导致新版本上线的时间成本很高。这又违背的敏捷式开发的最初的目的。

那么 如果让开发团队和运维团队整合到成一个团队,协同应对一套软件呢?这就被称为DevOps。

DevOps,字面意思是Development &Operations的缩写,也就是开发&运维。虽然字面意思只涉及到了开发团队和运维团队,其实QA测试团队也是参与其中的。

DevOps

这表明DevOps是一个不断提高效率并且持续不断工作的过程。

DevOps的方式可以让公司能够更快地应对更新和市场发展变化,开发可以快速交付,部署也更加稳定。核心就在于简化Dev和Ops团队之间的流程,使整体软件开发过程更快速。

整体的软件开发流程包括:

  • PLAN:开发团队根据客户的目标制定开发计划
  • CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中。
  • BUILD:编码完成后,需要将代码构建并且运行。
  • TEST:成功构建项目后,需要测试代码是否存在BUG或错误。
  • DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备好部署并且交给运维团队。
  • OPERATE:运维团队将代码部署到生产环境中。
  • MONITOR:项目部署上线后,需要持续的监控产品。
  • INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心,即持续集成、持续部署。

为了保证整体流程可以高效的完成,各个阶段都有比较常见的工具,如下图:

软件开发过程&涉及工具

最终可以给DevOps下一个定义:DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

自动化的工具协作和沟通来完成软件的生命周期管理。

二、Code阶段工具

code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。

2.1 Git安装

https://git-scm.com/

2.2 GitLab安装

单独准备服务器,采用Docker安装

查看GitLab镜像:

docker search gitlab

拉取GitLab镜像:

docker pull gitlab/gitlab-ce

准备docker-compose.yml文件:

version: '3.1'
services:gitlab:image: 'gitlab/gitlab-ce:latest'container_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.11.11:8929'gitlab_rails['gitlab_shell_ssh_port'] = 2224ports:- '8929:8929'- '2224:2224'volumes:- './config:/etc/gitlab'- './logs:/var/log/gitlab'- './data:/var/opt/gitlab'

启动容器:

docker-compose up -d

访问GitLab首页:

首页

查看root用户初始密码:

docker exec -it gitlab cat /etc/gitlab/initial_root_password
初始密码

登录root用户:

登录成功后跳转页面

第一次登录后需要修改密码:

修改密码

搞定后,即可像Gitee、GitHub一样使用。

三、Build阶段工具

构建Java项目的工具一般有两种选择,一个是Maven,一个是Gradle。这里我们选择Maven作为项目的编译工具。

Maven的安装与配置流程:

  1. 安装Maven
  2. 配置环境变量
  3. 配置本地仓库
  4. 配置镜像
  5. 配置JDK

具体的安装配置流程后面会做一个详细的讲解,这里必须确保配置好Maven仓库私服以及JDK编译版本。

四、Operate阶段工具

部署过程,会采用Docker进行部署,暂时只安装Docker即可,后续还需安装Kubenetes。

4.1 Docker安装

准备测试环境&生产环境

下载Docker依赖组件:

yum -y install yum-utils device-mapper-persistent-data lvm2

设置下载Docker的镜像源为阿里云:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker服务:

yum -y install docker-ce

安装成功后,启动Docker并设置开机自启:

# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker

测试安装成功:

docker version
效果

4.2 Docker-Compose安装

下载Docker/Compose:https://github.com/docker/compose

将下载好的docker-compose-Linux-x86_64文件移动到Linux操作系统:……

设置docker-compose-Linux-x86_64文件权限,并移动到$PATH目录中:

# 设置文件权限
chmod a+x docker-compose-Linux-x86_64
# 移动到/usr/bin目录下,并重命名为docker-compose
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose

测试安装成功:

docker-compose version
效果

【云原生|DevOps】DevOps工具精讲相关推荐

  1. 云原生思想 — 云原生的 DevOps

    目录 文章目录 目录 DevOps DevOps 平台 云原生的 DevOps 特征 DevOps DevOps 是一组用于促进开发.测试以及运维人员之间协作的过程.方法和系统的统称. 开发:研发部门 ...

  2. 一键部署dns服务_OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

    新书速递 查尔斯·狄更斯的<双城记>中有句耳熟能详的名言:"这是一个最好的时代,也是一个最坏的时代."作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句 ...

  3. 基于eBPF的云原生可观测性开源工具Kindling之Kindling-agent 性能测试评估

    背景 Kindling-agent是基于eBPF的云原生可观测性开源工具Kindling中采集端的组件,能够通过采集和分析内核事件,获取运行于同一宿主机上的其他服务的业务.网络等指标.其工作模式是在主 ...

  4. 国内首发,这款 Serverless 云原生一体化部署工具正式开源!

    12 月 19 日,腾讯在 2020 Techo Park 开发者大会上集中发布了三大开源项目.其中,云开发 CloudBase Framework 作为腾讯开源的国内首个基于 Serverless ...

  5. 云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇(文末赠书)

    作者:丁源 RadonDB 测试负责人 负责 RadonDB 云数据库.容器化数据库的质量性能测试,迭代验证.对包括云数据库以及容器化数据库性能和高可用方案有深入研究. 继<混沌工程工具 Cha ...

  6. 云原生—虚拟化管理工具virsh(三)

    目录 virsh简介 工作模式 交互模式 非交互模式 连接方式 本地URI 远程URI 登入测试 常用命令 1.域管理的命令 2.宿主机和Hypervisor的管理命令 3.网络的管理命令 4.存储池 ...

  7. KubeCon 2020 演讲集锦|《阿里巴巴云原生技术与实践 13 讲》开放下载

    2020 年 7 月 30 日至 8 月 1 日,由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 Cloud Native + Open S ...

  8. 【云原生系列】第四讲:Knative 之 Eventing

    目录 序言 1.基础介绍 2.组成要素 2.1 事件源(Event Source) 2.2 事件处理(Flow) 2.3 事件消费者(Event Consumer) 3.架构模式 3.1 Source ...

  9. 网易开源云原生日志收集工具 Loggie 入门指南

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! Loggie 是网易和中国工商银行联合发起的一个基于 Golang 的轻量级.高性能.云原生日志采集 Agent和 ...

最新文章

  1. 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?...
  2. 1.Java(初级)编程教程(油管 thenewboston)学习笔记get user input
  3. Qt的drawText不换行解决
  4. 单一登录云:SAML和OpenId
  5. 信号捕捉(signal、sigaction)
  6. python二分法查找数字_Python——二分法查找
  7. 修改文件名与删除文件
  8. 管理:权力是用来完成责任的
  9. 嵌入式软件开发是什么?
  10. 超五类和六类网线的区别—Vecloud
  11. bulma css 中文,Bulma CSS – 开始
  12. excel组合汇总_Excel汇总20151102
  13. 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
  14. 饿了么建生鲜开放平台 买菜业务要推至全国500城
  15. 【报告分享】2020吃货人群图鉴-Mob研究院(附下载)
  16. python freshman day1
  17. android中gravity什么意思,详解介绍android:layout_gravity 和 android:gravity 之间的区别
  18. 【论文笔记】FC-EF,FC-Siam-conc,FC-Siam-diff:用于变化检测的全卷积孪生神经网络
  19. 信用卡当天还款当天刷有风险吗?-民兴
  20. wordpress微信精品高清壁纸下载小程序源码

热门文章

  1. 程序员 怎么增值_什么是“免费增值”应用程序,它们如何工作?
  2. 英文字体免费下载:10款最新的高品质字体
  3. ijk切换协议出问题
  4. iphone4能做什么,你需要iphone吗…
  5. 中国早期概率论与数理统计学研究达到世界先进水平的杰出学者许宝騄(P.L.Hsu, 1910-1970)
  6. 写给新人的Python书籍推荐(必读)
  7. Wince6.0 s3c6410触摸屏驱动分析
  8. 今日睡眠质量记录70
  9. css3贝塞尔曲线_CSS3动画–使用贝塞尔曲线创建具有弹跳效果的扇出
  10. Asp.Net C# - AES加密、解密