本帖最后由 adminlily 于 2018-11-18 15:50 编辑
* l% R7 ]/ N7 G: u3 ~' P2 n) H. S6 x* w
3 p& c) K; ~3 r: j
武林前辈练就此功以克西毒蛤蟆功,小辈独自修行ITILxf.com" target="_blank" class="relatedlink">DevOps六脉神剑,只为在互联网圈求得一席之地,时而克制开发人员的挖坑综合征。 3 ?8 V/ w) J$ E, h5 {" [% y6 }
& f& {3 |" O$ r+ x. t# I
此处的Devops六脉神剑就是鄙人自己理解的、我们自行研发一个具备物理部署和容器发布应用的双模式平台。从管理配置底层基础设施、到环境配置隔离、经过应用版本管理达到应用正常发布,到一体化监控整个系统正常运作。 ; ]$ f* A4 [. j) C2 B8 s
( H8 w% ?; Z" u9 K9 o4 y" j
第一脉
5 C" J5 G' H/ g0 n* C
+ t* z# z! ~* t. Z9 r& |7 z
混合模式核心经
$ @; y0 ^& C# D
) }* G% [5 ^" E* D9 D7 o
此乃神剑之核心思想,打通开发工程师任督二脉,有一个清晰轮廓,方便规划时间,制定开发工作计划。
2 l* r/ ^# {+ S- A
5 b( f% Z1 m( l% O. Q& k' f4 K% L
此脉起于物理机群,出属于一线运维,向上出发,到达我们的双模式应用管理平台管理领域。 4 @& ?3 D4 `, F. V4 o! }
3 W1 h/ i" v/ T" b
总体架构如下图所示:
- A; y, M! H% o. ~/ O
1 M1 `+ e% Q# _4 d% M # R% w% J% U2 m! p
. h+ _3 ~# d' s. |: b
在容器版本的基础之上基于Docker Build-Ship-Run的核心模型实现向物理部署模型映射,实现容器和物理的双模式管理。
% s0 o; |1 q# k' \5 F) e
6 s8 f" F% I" F) [% q
第二脉
; w6 j& }% k: `/ _
. p ^+ q3 b( C( M- T8 ~/ ?4 z基础设施管理经 3 {& l+ x, e1 ?/ U
. B9 \9 f+ u3 \' W
从核心经出发,了解底层物理主机的配置,做好环境准备工作。从双模式出发,将容器和物理部署通过分支实现过滤选择。如下图整体流向处理。容器模式则选择容器方式处理;物理方式即为物理部署模式。 % `# \8 E5 [+ N& X2 N% z
& H* n/ C2 _6 ]; D " C3 [4 l# k) _1 j. ?- [
' ^' }% N$ ?0 e+ g7 |! p4 h. y0 q
$ I" F5 O* K$ J( T- {第三脉
2 z$ M( k" P: s* ?0 z* `+ k8 l/ i
9 R3 J; P4 ~* w( Y环境隔离经
% { `9 G5 i# u+ ?) d* `2 y8 u8 i/ G9 M1 [0 [8 J
无规矩不成方圆,环境隔离可以理解为不同生产之间都需要一个安静的空间自己运转。此脉可以引用博云公众号中“环境定义下,软件的生命在哪里?”来解释,一种独立物理(逻辑)分离。此处不是懒得写明,可以理解为另一种方式的宣传,这就是团队,从文章宣传做起。
1 [ m/ V8 Z6 V5 Y! x
' R R& m# P6 g2 O9 M: g: O" v0 A
第四脉
1 W; [/ {* ~1 ]( ~- Z3 n
8 U. j7 B/ ?% S" E% @! h应用版本管理经 - k. S; O- {3 t" ^
" G( X2 j6 [' k# z; z1 I
定义完物理和容器仓库之后,在应用版本管理时也按照两种部署方式来管理应用版本。不同模式下,使用不同的仓库来进行版本发布。
2 n$ n+ Z2 a! |; K% f: }+ d$ h w ^* b: O- d- L
* L1 o6 ~4 k9 j* o# l
1 A7 P- L8 H$ q2 t
第五脉 $ T0 @) k2 @5 F" m0 n
C) n! r, [2 f
应用发布经
/ L8 K2 M7 b+ g7 W/ r- T" c( E
6 k$ N! p' f6 `, p
前面基础部分做完之后,需要为应用做准备,这也是底层准备的终极目标——应用发布万无一失。混合模式下,如何将应用发布做到准确无误呢?依旧采用示意图的方式来做个说明。
# T3 x% y+ r4 A5 _0 y" L
) R3 b! G* p# d4 o$ |
3 B+ C5 W" b6 }- e
0 a8 Z+ p+ g7 O) V
" V3 g9 I0 ?3 [) A
正如上图所示,容器和物理模式下的发布要根据各自特色走不同的发布路线。
3 H, t$ Z9 W, H1 Z/ p1 {' T
& H! {1 y+ m( I- G; B% n8 @! ?
第六脉
# K7 l# K! Q: g! j
" Q* G; k9 B* f一体化监管经 ) A) H) J# q6 u2 D5 L, n/ o3 b: O
* z1 H, ^# [2 X7 o B+ ?) q) p
前五脉打通之后,对整个系统进行监控这就是第六脉的精髓所在——zabbix。 1 x- d) N% S1 d1 P: @/ x
2 i- c7 H/ D9 t# ^
Zabbix是一款规则驱动,具有数据过滤能力的开源企业级监控方案,此处主要围绕数据采集优化和Zabbix性能优化配置展开。
* T7 A7 Q( u# y- |2 F% o
6 i4 ?5 a) s* K5 C4 e+ A
% |6 s' x8 a$ Z% W- h4 g
3 h" J+ E& o7 |$ y/ u L
优化配置操作系统和Zabbix参数可支撑不少于百台物理节点、万条级别监测项。其中,数据合并自主研发,采用Agent主动向Zabbix Server发送机制。 6 c6 t; V9 R' ~- F
& h" ?( h& m. b+ p" P: P' I' R
1 N( a+ Q: Z5 Y3 @; q& R# G0 y2 K7 X3 ]% [2 Q
3 `+ V9 s: T& F
Zabbix可监控物理机、容器、分布式系统和应用。其中,对容器、分布式系统(Redis、Zookeeper、ActiveMQ)监控采用数据合并优化策略。平台web界面监测显示通过后台获取zabbix监控数据来显示给用户。 / H3 n3 a) B& H6 C! [
" M& w) `# D6 k9 o+ v
下图为Zabbix监控整体结构图: 2 M2 e% i9 {4 I4 _( f0 x, H. x
8 x2 D+ w/ E% y; z
+ f `" `/ ?+ a 到此,六脉神剑讲解完毕,从最初的功能完成,通过测试,到最后和客户沟通,检验是否达到了DevOps的设计目标,才能算是完成“六脉神剑”的一轮修炼,而经过一轮轮的修炼,才能练就一套能够经受住实战考验的神功。
' y2 P4 P+ C* I' C4 }! D
0 k$ B) P% [1 {) c2 ^/ V6 h
此六脉只是个人疏浅的理解,还请各位IT大神赐教。另外,尤其感谢吴恒师兄的指导。
6 Y( Z% s) b3 j( b3 X8 E
1 o6 c. _$ Y- C1 R$ K2 E
原创: 王雪晴 1 Z' p( G$ v, L
|