AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:462633
用户头像

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

关注

评论

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

Neural Filters神经滤镜插件如何安装?PS神经滤镜插件安装教程

互联网搬砖工作者

面试何惧调优!腾讯技术官私藏的性能优化方案手册,原理实战齐全

Java 性能优化 性能调优

华为云尚海峰:三个“全面”,助力央国企深度用云

科技热闻

linux 自定义段 c

linux大本营

Linux C语言 系统调用

window c++ select 参数列表介绍

linux大本营

TCP socket select I/O 多路复用

SBOM喊话医疗器械网络安全:别慌,我罩你! Part Ⅰ

安势信息

网络安全 SBOM 医疗器械 SBOM应用

算法题每日一练:连续子数组的最大和

知心宝贝

数据结构 算法 前端 后端 三周年连更

linux unlikely函数

linux大本营

Linux unlikely函数

15年了,我们到底怎样才能用好 Serverless

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

为什么我们的微服务中需要网关?

Java 微服务 网关

最佳实践|如何写出简单高效的 Flink SQL?

Apache Flink

大数据 flink 实时计算

华为云联合多家单位正式开源云原生多沙箱容器运行时Kuasar

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

【获奖案例巡展】信创先锋之星——江西金发基于分布式数据库的互联网金融业务系统

星环科技

分布式数据库

Photoshop崩溃怎么办无法打开 Photoshop

互联网搬砖工作者

AI系统伦理道德风险之透明度验证

陈磊@Criss

详解Redisson分布式限流的实现原理

Java 分布式限流 redisson

c4d R2023 让您的三维动画设计更简单~~

真大的脸盆

Mac Mac 软件 三维动画设计 动画设计工具

CutMix&Mixup详解与代码实战

华为云开发者联盟

人工智能 华为云 数据增强 华为云开发者联盟 企业号 4 月 PK 榜

从领先实践看港口行业资产管理数智化变革

用友BIP

堪称一绝!阿里技术人都用的Nginx手册,应用到架构齐全

Java nginx

关于C语言的系统相关的桌面程序编程书籍推荐吗

linux大本营

C语言

软件测试/测试开发丨常见面试题与流程篇(附答案)

测试人

软件测试 面试题 自动化测试 测试开发

私有云裸机物理服务器角色规划

穿过生命散发芬芳

私有云 三周年连更

Flink 2.0 启航,开启全新篇章

Apache Flink

大数据 flink 实时计算

千行百业的共同选择,华为云为何成为央国企首选云?

科技热闻

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