《大型网站技术架构演进与性能优化》之合并部署[六]

1.什么是架构

业务架构抽象:面向用户的,主要考虑给用户带来什么价值、什么体验,如帮助用户完成一系列需求的集合。
应用架构:面向技术人员,如何用更低的成本更快更好地实现用户的需求,是应用架构要解决的问题。
平台(服务)架构:应用架构复杂到一定程度后,需要单独抽出一层平台架构治理层,解决业务和应用的扩展性问题,以实现业务模型抽象、灵活扩展业务能力水平、灵活定制和组装应用等功能。
技术架构:面向微观问题的,目标是用简单技术解决复杂问题,在稳定性、扩展性和性能之间取得平衡。比如采用什么开发语言、什么开发框架等。
数据架构:涉及数据模型的构建和数据库选型,数据结构的设计、数据的读写比例以及性能评估,数据的一致性、安全性以及原子性等内容。
网络(部署)架构:要解决的是网络路由、数据通信协议的优化、带宽网卡的分配、机房容灾以及网络设备的高可用等方面的问题。
组织架构:角色的分工协作以及KPI的设置,主要关注人员的执行力和效率。

2.什么是合并部署

所谓合并部署就是将多个应用系统同时部署在一个Tomcat实例中,共享同一个JVM进程,每个应用之间通过ClassLoader隔离,但是应用之间的RPC调用不通过网络,而是走Java的本地调用。
好处:充分共享CPU、内存和磁盘等硬件资源,可以让一个应用分布在多台物理机器上。
合并部署受到约束:
必须做成通用Web系统都能使用的方式,不做过多的绑定;
被合并的系统应该少而精,不吃大锅饭;
对开发完全透明;
不破坏现有系统架构;
在运维层面,要充分利用现有基础设施。

3.能解决什么问题

性能的提升:减少网络I/O开销,减少应用调用之间的序列化与反序列化。
协作效率的提升:允许系统进行更多的拆分,解决了不同团队之间的Owner问题。

4.如何解决

ClassLoader的加载体系
运用应用和Tomcat中间的容器实现了ClassLoader的隔离,每个Web App对应一个ClassLoader,具体细节略。
对象在不同ClassLoader间复制
ClassLoader之间的复制才能完成应用之间的数据交换,具体细节略。
日志问题
因为不同应用、模块都依赖log,具体细节略。

5.取得的效果

性能有较大提升,系统调用的RT也下降明显,被合并部署的应用主要依赖也被部署在一起了,这样它们受其他应用影响的可能性变小了。

6.更进一步地做多版本部署

什么是多版本部署?
就是在同一台虚拟机里,同一个JVM实例里、同一个tomcat实例里同时跑一个应用的多个版本,从此应用的发布不需要重启JVM,回滚只需要切换流量而不需要替换代码。
如何实现代码的热替换?
需要解决两个关键问题:一是执行完成的线程能正常退出;二是对象和class类以及操作系统申请的资源能被回收。
多版本带来的好处:大大提升了应用的发布效率和回滚效率。

7.关于高密度部署的思考

不管是不同应用的合并部署还是单应用的多版本部署,本质都是以在单台机器上部署更多的应用为目的,理论上虚拟化越在上层实现,所能共享的资源就越多,但是要同时考虑应用的维护成本和机器成本,找到平衡点。
是否是高内聚:边界是否清晰,参与人之间的信息交流是否简单明了,沟通成本是否足够低,否则很难推广和执行。
是否容易工程化:操作流程简单易学,实施门槛低;可以大规模被复制,依赖少兼容性强;传播方便,可以被弹性调度。

8.总结

通过合并部署原本联系比较紧密的应用系统,减少他们之间的RPC调用,并最终提升系统的性能。所谓合并部署并不是真正的系统合并,系统的开发态仍然是独立的,只是线上运行时部署在同一台机器上,所以不会影响开发效率,但是对运维会有一些影响。是否做合并部署需要进一步考虑和评估系统的运行时系统资源的隔离问题。


推荐阅读:
<<<《大型网站技术架构演进与性能优化》之分布式改造[一]
<<<《大型网站技术架构演进与性能优化》之无线时代下的构架演进[二]
<<<《大型网站技术架构演进与性能优化》之大中台小前台[三]
<<<《大型网站技术架构演进与性能优化》之全球部署方案[四]
<<<《大型网站技术架构演进与性能优化》之代码级优化[五]
<<<《大型网站技术架构演进与性能优化》之大秒系统的极致优化思路[七]
<<<《大型网站技术架构演进与性能优化》之资源调度优化[八]
<<<《大型网站技术架构演进与性能优化》之大型网站的稳定性建设[九]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容