写点什么

QCon 伦敦演讲:Gilt 转向微服务架构的挑战

  • 2015-03-29
  • 本文字数:1240 字

    阅读完需:约 4 分钟

在 Gilt 公司尝试使用微服务技术三年以来,我们可以看到一些明显的优点,体现在团队自主权、由API 定义边界、将复杂的问题分解为较小的问题等方面。不过,在工具的支持、集成环境和监控方面,还存在着诸多挑战。 Yoni Goldberg QCon 伦敦大会上的一场演讲中,为听众介绍了他们在转向微服务架构时所遇到的各种挑战。

Gilt 是一家做限时抢购业务的公司,Goldberg 是该公司的首席软件工程师,他为我们介绍道:Gilt 是一家于2007 年成立的典型的创业公司,刚开始时使用的技术是 Ruby on Rails 。仅两年之后,他们就需要在系统中运行几千个 ruby 进程,并且数据库也开始显得不胜负荷。

从那时起,他们转为使用 JVM 技术,并且开始了一个 Goldberg 称之为宏观 / 微观服务的时代,他的观点是,宏观服务更多地是针对某个特定的领域,例如销售或支付。而微服务是指将宏观服务分解为较小的服务。他们也为这些服务引入了专用的数据存储系统。他们首先为核心业务创建了 10 个宏观服务,这些服务目前还在应用中,同时也是其它所有服务所依赖的核心。使用这些核心宏观服务的是一系列的支持性服务,例如用户偏好服务,这些服务不是必不可少的,也不会由于这些支持性服务的故障使你的整个业务停顿下来。在这些服务之上,还有另一套服务,负责为所有用户创建视图。这套新的架构解决了 99% 的可伸缩性方面的问题,但也带来了一些其它问题。开发者在使用新服务的过程感到系统缺乏整体性,而且在代码方面缺乏清晰的自主权。其它的问题还包括部署、以及过长的整合周期。

为了克服这些问题,他们增加了微服务的数量,并且为团队授予了更大的权力,让他们不仅负责开发服务,同时也负责测试、部署和监控。这也同时澄清了自主权,基本上一个团队会负责一个服务。对于 Goldberg 来说,这套方案的最大优势在于每个微服务的范围减小了,因此变得更易于理解与探究。同时,他们通过将网页分解为较小的片段,生成了许多小型的 web 应用程序。(LOSA)

这些微服务之间产生了大量的内部依赖。在 Goldberg 看来,开发者所面对的最大挑战就是,对于每个变更,都需要确保不会因此造成其它服务的故障。如果某个变更是破坏性的,那就需要在多个小步骤中完成整个过程,在变更完成后,所有的客户端必须转为使用新的终结点,之后才可以删除旧的终结点。他们所经历过的一个问题是,许多 web 应用程序都在进行相同的方法调用,例如创建某个用户档案。为了克服这一点,他们创建了一种 Goldberg 称之为中间微服务的东西,这个服务知道要创建用户档案需要进行什么样的方法调用,web 应用可以根据这一信息进行正确的调用。

Goldberg 所提到的最后一项挑战是数据的归属。由于他们转向了每个微服务一个数据库的方式,因此生产了大量的小型数据库。他们需要找到某种方式,以管理每个数据库的 schema。他们选择了在某个关系型数据库中进行管理,并且使用了版本系统以跟踪它们的变更。

可以在这里下载到Goldberg 的演讲幻灯片,演讲的视频将在今后几个月之内发布到 InfoQ 网站上。

查看英文原文 A Modern Microservices Architecture

2015-03-29 08:462784
用户头像

发布了 428 篇内容, 共 197.6 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

瀚元科技:利用A-OPS 智能运维助力边缘服务器运维效率提升30%

openEuler

Linux 运维 操作系统 openEuler 边缘

Java 命令行参数解析方式探索(四):Spark & Flink

冰心的小屋

Java spark 命令行 command Parameter

暑期参加百度网盘AI大赛,夺万元现金、获大厂内推!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

区块链服务网络的顶层设计与应用实践

BSN研习社

[硬核技术] 时序数据预测算法研究:Prophet

乘云数字DataBuff

如何开发一对一视频源码

山东布谷网络科技

App 源代码

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

西柚子

如何基于 Apache Doris 构建新一代日志分析平台

SelectDB

数据库 大数据 数据分析 Doris

和鲸 ModelWhale 与海光适配认证,“国产 CPU +开发平台” 双轮驱动信创生态建设及 AI 产业应用

ModelWhale

cpu 数字化转型 信创 数据科学 信创产业

信创产业未来发展如何

小魏写代码

信创 信创产业

【好文推荐】敏捷绩效考核如何做?

ShineScrum

UPS设备在物流机房中的应用浅析 | 京东物流技术团队

京东科技开发者

机房管理 企业号 7 月 PK 榜 UPS

并发编程-CompletableFuture解析 | 京东物流技术团队

京东科技开发者

并发编程 CompletableFuture JDK1.8 企业号 7 月 PK 榜

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

BlockChain先知

软件测试/测试开发丨Python 内置库 sys 学习笔记分享

测试人

Python 程序员 软件测试

【实践篇】推荐算法PaaS化探索与实践 | 京东云技术团队

京东科技开发者

PaaS 推荐算法 PaaS平台化能力 企业号 7 月 PK 榜

DWS轻量化更新黑科技:宽表加工优化

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

AI算力爆发,新职业出现,你发现了吗?

小魏写代码

人工智能 AI算力

河北幸福消费金融基于 Apache Doris 构建实时数仓,查询提速 400 倍!

SelectDB

数据库 大数据 数据分析 后端 Doris

HDC.Together2023 HarmonyOS学生公开课议程抢先看!

HarmonyOS开发者

HarmonyOS

聊聊测试当下的求职困境

老张

软件测试 求职面试

数据库优化器设计穿越探索之旅

阿里技术

数据库 架构

【落下帷幕】2023 中国大学生计算机设计大赛大数据应用大类国赛评审

ModelWhale

云计算 数据分析 在线编程 数据科学竞赛 中国大学生计算机设计大赛

ChatGPT下程序员应该何去何从?

小魏写代码

ChatGPT 新手用ChatGPT

2023 数字生态发展大会,和鲸 ModelWhale 入选中国信通院“铸基计划”《高质量数字化转型产品及服务全景图》

ModelWhale

数字化转型 中国信通院 铸基计划

防范地质灾害,北斗用芯监测

江湖老铁

浅析 TiSpark v3.x 新变化

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

【7.21-7.28】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

QCon伦敦演讲:Gilt转向微服务架构的挑战_架构_Jan Stenberg_InfoQ精选文章