利用Docker构建基于DevOps的全自动CI

1,为什么说是下一代核心技术

从互联网的多次变革说起,早期的C/S架构,到后来的B/S架构,一直到现在最普遍的M/S架构,他们的背后都是技术不断的优化改进,以适应、促进IT技术的发展整。体而言在过去10年间,互联网技术可以说是以手工制造的方式为主,类似于传统销售、设计、制作、然后打包销售。每个环节都需要大量的人员来操作,也需要不断有人接班学习来延续对应的环节。而未来10年将会是以流水线的方式为主 ,其主要原因是互联网云计算技术的高速发展及可持续快速交付的业务需求。其对应的DevOps方式将完美契合。开发运维一体化确切的说是一种方式,而这种方式需要全新的技术来支撑才行执行下去,我们将之称为下一代核心技术。

2,传统技术与下一代核心技术区别

传统的技术主要问题是高耦合,其耦合存在于服务器、硬件存储、内外网之间(网络通讯),存在于应用程序之间、代码之间、业务模块之间。虽然经过近几年的发展,在不断的去耦合化大趋势下,已经尽可能的将这几大块之间进行低耦合处理,但是由于传统技术的限制,无法从根本上解决这些问题。比如最常用的程序连接数据库。传统的方式多将数据库连接字符串写到程序的配置文件里,导致其连接数据库IP不能变,多节点部署程序需要一一手动修改数据库连接字符串,非常麻烦。随着技术的发展优化,有经验的研发人员会将数据库连接放到JNDI里面(如Tomcat),由中间件管理,这样将程序和数据库之间进行解耦。这也是传统技术架构常用的做法。但是对于多节点的部署变更,需要改变多个节点Tomcat的JNDI配置,还是存在易用性、可维护性、可靠性方面的问题。当然也有高级别的中间件来集中解决这些问题,如WebSphere的集群管理。但这都属于为了解决问题而解决问题,受限于传统技术,无法从根因上解决各个组件、软硬件之间的耦合问题。而且需要商业付费,非常的贵。

下一代核心技术,受益于云计算、微服务、容器服务的高速发展,采取DevOps的模式进行整合,实现硬件服务器、存储、网络、软件程序、代码之间的全低耦合甚至0耦合,这将大大提高交付能力,降低运维成本,实现互联网产品的快速迭代。

3,容器服务的Rancher选型

我之前的文章已经对微服务做了基本分析,本章节及后续章节会陆续对云计算的分析应用和容器服务的分析应用做逐一的讲解。微服务主要是对软件代码层面进行解耦,云计算主要从硬件支撑层进行解耦,而容器服务主要从应用层面进行解耦。容器服务的飞速发展,主要是Docker的巨大功劳,将传统的虚拟化技术带到一个全新的层面。Docker的优势在此不做多讲,主要是其原生的管理基于命令行,对于简单应用较为方便。但是在DevOps模式下就需要有一整套的规范接口来统一管理整个流水线。对于Docker容器的管理系统目前比较流行的有几个: K8S、Rancher、Shipyard等,其他还有一些不是很有名的在此不多做列举了,大家可以自行研究学习。
经过对比试用选型,在容器管理考虑到易用性包括跨主机通讯的管理、DevOps的支持力度等方面,Rancher以各方面优先胜出。Rancher目前在开源社区非常火爆,支持众多的编排引擎,当前最新版本为 1.6.12 ,大家可以下载试用:https://github.com/rancher/rancher。
(二)Rancher的应用及优点简介

1,环境选择

安装Rancher环境,一定要在干净的linux主机上进行,避免出现因配置导致的莫名其妙的问题。服务器操作系统建议CentOS7.4(内核3.10以上),低于这个版本的系统 如7.3 7.2会报一个小bug,不过倒不影响使用,再低内核的版本就不要用了,很多都不支持。
生产环境建议采用阿里云 Rancher(1C 2G以上的配置,若要保证运行稳定,建议配置至少2C 4G),宿主机(1C 2G以上的配置)、弹性公网EIP+ 专有网络测试,私有环境建议采用Rancher(1C 2G以上的配置),宿主机(1C 2G以上的配置)、 虚拟机(Hyper-V、VMware)+ 同一内网可通讯Rancher 1.6.12 ,调度引擎选择Cattle。Rancher2.0调度引擎默认使用K8s,当前还是测试版,官方不建议在生产环境使用。

2,环境配置
3,安装Docker
root执行
curl https://releases.rancher.com/install-docker/17.06.sh | sh

配置加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://f5bw1ll2.mirror.aliyuncs.com"]
}
EOF

重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

4,安装Rancher管理端
登陆服务器Mgr01
运行完后,就可以通过IP:8888来访问Rancher的管理台了,接下来我们就可以点击 “添加主机” 来添加各个宿主机了

加入宿主机
依次登陆各个宿主机,执行5里面的脚本即可。

如果需要把mgr01加为宿主机,那么需要在4里面填写mgr01和ws之间互通的内网IP地址,建议不要添加mgr为宿主机,方便后续做mgr集群高可用。
#rancher#

评论1

  • vim /etc/sysctl.conf                    #命令1(编辑配置文件)
    net.ipv4.ip_forward=1 # 设置转发
    sysctl –p

    2017-12-16 12:36:59 回复
评论请先登录

最近热帖

  1. PPS代理节点池 69633
  2. PPS代理节点池② 26695
  3. 订阅池记录 8013
  4. 基于 Harbor 搭建 Docker 私有镜像仓库 6463
  5. V2ray免费账号 2356
  6. PPS代理节点池③ 2195
  7. 全栈开发笔记 1665
  8. 百度的无刷新搜索之PJAX 1572
  9. css之rem布局(rem.js) 1491
  10. docker swarm 集群高可用 1308

近期热议

  1. GITHUB项目 55
  2. PPS代理节点池 50
  3. WEB代理地址 43
  4. 全栈开发笔记 42
  5. ROBOT机器人之路 31
  6. C++回归之路 19
  7. OCR识别探索 16
  8. PPS代理节点池② 14
  9. DB到ES同步之路 11
  10. 接码平台地址 9