请选择 进入手机版 | 继续访问电脑版

IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 442|回复: 0

DevOps 与技术雷达技巧

[复制链接]
来自- 广东广州

参加活动:0

组织活动:0

发表于 2018-8-23 11:35:29 | 显示全部楼层 |阅读模式 来自- 广东广州

: u& D# E/ `6 g& q9 _( q6 e% }% r+ B
1.png
9 s$ N3 L4 I( p2 v  i- a
你有没有经常发愁?这新技术看着挺好,能不能开始用呢?
" q5 x! {, \4 N* B+ W% w+ u: B; i
你有没有经常迷茫?那么多学技术,我该学什么?
5 p8 M4 }9 ^& g+ Q; {$ N8 c+ _) Z
IT领域的技术先锋 ThoughtWorks,每年会发布两次技术雷达,为我们研究新技术提供了专家级的参考。短短21页,却蕴藏了非常多的技术点,小编特意摘取了其中和 DevOps 相关的技术,和大家分享!

- t; ^3 N  ]9 E5 g5 ~$ r1 A9 L: C* i1 V  B5 @5 ]
1.png

! }+ l3 |  L9 ^# h9 a
8 `( ~3 L' b' ^7 k" ^- J5 \关于 Kubernetes
2 x9 F/ M; A. c  {6 G3 l/ l+ n# V9 b
Kubernetes 现在是当仁不让的首选容器编排平台,在技术雷达中,也将其标记为采用。社区也发展出很多 Kubernetes 周边工具。

4 ?' Z5 i, W. i, @' h
诸如 GKE,Kops 和 Sonobuoy 这些雷达条目提供了托管平台服务和工具,以改善采用和运行 Kubernetes 的整体体验。 事实上,它具备用一个调度单元来运行多个容器的能力, 可以让服务啮合(service mesh)和能够支持端点安全的 sidecar 得以实现。
- u# z6 A* b! N, r" A
SONOBUOY 是一个以非破坏性的方式在任何 Kubernetes 群集上运行端到端“合规性测试”的诊断工具。正在尝试使用 Sonobouy 作为“基础设施即代码”构建流水线的一部分,并对 Kubernetes 安装进行持续监控,以验证整 个集群的行为和健康状况。
  F, y( |& \: M8 e1 K- y; O7 B6 |

; \- Y4 d3 h/ [3 p0 U关于架构微前端(Micro frontends): r+ U% `0 ^0 J3 p. I* r8 r
/ N. n% V# z9 [6 Q- _. k6 D: Z

) l( h0 g0 E8 ]% ^% M5 x5 Q
% I  e" I9 u  B' u& W
微服务架构可以让团队裁剪出独立部署的交付物以及可维护的服务。不幸的是,我们还看到许多团队在后端服务之上创建了前端单体,一个单一且庞大和杂乱无绪的浏览器应用。

5 Y: d1 P/ l/ ~- g* j: |
1.png
( i! z: q  _) W3 q5 H0 Y. l& O
- A( a9 }" r" C! R7 ?# j
小编认为就像上图这样,后端服务完成拆分,前端依然是单体的。所以技术雷达提出了微前端的方法,在这种方法中,Web应用程序被分解为多个特性, 每个特性都由不同的前后端团队拥有。这确保每个特性都 独立于其他特性开发,测试和部署。这样可以使用多种技术 来重新组合特性有时候是页面,有时候是组件最终整合成一个内聚的用户体验。

