《基于微服务架构的企业核心系统改造实践.pdf》由会员分享,可在线阅读,更多相关《基于微服务架构的企业核心系统改造实践.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基 于 微 服 务 架 构,改 造 企 业 核 心 系 统 之 实 践1.背景与挑战随 着 公 司 国 际 化 战 略 的 推 行 以 及 本 土 业 务 的 高 速 发 展,后 台 支 撑 系 统 已 经 不 堪 重 负。在 吞 吐量、稳 定 性 以 及 可 扩 展 性 上 都 无 法 满 足 日 益 增 长 的 业 务 需 求。对 于 每 1 0 万 元 额 度 的 合 同,从 销 售 团 队 准 备 材 料、与 客 户 签 单、递 交 给 合 同 部 门,再 到 合 同 生 效 大 概 需 要 3.5 人 天。随着 业 务 量 的 快 速 增 长,签 订 合 同 的 成 本 急 剧 增
2、加。合 同 管 理 系 统 是 后 台 支 撑 系 统 中 重 要 的 一 部 分。当 前 的 合 同 系 统 是 5 年 前 使 用.N E T 基 于S A G E C R M 二 次 开 发 的 产 品。一 方 面,系 统 架 构 过 于 陈 旧,性 能、可 靠 性 无 法 满 足 现 有的 需 求。另 一 方 面,功 能 繁 杂,结 构 混 乱,定 制 的 代 码 与 S A G E C R M 系 统 耦 合 度 极 高。由于 是 遗 留 系 统,熟 悉 该 代 码 的 人 早 已 离 职 多 时,新 团 队 对 其 望 而 却 步,只 能 做 些 周 边 的 修 补工 作。同 时,
3、还 要 承 担 着 边 补 测 试,边 整 理 逻 辑 的 工 作。相 关 厂 商 内 容一路 走来技术 人的创 业故事未来 物联网中 智能硬 件的角 色人工 智能的技 术版图全球 架构师峰 会深圳 站,0 7 月 1 5-1 6 日,华南地区 最大规 模的技 术盛会!相 关 赞 助 商A r c h S u m m i t 深 圳 2 0 1 6 将 于 7 月 1 5-1 6 在 华 侨 城 洲 际 大 酒 店 举 行,3 月 2 0 日 前 立 减 2 0 4 0元!在 无 法 中 断 业 务 处 理 的 情 况 下,为 了 解 决 当 前 面 临 的 问 题,团 队 制 定 了 如 下
4、 的 策 略:1).在 现 有 合 同 管 理 系 统 的 外 围,构 建 功 能 服 务 接 口,将 系 统 核 心 的 功 能 分 离 出 来。2).利 用 这 些 功 能 服 务 接 口 作 为 代 理,解 耦 原 合 同 系 统 与 其 调 用 者 之 间 的 依 赖;3).通 过 不 断 构 建 功 能 服 务 接 口,逐 渐 将 原 有 系 统 分 解 成 多 个 独 立 的 服 务。4).摒 弃 原 有 的 合 同 管 理 系 统,使 用 全 新 构 建 的(微)服 务 接 口 替 代。2.什么是微服务多 年 来,我 们 一 直 在 技 术 的 浪 潮 中 不 断 乘 风 破 浪
5、,扬 帆 奋 进,寻 找 更 好 的 方 式 构 建 I T 系 统。微 服 务 架 构(M i c r o S e r v i c e A r c h i t e c t)是 近 一 段 时 间 在 软 件 体 系 架 构 领 域 里 出 现 的 一 个 新 名词。它 通 过 将 功 能 分 解 到 多 个 独 立 的 服 务,以 实 现 对 解 决 方 案 或 者 复 杂 系 统 的 解 耦。微 服 务 的 诞 生 并 非 偶 然:领 域 驱 动 设 计 指 导 我 们 如 何 分 析 并 模 型 化 复 杂 的 业 务;敏 捷 方 法 论帮 助 我 们 消 除 浪 费,快 速 反 馈;持
6、 续 交 付 促 使 我 们 构 建 更 快、更 可 靠、更 频 繁 的 软 件 部 署 和交 付 能 力;虚 拟 化 和 基 础 设 施 自 动 化(I n f r a s t r u c t u r e A s C o d e)则 帮 助 我 们 简 化 环 境 的 创 建、安 装;D e v O p s 文 化 的 流 行 以 及 特 性 团 队 的 出 现,使 得 小 团 队 更 加 全 功 能 化。这 些 都 是 推 动微 服 务 诞 生 的 重 要 因 素。实 际 上,微 服 务 本 身 并 没 有 一 个 严 格 的 定 义。不 过 从 业 界 的 讨 论 来 看,微 服 务 通
7、 常 有 如 下 几个 特 征:小,且 专 注 于 做 一 件 事 情每 个 服 务 都 是 很 小 的 应 用,至 于 有 多 小,是 一 个 非 常 有 趣 的 话 题。有 人 喜 欢 1 0 0 行 以 内,有 人 赞 成 1 0 0 0 行 以 内。数 字 并 不 是 最 重 要 的。仁 者 见 仁,智 者 见 智,只 要 团 队 觉 得 合 适 就好。只 关 注 一 个 业 务 功 能,这 一 点 和 我 们 平 常 谈 论 的 面 向 对 象 原 则 中 的”单 一 职 责 原 则”类 似,每 个 服 务 只 做 一 件 事 情,并 且 把 它 做 好。运 行 在 独 立 的 进
8、程 中每 个 服 务 都 运 行 在 一 个 独 立 的 操 作 系 统 进 程 中,这 意 味 着 不 同 的 服 务 能 被 部 署 到 不 同 的 主 机上。轻 量 级 的 通 信 机 制服 务 和 服 务 之 间 通 过 轻 量 级 的 机 制 实 现 彼 此 间 的 通 信。所 谓 轻 量 级 通 信 机 制,通 常 指 基 于 语言 无 关、平 台 无 关 的 这 类 协 议,例 如 X M L、J S O N,而 不 是 传 统 我 们 熟 知 的 J a v a R M I 或 者.N e tR e m o t i n g 等。松 耦 合不 需 要 改 变 依 赖,只 更 改
9、当 前 服 务 本 身,就 可 以 独 立 部 署。这 意 味 着 该 服 务 和 其 他 服 务 之 间在 部 署 和 运 行 上 呈 现 相 互 独 立 的 状 态。综 上 所 述,微 服 务 架 构 采 用 多 个 服 务 间 互 相 协 作 的 方 式 构 建 传 统 应 用。每 个 服 务 独 立 运 行 在不 同 的 进 程 中,服 务 与 服 务 之 间 通 过 轻 量 的 通 讯 机 制 交 互,并 且 每 个 服 务 可 以 通 过 自 动 化 部署 方 式 独 立 部 署。3.微服务的优势相 比 传 统 的 单 块 架 构 系 统(m o n o l i t h i c),
10、微 服 务 在 如 下 诸 多 方 面 有 着 显 著 的 优 势:异 构 性问 题 有 其 具 体 性,解 决 方 案 也 应 有 其 针 对 性。用 最 适 合 的 技 术 方 案 去 解 决 具 体 的 问 题,往 往会 事 半 功 倍。传 统 的 单 块 架 构 系 统 倾 向 采 用 统 一 的 技 术 平 台 或 方 案 来 解 决 所 有 问 题。而 微 服务 的 异 构 性,可 以 针 对 不 同 的 业 务 特 征 选 择 不 同 的 技 术 方 案,有 针 对 性 的 解 决 具 体 的 业 务 问题。对 于 单 块 架 构 的 系 统,初 始 的 技 术 选 型 严 重
11、限 制 将 来 采 用 不 同 语 言 或 框 架 的 能 力。如 果 想 尝试 新 的 编 程 语 言 或 者 框 架,没 有 完 备 的 功 能 测 试 集,很 难 平 滑 的 完 成 替 换,而 且 系 统 规 模 越大,风 险 越 高。基 于 微 服 务 架 构,使 我 们 更 容 易 在 遗 留 系 统 上 尝 试 新 的 技 术 或 解 决 方 案。譬如 说,可 以 先 挑 选 风 险 最 小 的 服 务 作 为 尝 试,快 速 得 到 反 馈 后 再 决 定 是 否 试 用 于 其 他 服 务。这 也 意 味 着,即 便 对 一 项 新 技 术 的 尝 试 失 败,也 可 以 抛
12、 弃 这 个 方 案,并 不 会 对 整 个 产 品 带 来风 险。该 图 引 用 自 M a r t i n F o w l e r 的 M i c r o s e r v i c e s 一 文独 立 测 试 与 部 署单 块 架 构 系 统 运 行 在 一 个 进 程 中,因 此 系 统 中 任 何 程 序 的 改 变,都 需 要 对 整 个 系 统 重 新 测 试并 部 署。而 对 于 微 服 务 架 构 而 言,不 同 服 务 之 间 的 打 包、测 试 或 者 部 署 等,与 其 它 服 务 都是 完 全 独 立 的。对 某 个 服 务 所 做 的 改 动,只 需 要 关 注 该
13、服 务 本 身。从 这 个 角 度 来 说,使 用 微服 务 后,代 码 修 改、测 试、打 包 以 及 部 署 的 成 本 和 风 险 都 比 单 块 架 构 系 统 降 低 很 多。按 需 伸 缩单 块 架 构 系 统 由 于 单 进 程 的 局 限 性,水 平 扩 展 时 只 能 基 于 整 个 系 统 进 行 扩 展,无 法 针 对 某 一个 功 能 模 块 按 需 扩 展。而 服 务 架 构 则 可 以 完 美 地 解 决 伸 缩 性 的 扩 展 问 题。系 统 可 以 根 据 需要,实 施 细 粒 度 的 自 由 扩 展。错 误 隔 离 性微 服 务 架 构 同 时 也 能 提 升
14、 故 障 的 隔 离 性。例 如,如 果 某 个 服 务 的 内 存 泄 露,只 会 影 响 自 己,其 他 服 务 能 够 继 续 正 常 地 工 作。与 之 形 成 对 比 的 是,单 块 架 构 中 如 果 有 一 个 不 合 格 的 组 件 发生 异 常,有 可 能 会 拖 垮 整 个 系 统。团 队 全 功 能 化康 威 定 律(C o n w a y s l a w)指 出:一 个 组 织 的 设 计 成 果,其 结 构 往 往 对 应 于 这 个 组 织 中 的沟 通 结 构(o r g a n i z a t i o n s w h i c h d e s i g n s y
15、s t e m s a r e c o n s t r a i n e d t o p r o d u c e d e s i g n s w h i c ha r e c o p i e s o f t h e c o m m u n i c a t i o n s t r u c t u r e s o f t h e s e o r g a n i z a t i o n s)。传 统 的 开 发 模 式 在分 工 时 往 往 以 技 术 为 单 位,比 如 U I 团 队、服 务 端 团 队 和 数 据 库 团 队,这 样 的 分 工 可 能 会 导致 任 何 功 能 上 的 改 变
16、都 需 要 跨 团 队 沟 通 和 协 调。而 微 服 务 则 倡 导 围 绕 服 务 来 分 工,团 队 需 要具 备 服 务 设 计、开 发、测 试 到 部 署 所 需 的 所 有 技 能。4.微服务快速开发实践随 着 团 队 对 业 务 的 理 解 加 深 和 对 微 服 务 实 践 的 尝 试,数 个 微 服 务 程 序 已 经 成 功 构 建 出 来。不过,问 题 同 时 也 出 现 了:对 于 这 些 不 同 的 微 服 务 程 序 而 言,虽 然 具 体 实 现 的 代 码 细 节 不 同,但 其 结 构、开 发 方 式、持 续 集 成 环 境、测 试 策 略、部 署 机 制 以
17、 及 监 控 和 告 警 等,都 有 着 类 似的 实 现 方 式。那 么 如 何 满 足 D R Y 原 则 并 消 除 浪 费 呢?带 着 这 个 问 题,经 过 团 队 的 努 力,S t e n c i l 诞 生 了。S t e n c i l 是 一 个 帮 助 快 速 构 建 R u b y 微 服 务 应 用 的 开 发 框 架,主 要 包 括 四 部分:S t e n c i l 模 板、代 码 生 成 工 具,持 续 集 成 模 板 以 及 一 键 部 署 工 具。S t e n c i l 模 板S t e n c i l 模 板 是 一 个 独 立 的 R u b y
18、代 码 工 程 库,主 要 包 括 代 码 模 板 以 及 一 组 配 置 文 件 模 板。代 码 模 板 使 用 W e b m a c h i n e 作 为 W e b 框 架,R E S T f u l 和 J S O N 构 建 服 务 之 间 的 通 信 方 式,R S p e c 作 为 测 试 框 架。同 时,代 码 模 板 还 定 义 了 一 组 R a k e 任 务,譬 如 运 行 测 试,查 看 测试 报 告,将 当 前 的 微 服 务 生 成 R P M 包,使 用 K o j i 给 R P M 包 打 标 签 等。除 此 之 外,该 模 板 也 提 供 了 一 组
19、 通 用 的 U R L,帮 助 使 用 者 查 看 微 服 务 的 当 前 版 本、配 置 信息 以 及 检 测 该 微 服 务 程 序 是 否 健 康 运 行 等。r e l:i n d e x,p a t h:/d i a g n o s t i c/,r e l:v e r s i o n,p a t h:/d i a g n o s t i c/v e r s i o n,r e l:c o n f i g,p a t h:/d i a g n o s t i c/c o n f i g,r e l:h o s t n a m e,p a t h:/d i a g n o s t i
20、 c/h o s t n a m e,r e l:h e a r t b e a t,p a t h:/d i a g n o s t i c/s t a t u s/h e a r t b e a t,r e l:n a g i o s,p a t h:/d i a g n o s t i c/s t a t u s/n a g i o s 配 置 文 件 模 板 主 要 包 括 N e w R e l i c 配 置,P a s s e n g e r 配 置、N a g i o s 配 置、A p a c h e 配 置 以 及S p l u n k 配 置。通 过 定 义 这 些 配
21、置 文 件 模 板,当 把 新 的 微 服 务 程 序 部 署 到 验 收 环 境 或 者 产 品环 境 时,我 们 立 刻 就 可 以 使 用 N a g i o s、N e w R e l i c 以 及 S p l u n k 等 第 三 方 服 务 提 供 的 功 能,帮 助 我 们 有 效 的 监 控 微 服 务,并 在 超 过 初 始 阈 值 时 获 得 告 警。代 码 生 成 工 具借 助 S t e n c i l 代 码 生 成 工 具,我 们 能 在 很 短 时 间 内 就 构 建 出 一 个 可 以 立 即 运 行 的 微 服 务 应 用程 序。随 着 系 统 越 来 越
22、 复 杂,微 服 务 程 序 的 不 断 增 多,S t e n c i l 模 板 和 代 码 生 成 工 具 帮 助 我们 大 大 简 化 了 创 建 微 服 务 的 流 程,让 开 发 人 员 更 关 注 如 何 实 现 业 务 逻 辑 并 快 速 验 证。C r e a t e a p r o j e c t f r o m t h e s t e n c i l t e m p l a t e(v e r s i o n 0.1.2 7)-n a m e,-n:N e w p r o j e c t n a m e.e g.t h i n g s-a n d-s t u f f-g
23、i t-o w n e r,-g:G i t o w n e r(d e f a u l t:w h i c h t e a m o r o w n e r)-d a t a b a s e,-d:I n c l u d e d a t a b a s e c o n n e c t i o n c o d e-t r i g g e r e d-t a s k,-t:I n c l u d e t r i g g e r e d t a s k c o d e-p r o v i d e r,-p:I s i t a s e r v i c e p r o v i d e r?(o t h
24、e r s e r v i c e s u s e t h i s s e r v i c e)-c o n s u m e r,-c:I s i t a s e r v i c e c o n s u m e r?(i t u s e s o t h e r s e r v i c e s)-b r a n c h,-b:S p e c i f y a p a r t i c u l a r b r a n c h o f S t e n c i l-f a c e-p a l m,-f:O v e r i d e n a m e v a l i d a t i o n-h e l p,-h
25、:S h o w t h i s m e s s a g e如 上 代 码 所 示,通 过 指 定 不 同 参 数,我 们 能 创 建 具 有 数 据 库 访 问 能 力 的 微 服 务 程 序,或 者 是包 含 异 步 队 列 处 理 的 微 服 务 程 序。同 时,我 们 也 可 以 标 记 该 服 务 是 数 据 消 费 者 还 是 数 据 生 产者,能 帮 助 我 们 理 解 多 个 微 服 务 之 间 的 联 系。持 续 集 成 模 板基 于 持 续 集 成 服 务 器 B a m b o o,团 队 创 建 了 针 对 S t e n c i l 的 持 续 集 成 模 板 工 程
26、,并 定 义 了 三个 主 要 阶 段:打 包:运 行 单 元 测 试,集 成 测 试,等 待 测 试 通 过 后 生 成 R P M 包。发 布:将 R P M 包 发 布 到 K o j i 服 务 器 上,并 打 上 相 应 的 T a g。然 后 使 用 P a c k e r 在 亚马 逊 A W S 云 环 境 中 创 建 A M I,建 好 的 A M I 上 已 经 安 装 了 当 前 微 服 务 程 序 的 最 新 R P M包。部 署:基 于 指 定 版 本 的 A M I,将 应 用 快 速 部 署 到 验 收 环 境 或 者 产 品 环 境 上。利 用 持 续 集 成
27、模 板 工 程,团 队 仅 需 花 费 很 少 的 时 间,就 可 以 针 对 新 建 的 微 应 用 程 序,在B a m b o o 上 快 速 定 义 其 对 应 的 持 续 集 成 环 境。一 键 部 署 工 具所 有 的 微 服 务 程 序 都 部 署 并 运 行 在 亚 马 逊 A W S 云 环 境 上。同 时,我 们 使 用 A s g a r d 对 A W S云 环 境 中 的 资 源 进 行 创 建、部 署 和 管 理。A s g a r d 是 一 套 功 能 强 大 的 基 于 W e b 的 A W S 云部 署 和 管 理 工 具,由 N e t f l i x
28、采 用 G r o o v y o n G r a i l s 开 发,其 主 要 优 点 有:基 于 B/S 的 A W S 部 署 及 管 理 工 具,使 用 户 能 通 过 浏 览 器 直 接 访 问 A W S 云 资 源,无需 设 置 S e c r e t K e y 和 A c c e s s K e y;定 义 了 A p p l i c a t i o n 以 及 C l u s t e r 等 逻 辑 概 念,更 清 晰、有 效 地 描 述 了 应 用 程 序 在A W S 云 环 境 中 对 应 的 部 署 拓 扑 结 构。在 对 应 用 的 部 署 操 作 中,集 成
29、了 A W S E l a s t i c L o a d B a l a n c e r、A W S E C 2 以 及 A W SA u t o s c a l i n g G r o u p,并 将 这 些 资 源 自 动 关 联 起 来。提 供 R E S T f u l 接 口,能 够 方 便 地 与 其 他 系 统 集 成。简 洁 易 用 的 用 户 接 口,提 供 可 视 化 的 方 式 完 成 一 键 部 署 以 及 流 量 切 换。由 于 A s g a r d 对 R E S T f u l 的 良 好 支 持,团 队 实 现 了 一 套 基 于 A s g a r d 的
30、 命 令 行 部 署 工 具,只需 如 下 一 条 命 令,提 供 应 用 程 序 的 名 称 以 及 版 本 号,就 可 自 动 完 成 资 源 的 创 建、部 署、流 量切 换、删 除 旧 的 应 用 等 操 作。a s g a r d-d e p l o y A p p N a m e A p p V e r s i o n 同 时,基 于 命 令 行 的 部 署 工 具,也 可 以 很 容 易 的 将 自 动 化 部 署 集 成 到 B a m b o o 持 续 集 成 环境。通 过 使 用 微 服 务 框 架 S t e n c i l,大 大 缩 短 了 团 队 开 发 微 服
31、务 的 周 期。同 时,基 于 S t e n c i l,我们 定 义 了 一 套 团 队 内 部 的 开 发 流 程,帮 助 团 队 的 每 一 位 成 员 理 解 并 快 速 构 建 微 服 务。微服务架构下的新系统经 过 5 个 月 的 努 力,我 们 重 新 构 建 了 合 同 管 理 系 统,将 之 前 的 产 品、价 格、销 售 人 员、合同 签 署、合 同 审 查 以 及 P D F 生 成 都 定 义 成 了 独 立 的 服 务 接 口。相 比 之 前 大 而 全、难 以 维 护的 合 同 管 理 系 统 而 言,新 的 系 统 由 不 同 功 能 的 微 服 务 组 成,每
32、 个 微 服 务 程 序 只 关 注 单 一 的 功能。每 个 微 服 务 应 用 都 有 相 关 的 负 责 人,通 过 使 用 Pa g e D u t y 建 立 消 息 通 知 机 制。每 当 有监 控 出 现 告 警 的 时 候,责 任 人 能 立 即 收 到 消 息 并 快 速 做 出 响 应。由 于 微 服 务 具 有 高 内 聚,低 耦 合 的 特 点,每 个 应 用 都 是 一 个 独 立 的 个 体。当 出 现 问 题 时,很容 易 定 位 问 题 并 解 决 问 题,大 大 缩 短 了 修 复 缺 陷 的 周 期。另 外,通 过 使 用 不 同 功 能 的 微 服 务接
33、口 提 供 数 据,用 户 接 口(U I)部 分 变 成 了 一 个 非 常 简 洁、轻 量 级 的 应 用,更 关 注 如 何 渲 染 页面 以 及 表 单 提 交 等 交 互 功 能。总结通 过 使 用 微 服 务 架 构,在 不 影 响 现 有 业 务 运 转 的 情 况 下,我 们 有 效 的 将 遗 留 的 大 系 统 逐 渐 分解 成 不 同 功 能 的 微 服 务 接 口。同 时,通 过 St e n c i l 微 服 务 开 发 框 架,我 们 能 够 快 速 地 构 建 不同 功 能 的 微 服 务 接 口,并 能 方 便 地 将 其 部 署 到 验 收 环 境 或 者 产 品 环 境。最 后,得 益 于 微 服 务架 构 的 灵 活 性 以 及 扩 展 性,使 得 我 们 能 够 快 速 构 建 低 耦 合、易 扩 展、易 伸 缩 性 的 应 用 系 统。