QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

GOTO Berlin: 使用微服务分拆巨型系统

  • 2013-10-21
  • 本文字数:1032 字

    阅读完需:约 3 分钟

我们是否在构建过于庞大的系统,比实际需要更大的系统,ThoughtWorks 的首席顾问 James Lewis GOTO Berlin 大会上谈论“微服务——自适应的架构和组织”时以此开始了他的演讲。有示例表明所有制总体成本超过 90% 发生在一个系统启动之后。还有很多项目示例显示作为一个产业我们把大量的金钱花在了构建非常大的、复杂的并且根本没有用的系统上。

James 在大型组织中的经验表明,传统的构建系统的方式是将所有的功能放到一个大的应用程序中,使用一个大的数据库,但是这样做产生的问题引导着他进入了另一种构建系统的方式,新的方法将整个业务分离成更小的部分,正如微服务那样,每一个部分有它们自己的数据库。

对于他而言,之所以能够采用这种方式首先是源于六边形(Hexagonal)业务能力,参考了 Alistair Cockburn 的 Hexagonal 架构。一个单独的业务能力或者功能以及它自己的数据形成了一个六边形,一个使用 DDD 条款的有边界的上下文。然后所有的这些六边形会一起被放到一个更大的六边形里面,最终形成了一个系统。

其次,他关注为所有的服务构建一个统一的接口。在构建隔离系统时一种常见的集成技术是直接集成数据库访问。这种方式的问题是,它与系统的不同部分紧耦合,逻辑和数据很容易分散到系统的各个部分,让它变得难以预测变化的影响。James 喜欢使用在Web 上应用地很成功的集成技术,它们基于HTTP、Html 和超媒体,并使用 REST 进行通信。除了 REST 之外,James 还发现了两种非常有用的标准应用程序协议,它们是 Atom AtomPub

James 相信所有的这些小服务都应该遵循单一职责原则(Single Responsibility Principle),同时该原则应该应用到抽象的每一个层次,从对象到子系统业务能力,到形成系统的各个方面。

最后,James 谈到了可伸缩性。构建一个单独的支持所有功能的大系统使得它难以或者说不可能扩展系统的不同部分。即使系统中某些部分负载很高,而其他部分负载非常低,它们也必须以同样的容量运行。如果使用的是微服务,那么它们能够被部署到不同的服务器上,使用不同数量的服务器。另一种好处是不同的服务可以基于不同的平台实现。使用很多小服务的另一个至关重要的因素是自动地监控和部署,例如使用可编程的基础设施。过去这几年虚拟化、基础设施即服务(Infrastructure as a Service,IAAS)的进展让这些成为了可能。

2013 年的 GOTO Berlin 大会是 GOTO 大会首次在 Berlin 举行,本次大会有超过 400 位参会者和大约 80 位讲师。

查看英文原文 GOTO Berlin: Microservices as an Alternative to Monoliths

2013-10-21 06:201568
用户头像

发布了 321 篇内容, 共 120.8 次阅读, 收获喜欢 19 次。

关注

评论

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

【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin

洛神灬殇

dubbo RPC Dubbo3 Dubbo-Admin

华为云服务治理 — 隔离仓的作用

秃头也爱科技

揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!

科技怪授

华为云

2022年度 FinClip 扩展SDK推荐!

FN0

小程序 sdk SDK 教程

华为云服务治理 | 微服务常见故障模式

IT科技苏辞

业务-研发一体化管理平台,存在吗?

FinFish

小程序 小程序管理平台 小程序技术

ZBC即将登录Coinbase Institutional,生态开年迎新利好

西柚子

华为云发布CodeArts Req需求管理工具,让需求管理化繁为简

科技怪授

华为云

大型软件通过“云应用”即点即用,能解决元宇宙的开发之难吗?

B Impact

简述JavaScript键盘事件

devpoint

JavaScript 事件监听 事件冒泡 键盘事件

「Go框架」剖析iris中错误码路由的运行机制

Go学堂

golang 开源 个人成长 签约计划第三季

90%开发都会忽略的性能调优点:针对返回大数据量的接口,10分钟内找到提升带宽瓶颈的突破口

KINDLING

Java 性能调优 响应时间 ebpf 排障

数据中心的浪浪山

脑极体

华为云发布CodeArts Check代码检查服务,守护软件质量和安全

IT科技苏辞

2022年的魔力象限领导者,为什么是华为数通?

白洞计划

华为

推荐一款较好的小程序管理平台

FinFish

小程序 小程序管理平台 小程序管理

“会说话”的产品包装?“码”上查看!

旺链科技

区块链 区块链技术 区块链溯源

简述JavaScript异步函数 async/await

devpoint

JavaScript Async await es7

华为云代码检查插件(CloudIDE版本)使用指南

与时俱进的时代

ZBC即将登录Coinbase Institutional,2023年以全新姿态出发

BlockChain先知

Linux Radix Tree详解

Linux内核拾遗

数据结构 Linux内核 Radix Tree

技术人职场系列-务虚与务实

CatTalk

技术人生 职场发展

高效节能 | 智慧灯杆综合管理解决方案

AIRIOT

物联网 智慧灯杆

DCS分布式缓存服务实例类型介绍

秃头也爱科技

ZBC即将登录Coinbase Institutional,生态开年迎新利好

鳄鱼视界

ZBC即将登录Coinbase Institutional,生态开年迎新利好

股市老人

2022 年行摄回忆录

穿过生命散发芬芳

盘点2022 行摄回忆录

Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】task1 赛题理解

一颗小树

机器学习 机器学习笔记

爆竹声响又是一年春节到 归心似箭阖家团圆享美食

Geek_2d6073

华为云服务治理 | 服务治理的一般性原则

与时俱进的时代

GOTO Berlin:使用微服务分拆巨型系统_SOA_Jan Stenberg_InfoQ精选文章