2 l  M; ]1 p3 W* N! u& X/ K+ n1 O3 ^" `5 a- r) s
无服务器架构(Serverless architecture)
7 L8 b% f- C6 o/ `) f6 r. y1 r' k8 C( O* b& [/ o
5 k) u& w- J* x9 l
* ?- W9 Q7 T  `1 b( C8 c1 H* j
无服务器架构(一般更多在谈论函数即服务 Function as a Service)在云的不断发展下,越来越普遍,部署无服务器函数好不疑问能够减少大量传统方式特有的工作,比如涉及服务器和操作系统配置和编排的工作量。技术雷达也建议:做好回退至容器化或实例化部署的准备。

( p" s* d3 I: ?) J5 L8 k# ~! ^* H; n( V9 B" ^0 P  U
服务啮合(Service Mesh)
" S9 V# y1 `" ]9 U' S
( Q1 K1 G  r! {4 D- [4 w

8 t- v6 o8 F% V
. h0 n1 A6 Y! T
服务啮合(Service mesh)在服务发现、安全、 跟踪、监控与故障处理方面提供了一致性,且 不需要像 API 网关或 ESB 这样的共享资产。
& e& S- ?7 Y( U) b3 g
服务啮合的一个典型实现包含轻量级反向代理进程,这些进程 可能伴随每个服务进程一起被部署在单独的容器中。反向代理会和服务注册表、身份提供者和日志聚合器等进行通 信。通过该代理的共享实现(而非共享的运行时实例),我 们可以获得服务的互操作性和可观测性。
* K& |$ C' L! x
Service Mesh 现在也被炒的很火,目前有 linkerd 和 Istio 等开源项目,值得大家关注。
, j& L4 ^' k8 I4 ?4 q+ M/ v
3 @# t: l/ o& x6 _0 E' ]  A
1.png
$ B* G5 x/ x8 x

1 H7 F5 n2 A( N8 E+ n! c" q8 q- \/ W1 R7 n, F# j% J
持续交付为基础设施即代码使用流水线
8 W8 y7 R: K4 n5 a% Y
: E+ j. e$ G# N
该技术倡导对基础设施使用流水线进行自动化验证,基于基础设施即代码实践(如:Ansible 的 Playbook、Docker 的 Dockerfile),对环境进行自动化的创建和测试。
; X7 w% \7 R. }$ k' H3 R

& V( M* K. `, q! f8 }TDD 开发容器脚本
+ p1 _4 U9 h9 }5 x& _4 L8 m( [$ D  B. D4 ]2 z
容器脚本作为代码的一部分,理应使用测试驱动开发。借助 ServerSpec 和 Goss 等框架 ,可以为独立的或编排的容器定义预期的功能,并得到快速反馈。

+ k! o* w4 v. k( }. A8 [( |' e2 M
. y2 R7 u$ E* R" v压力测试
( D) Z& a& ^0 V; `# T! P9 n  ]7 B' T' c  i  I
小编推荐技术雷达中的两款压力测试工具 Gatling 和 Locust,在 DevOps 时代社区的端到端持续交付流水线2.0中,也使用了 Locust 进行压力测试。
/ d+ h& j. y* {% L2 A! \- Z

( a# M  _7 a2 d0 F* @2 j. N0 i2 G9 T6 O
ASSERTJ-SWAGGER 验证你的 API 更新
# R+ I& ]$ q4 r3 Y, Y8 x- C- ^: p9 _: j; `; X: P
ASSERTJ-SWAGGER 是一个 AssertJ 工具库,能够用来验 证 API 的实现是否符合其契约规格。当 API 端点的实现发生了更改但未更新其 Swagger 规格,或未能发布更新后的文 档时,我们的团队就能通过使用 assertj-swagger 来捕获这些问题。

& ^# L3 B+ E4 ]4 y1 u" X, z
点评:在流水线中应用该工具,可以有效避免API文档与代码不一致的情况
3 H; N2 u1 o) f* E

$ g! k8 m9 q/ `0 i5 R) |端到端测试分析工具
) o! T! x, K" e0 p3 N
  f  d% n0 `$ j0 m
CYPRESS 能帮助开发人员轻易地构建端到端自动化测试,并且把测试的步骤录制在一个 MP4 文件里。这使得开发者可 以通过查看测试视频来修复测试,而不是在 headless 模式下去重现问题。
, D' B& @5 a: g
% |% A" m, ~$ k4 F+ r
Javascript 的静态类型检查工具$ h, r4 N) p' X4 b- P: N8 X
7 C& b% G* k! P4 [; j
FLOW 是一个针对 Javascript 的静态类型检查工具,它可以为整个代码库逐步增加类型检查。技术雷达建议把 Flow 添加到持续集成部署流水线中,并从最关注的代码开始做静态类型检查。
% h) w3 E" I- z( Q* K( A
5 G# M8 F. N  t8 u" r+ m+ }( [
iOS 应用自动发布0 a+ u, p% b4 j' X
9 P6 M* d4 T4 n( @& z  s  _, x! ^1 v
fastlane 是一款强大的应用自动化发布管理工具。技术雷达中认为可以采用,小编认为值得推荐给大家。
( \( z, C/ U  R- ]7 K2 p6 V

6 {0 C- I% p; o
1.png

& A/ l4 q! s! ~
9 E# G( O! g/ E越来越多的 CI/CD SaaS服务5 U) ?7 |9 M% ~6 w5 y
' u5 v' i) Y8 \1 H' t
在本次技术雷达图中,出现了多款 CI/CD 的 SaaS 产品,越来越多的团队也在采用类似云服务。这些工具大多支持构建任务的工作流,并具备扇入(fan-in)和扇出 (fan-out)流模式和手动触发模式,且支持移动开发。也允许开发者在本地运行流水线。技术雷达图中指出团队需要“低摩擦(low- friction)和易于搭建的构建与部署流水线”。

" }! ?2 |9 F: j0 h1 o! e
( L! q1 |5 [0 L( Z运维技术基于算法的 IT 运维, \7 z7 Z: O5 t1 s

# @% @$ X/ t# [( z* ~* ]8 \3 F
小编理解技术雷达中基于算法的IT运维就像 AIOps,在 GOPS(全球运维大会)上海站上还有专门的分享
3 c  j1 R! X* g
* r* w+ o; [+ w) o- F, k4 T# m/ J: m
文章链接如下:0 ~1 K# R: A9 I% A0 A

* B& O0 |! K: W; b. P
( ]- m$ w# p$ z4 n2 G+ Z* z0 I$ ]9 _& C4 p* B6 `+ q5 C* `
5 p3 o, m- f" p* B6 `! W
Prometheus 你值得拥有' j0 S) X$ v) k4 S8 a" A  g

) G' ~+ A3 v. w  t
在DevOps时代社区的流水线2.0中,我们也是采用 Prometheus 作为容器的监控工具,采用 Grafana 配置可视化数据。
  c# h/ I1 v" \4 h# k& O9 j9 P0 @
3 i. g* w* T- g5 @! P
多云策略" H6 T' r2 ]$ m' ^+ C. X5 k
" B8 R/ p. \) R& P# J
云厂商很多,云产品更多,在这种环境下,不是与一个提供商“全面”合作, 客户正在以最佳组合的方式,将不同类型的工作负载交由不同的供应商。这并不等同于致力于供应商间可移植性的“跨云策略”,后者价格昂贵且会导致迎合大众的想法。多云策略 则专注于使用每个云能提供的最好的服务。
% Y* x2 R% |) Q, z% V  ?
点评:这是很有意思的一点,客户不在是只取一瓢。沃尔玛在实践 DevOps 过程中研发了 OneOps 是为了在多云之间的切换,不受绑架,看来后续应该还会出现更强大的多云管理工具,帮助企业管理多家云厂商的服务。

1 U! {% g% }) b
1 d  y% V, l9 K% ]$ V- L其他技术轻量级架构决策记录9 u4 f  \3 b. [; O# H: ^" t$ R

% E; Z, I9 J- Y. W) E5 v- T) V
在软件开发中,大家一定遇到过这种情况:别人的代码不敢改。这背后的原因一般分为:不知道这段代码背后的决策原因,为什么写成这样;没有自动化测试保障,担心改了之后影响其他地方。轻量级架构决策记录是一种试图解决类似问题的方法。轻量级架构决策记录是一种用于捕获重要的架构决策及其上下文和结果 的技术。我们建议将这些详细信息进行版本化,而不是wiki 或网站,这样所记录的内容就可以和代码保持同步。
! f& a& o7 b4 q. \) q

' C+ Q# C% S! Q8 i6 Z将产品管理思维应用于内部平台
" W/ l* F2 ]; _
: W; a. H8 t% `+ U, y4 ?
一句话:“不要以为是给内部用的,就不把它当产品。”

  I$ `0 n' V+ i8 |0 e' t这意味着要与内部消费者(开发人员)建立共情,并在设计上彼此协作。平台的产品经理要建立路线图,确保平台为业务交付价值,为开发者改善体验。
% A! I6 I% w# \4 M: @$ a2 c

! I: X, r9 H  A/ `( ?; ~  ~处理新功能与遗留系统的模式
& ~0 i3 A% T5 [8 E  ~$ R' W' A, [4 e7 ^5 a7 k" C9 t3 o
Eric Evans 的自治气泡模式,这种方法为新应用程序的开发工作创建一个全新的环境,以避免遗留系统的纠缠。它并不仅仅使用了反腐层,这个新的气泡上下文还能完全控制其支持数据,然后通过异步的方式与遗留系统保持一致。要保护气泡的边界以及保持边界两侧的一致性需要花费一些工作,但是由此产生的自治性和 开发摩擦力的减少是迈向现代化未来架构勇敢的第一步。
8 _* P5 b3 [2 e* ~) j9 g, z
点评:在实施 DevOps 过程中,大量的系统还面临着需要解耦合的难题,在面对遗留系统时,如何兼顾新功能开发,自治气泡模式也许是值得探究的方式。
; h0 H  t- E/ d% a& R, L

0 d! H0 T& R( a' `5 T让你的系统变得更加坚固
2 H+ o) t: F; q/ a6 Z( O9 P; g! @# n
+ n9 \, A6 D2 p4 H1 a+ C) r4 q
Netflix 是全球 IT 公司中实践 DevOps 的先驱者,Netflix 有一项独创的实践与工具,叫 Chaos Monkey,即随机终止生产系统中的运行实例,并对结果进行度量,从而帮助验证系统在运行时对生产中断的应对能力。这在传统的软件研发与管理模式下,是不可想象的事情。如今,基于 Chaos Monkey 发展出了混沌工程,在生产环境的分布式系统中运行这些试验, 可以帮助我们建立系统在动荡环境下依旧能够按预期工作的信心。
! A- p  r8 |3 }( w
! I5 J6 Z2 M: e$ `; V8 k
3RS 安全技术4 r( K0 z, w4 s: d* y
, E0 z$ r  |+ g" G/ N5 D9 L# I8 o
3Rs 企业安全:轮换、修复、重建,利用基础设施自动化和持续交付来消除攻击机会。当发现问题后,在非常短的时间内打上补丁,就和一次正常的通过流水线上线发布一样。
% s) M- g4 V: F5 A$ y7 H
最后我摘出最喜欢的一句话送给大家:
7 c' x  k! X2 ^$ q6 r( I
仅仅提升薪酬水平是不够的,让聪明的开发者一起在最前沿的开源软件上共事才能够持续激励他们,这是一个放之四海而皆准的通则。
0 r- X2 w/ T" u3 `! B: H9 l
原创:龙井
& C* P- H* `) [) w6 t1 t; X
5 ^: e! |* Y, K& u
* g" I! n& p, R) W5 c1 B0 J; `: u
$ ]" v2 u  G  t

本版积分规则

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1|网站地图

Baidu

GMT+8, 2019-8-17 21:11 , Processed in 0.224478 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表