传统金融企业如何做微服务?
本文源自王晔倞在《技术琐话》周三直播上的分享整理,小编通听二三遍,然后采取记忆要点模式整理,没有逐字逐句复制。而且尽量保留老王口语化的特色。老王写原创的时候语言生动,长句较多。演讲往往通过短句增加记忆点,风格鲜明。
我自我介绍一下,我是王晔倞,目前在好买财富。
我也介绍一下好买财富,一家有牌照的全金融产品销售业务形态的公司。
传统企业在技术意识上的现状
对了,我解释一下,什么叫传统企业。当然我不用百度百科的解释。
传统企业,互联网企业相互看着比较奇怪。
我今天讲的也是我的理解,没有标准答案。如果赞同的,点个赞;不赞同的,你就当听故事,这世界原来还有这些事。
传统企业,总觉得自己很“别致”。
比如制造业,总喜欢拿安全说事!
他们认为,互联网企业很奔放啊。
有时候真有那么大区别吗,还是你找的“借口”?
我之前写过一篇“上海技术氛围烂得一B”,还被人喷。上海除了携程、拼多多还有谁,记得住的不是南京路,陆家嘴、自贸区吗?
北京开技术大会,一个专题结束了,讲师往往被包围,干吗?被包围问很多问题。
上海很有意思,还没结束,就有人跑,回家去了。
上海的工资也并没有比北京低很多。
上海的传统企业比较多
一个老板的特性,就是这样。
对了,有人提醒我,宝钢!
一个城市的定位,跟国家战略有关。
比如卖基金,之前在线下卖,现在线上可以卖。这本身可以作为“传统企业”,互联网只是它的一个渠道而已!
对了,你如何告诉你的老板,自己做中间件对于业务有什么帮助?这三个人还这么贵!
说实话,我说不出来!
对了,我想起来一个经典问题:开发和测试的比例问题!
对了,你听过运维的比例吗?架构师的比例吗?
有标准吗?
多少服务器配一个运维?
如果说一个公司一个运维,又如何衡量这个运维的价值呢?
即使你能说得出来,抱歉,我是老板,我听不懂!
我是做业务的老板!
我们的中后台,不仅仅是1+1=2的问题,是一个增长曲线的问题,可能某些的存在就是为了业务翻5倍、10倍的时候才能体现机制。
他们只明白3个人干多少活,6个人创造了多少营收
这是他们的思维模式。
业务出身的老板不懂技术,
于是技术负责人
放弃了,
走掉了。
老板说你们NB了,为啥还宕机呢?
你们不是敏捷吗,为啥还延期呢?
你们不是devops了吗,为啥运维也在增加呢?
你们不是中台了,人为啥还越来越多了呢?
我的经验就是,解释不清楚的,选择不解释。
技术团队作为成本中心,不同企业的发展阶段有不同的使命的。
幸运的是,我都经历过。
初创,业务高速发展期,效率第一,快点上线。质量重点要吗?没有效率重要,凡是钱能解决的问题,或许都不是问题。
业务减缓期,往往更关注质量了。
业务平稳期,成本意识必须上来了,能100人干的活为啥要招聘200人?
微服务落地的发展历程
架构1.0
单体应用时代,可能是最好的时代。
一个war包打天下。
各条产品线,要用什么都是自己说了算,
上线也挺快。
我们看一下单体时代的几张图。
对了,老王又要讲故事了。
电商系统出问题了,6个总监在一起讨论是谁的问题。
电商研发部找了下面的三个团队,三个团队找了质量,质量找了运维。后来大家决定成立架构组,特别复杂的事情都让架构组做,于是架构组是救火队和背锅侠!
既然1.0时代这么NB,为啥还要转型?
痛啊!
1、业务发展,打补丁,if-else越来越多,终究会失控!
2、业务分散,缺少分层,每次测试都all-in。一个大型项目上线,300人的公司,光加班吃饭就来了100多人。
3、各自玩中间件,你玩这个MQ,他玩那个MQ。
总结一下,1.0时代,我们要解决系统问题、业务问题以及架构问题等三大问题。
架构2.0
理论都很有道理,总结一下,单体虽好,扩展却难。
越大越大的war,200人协同,业务响应变慢。
应用复杂度高,有些坑,可能知道的人已经离职了。
错误隔离困难,一个地方挂可能导致整个功能不可用
应用扩展的成本变高,比如我要扩展一下会员,但交易暂时不需要增加更多服务器。
更要命的是,数据库连接是有上限的。
于是,我们进入了2.0时代,主要是下面三招。因为时间的关系,后面我会讲得比较快......
组织结构垂直化,整合了研发、测试、运维变成全功能团队。这样一群人一个目标,一个屁股。
下面这张图就跟很多“大厂”的图一样了哈。最会员的团队,我可能给你4个人的编制,你该招聘开发招开发,该招运维招运维。
组织结构垂直化,看起来很美好,但是有新的问题,还需要对应的配套。
比如:
1、之前几个测试混合支持会员、积分、交易,哪里忙往哪里搬,现在每个团队得有固定的测试人员。
2、小项目迭代轻松了,TL自己安排发布就好,但大项目对于PM依赖变高了,5个功能团队,谁来协调,打架?我们有项目管理部,但项目管理部的职责不同,他们是传统的PM,可能需要去进修!
3、功能团队之间人员水平和能力差异,导致的技术风险和运维成本增加问题。
于是,我们要继续解决问题
中间件独立团队维护,这块的专业性交给他们。
运维单独有工具团队,全功能团队做运维自助化,在更好的流程和工具上工作。
系统运维部负责IaaS,包括机房、网络、存储等等。
项目管理流程工具配套
具体参考下面几张图
这是我们分布式缓存的监控平台
架构3.0
好了,到了3.0了。
IT自己爽了,业务需要爽。更快的支持业务上线!
我们在3.0阶段,面临的问题。
业务老变,快速尝试。
服务的编排,比如我们和基金公司签的折扣在中台服务中定义,而to客户的产品套餐折扣在产品服务这层定义。
逐步进行服务的拆分,微服务化。
逐步形成敏捷文化,传统一些的项目管理部门在今年拆除。
微服务落地的过程中,要注意敏捷文化的落地。
大家可以看一下我们2018年的一个业务架构。
这是偏技术的一个架构。
因为时间的关系,细节不展开。我们AI智能分析进行了服务化,而账户、保险等服务进行了微服务化,通过逻辑编排进行链接。
这是我们在3.0架构下和1.0架构下的效果。
这个数据是怎么来的,是我们总结收集的。
投资我们的公司是联想和腾讯,联想喜欢做“复盘”,我们也用了不少腾讯的东西。
我们从2014年开始,就坚持复盘文化,下面的案例就是复盘的一个具体结果。
今天,我分享的关键点是2个:
1、我们是一家传统的金融企业,传统金融企业老板如何想,技术负责人如何做决策?
2、微服务过程中的组织问题、架构问题、协同问题,更多是问题驱动,过程中的变化
对于具体的技术选型比如是dubbo还是spring cloud并没有涉及,DDD也没有,这些可以在以后的分享中展开。
服务不是越小越好,
对于我们企业,先做好服务治理。
下面是我的联系方式,我是老王,爱健身的段子手,讲故事的IT人!
往期推荐
谷歌开源内部代码评审规范
我为什么反对用异常做流程控制?
13年创业CEO的复盘:20条人生指南
羊毛党跑去京东摸了年终奖
为什么顶尖高手,都是深度思考者?
技术琐话
以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。本号由坐馆老司机技术团队维护。
传统金融企业如何做微服务?相关推荐
- 那些没说出口的研发之痛,做与不做微服务的几大理由
元旦赠书活动还在继续中,欢迎点击下方链接参与: 赠书一:<函数响应式领域建模> 赠书二:<Java函数式编程> 赠书三:<高可用架构> 如果在诸多热门云计算技术中, ...
- 传统行业是否使用微服务的讨论——不够痛就别微服务
一.微服务落地是一个复杂问题,牵扯到IT架构,应用架构,组织架构多个方面 在多家传统行业的企业走访和落地了微服务之后,发现落地微服务是一个非常复杂的问题,甚至都不完全是技术问题. 当时想微服务既然是改 ...
- 那么您想做微服务吗? 请观看微服务以防万一
Bert Ertman在本次有关微服务的演示中提供了许多有效的观点. 您是否正在考虑在项目,团队或公司中遵循此路径? 请拿起咖啡,记事本(如果您喜欢手写笔记)并观看. 看到许多公司和团队确实很痛苦,精 ...
- 微服务指南走北(四):你不愿意做微服务架构的十个理由
近段时间离职,跟同事们讲解我之前所做的微服务相关产品,对于同事们提出的问题,做了如下整理出来,加上自己的理解,分享出来跟大家一起探讨下: 问题预览 我为什么要换微服务?能给我带来什么好处? 从交互上来 ...
- 干货 | 国内互联网公司是如何做微服务实践的?(附PPT下载)
微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,并随着Netflix最佳实践的发布而为业界所知.如今,在国内有了大量的微服务实践案例,5月18日,网易云联合云 ...
- 中台架构与实现:基于ddd和微服务 下载_为什么在做微服务设计的时候需要DDD?...
记得之前在规划和设计微服务架构的时候,张队长给了我一个至今依然记忆深刻的提示:『你的设计蓝图里为什么没有看到DDD的影子呢?』 随着对充血模型的领域认知的加深,我越加感觉到DDD的重要性.但是DDD内 ...
- 为什么在做微服务设计的时候需要DDD?
点击上方"程序猿技术大咖",关注并选择"设为星标" 回复"加群"获取入群讨论资格! 记得之前在规划和设计微服务架构的时候,给了我一个至今依然 ...
- Jboot发布啦,如果你做微服务架构,你应该看看。
2019独角兽企业重金招聘Python工程师标准>>> Jboot发布啦 Jboot是什么呢? 详情地址地址:https://git.oschina.net/fuhai/jboot ...
- 架构(二):如何对现有系统做微服务改造?
很多早期的互联网公司都有巨大的单体应用,底层的数据表集中放在一个数据库里,这些表加起来可能有几百张.对于这样的应用系统和数据库,我们往往需要对它们进行拆分,通过微服务化改造,保证系统能够不断地扩展 ...
最新文章
- js之事件冒泡和事件捕获
- 网络编程五种IO模型之poll模型
- memcache多语言unix socket访问
- 中国科学院大学2014年数学分析高等代数考研试题
- 基于Hadoop的产品大数据分布式存储优化
- Cocos2d-x基础篇C++
- pythondjangoddos_django带服务器
- “暖心”腊八节开启中国年 全民喝粥“讨彩头”
- IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
- STC单片机 Keil4安装, 第一个程序
- 【经验分享】强力推荐——截图小工具Faststone Capture(FSC)
- 饥荒联机一直显示正在启动服务器,饥荒联机版启动服务器时间长 | 手游网游页游攻略大全...
- 没想到,拼多多竟然想用AI种草莓给我吃
- python小游戏——散刺修罗场
- 基于FPGA的2FSK调制解调器
- 第13章-1~3 法兰接头预紧力密封接触分析(模型简化、网格调整、约束)并行计算设置、摩擦接触设置adjust to touch 、约束设置frictionless support、bolt
- matplotlib总结
- centos 7修改用户名和密码
- unity游戏存档playerprefs
- Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析
热门文章
- 计算机应用 课件 .doc,管理课件计算机应用基础作业一(答案).doc
- 【毕业设计】基于程序化生成和音频检测的生态仿真与3D内容生成系统----程序化生成地形算法设计
- 强烈推荐的几个数据清洗小工具箱
- 光流方法Flownet的简单调用
- notability录音定位_如何恰当地使用 Notability?
- Capslock+ 2.x 介绍以及使用
- uniapp点击按钮防抖
- 023.抓到“拔粪青年”
- jboss6 jms 配置使用
- 解决Eclipse中文乱码问题