微信号:beyondcent

介绍:博云(BoCloud)专注于借助云计算等新型技术帮助客户CIO和信息技术部门实现从技术支撑型向核心业务决策型战略转变.在基于虚拟化的弹性基础设施平台搭建、基于容器的敏捷业务平台和多维度的信息系统运维与决策平...

程序猿成长日记 | 独自修炼“六脉神剑”--Devops篇

2017-01-12 18:10 王雪晴



作者:王雪晴 BoCloud博云 测试工程师


欲练此剑,

挥手自练,

如若不挥,

早晚吃亏。


武林前辈练就此功以克西毒蛤蟆功,小辈独自修行Devops六脉神剑,只为在互联网圈求得一席之地,时而克制开发人员的挖坑综合征。


此处的Devops六脉神剑就是鄙人自己理解的、我们自行研发一个具备物理部署和容器发布应用的双模式平台。从管理配置底层基础设施、到环境配置隔离、经过应用版本管理达到应用正常发布,到一体化监控整个系统正常运作。

 

第一脉

混合模式核心经


此乃神剑之核心思想,打通开发工程师任督二脉,有一个清晰轮廓,方便规划时间,制定开发工作计划。


此脉起于物理机群,出属于一线运维,向上出发,到达我们的双模式应用管理平台管理领域。


总体架构如下图所示:


在容器版本的基础之上基于Docker Build-Ship-Run的核心模型实现向物理部署模型映射,实现容器和物理的双模式管理。

 

第二脉

基础设施管理经


从核心经出发,了解底层物理主机的配置,做好环境准备工作。从双模式出发,将容器和物理部署通过分支实现过滤选择。如下图整体流向处理。容器模式则选择容器方式处理;物理方式即为物理部署模式。


第三脉

环境隔离经


无规矩不成方圆,环境隔离可以理解为不同生产之间都需要一个安静的空间自己运转。此脉可以引用博云公众号中“环境定义下,软件的生命在哪里?”来解释,一种独立物理(逻辑)分离。此处不是懒得写明,可以理解为另一种方式的宣传,这就是团队,从文章宣传做起。


第四脉

应用版本管理经


定义完物理和容器仓库之后,在应用版本管理时也按照两种部署方式来管理应用版本。不同模式下,使用不同的仓库来进行版本发布。

 


第五脉

应用发布经


前面基础部分做完之后,需要为应用做准备,这也是底层准备的终极目标——应用发布万无一失。混合模式下,如何将应用发布做到准确无误呢?依旧采用示意图的方式来做个说明。

 


正如上图所示,容器和物理模式下的发布要根据各自特色走不同的发布路线。


第六脉

一体化监管经


前五脉打通之后,对整个系统进行监控这就是第六脉的精髓所在——zabbix。


Zabbix是一款规则驱动,具有数据过滤能力的开源企业级监控方案,此处主要围绕数据采集优化和Zabbix性能优化配置展开。

 


优化配置操作系统和Zabbix参数可支撑不少于百台物理节点、万条级别监测项。其中,数据合并自主研发,采用Agent主动向Zabbix Server发送机制。



Zabbix可监控物理机、容器、分布式系统和应用。其中,对容器、分布式系统(Redis、Zookeeper、ActiveMQ)监控采用数据合并优化策略。平台web界面监测显示通过后台获取zabbix监控数据来显示给用户。


下图为Zabbix监控整体结构图:

                         

到此,六脉神剑讲解完毕,从最初的功能完成,通过测试,到最后和客户沟通,检验是否达到了DevOps的设计目标,才能算是完成“六脉神剑”的一轮修炼,而经过一轮轮的修炼,才能练就一套能够经受住实战考验的神功。


此六脉只是个人疏浅的理解,还请各位IT大神赐教。另外,尤其感谢吴恒师兄的指导。

 


精选

推荐



私有云 ● 混合云 ● 自动化运维

关于BoCloud博云

BoCloud 博云,为企业级客户提供针对互联网化、大数据业务应用、去IOE 化(X86 服务器规模化应用)的底层云化架构和智能云运维系统,运用最新容器技术协助企业完成IT 系统云架构的实施和运维, 帮助企业客户降低成本、提升效率、简化运维、提高系统可靠性和安全性。凭借对客户业务流程和应用的深刻理解,以及先进技术产品的持续研发, BoCloud 博云以创新云技术支撑企业核心业务,促进企业IT 系统的不断进化。

www.bocloud.com.cn


 
博云 更多文章 译文 | 用容器可以对DevOps做什么? 开加力:BoCloud博云入选微软加速器 将为行业客户提供更高效的服务 开加力:BoCloud博云入选微软加速器 将为行业客户提供更高效的服务 聊聊代码 | 容器时代的分布式日志架构 聊聊代码 | 容器时代的分布式日志架构
猜您喜欢 Vuejs 2.0源码解析之渲染篇 用Golang写一个搜索引擎(0x05) Mysql 事务的隔离级别 这些安全会议你参加过吗? 【持续集成】使用 Jenkinsfile 设计直观的 Pipeline