
SOFAStack 团队:包括
余淮、善逝、丞1、碧远
SOFAStack 团队:包括
余淮、善逝、丞1、碧远等人。
SOFAStack:蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践,其中 SOFABoot、SOFARPC、SOFABolt 等三个组件得到码云 GVP 。
团队与协做
你们先作个自我介绍吧
余淮:我是蚂蚁金服高级技术专家章耿,花名余淮。2007 年毕业后,前后参与国网招投标平台的系统开发、国网电子商务平台开发。2012 年加入京东从事中间件开发,前后参加了京东服务框架 SAF 和 JSF 的建设,到后来负责服务与框架。
2016 年末,加入蚂蚁金服中间件(SOFAStack 团队)成为开发框架组负责人。2018 年初开始参与 SOFAStack 开源,目前也是 SOFAStack 总体开源负责人。git
善逝:我是张奇龙,花名善逝,2016 年清华大学硕士毕业进入蚂蚁金服,负责框架 SOFABoot/SOFAArk 的开发。当时选择来中间件团队,理由其实挺单纯的,但愿可以深刻地了解学习支撑蚂蚁金服这么大致量的工程技术。程序员
丞一:我是来自蚂蚁金服中间件团队的林鑫,花名丞一,目前在蚂蚁金服中间件负责消息中间件相关的开发工做,同时也是网络通讯框架 SOFABolt 开源负责人。2012 年毕业后在蘑菇街从事大数据平台和中间件相关的开发工做。2018 年初加入蚂蚁金服中间件。当时但愿能到一个更大的平台,作一些更有挑战的事情,加上从上大学开始就一直在杭州,因此天然而然地选择了带有金融属性,对系统要求更加苛刻的蚂蚁金服。

碧远:我是来自蚂蚁金服中间件团队的雷志远,花名碧远,目前在蚂蚁金服中间件负责 RPC 框架和 Mesh 研发的工做,同时也是 SOFARPC 开源负责人。2014 年从武大毕业后,加入蚂蚁金服,在 2017 年以前,主要在支付团队从事测试开发的工做,2017 年进入中间件团队。由于我的的兴趣更加偏向底层技术,另外对支撑蚂蚁金服整个集团业务的基础组件感兴趣,因此选择了加入蚂蚁金服中间件团队。
算法
大家的工做节奏是怎样的?如何平衡开发效率与运维?
丞一:平常工做节奏中,大部分时间在思考和解决系统的各类异常场景,思考和设计系统会占到平常工做四成左右的时间吧,去实现落地会占四成,剩下一些时间处理一些运维和支持性工做。
从个人角度看,我喜欢从源头上解决运维效率的问题。不少时候须要作的支持或者运维工做,每每是由于你的系统产品化作得不够,或者 API 设计得不易理解,致使须要跟用户去解释,因此我会花更多的时间在系统的设计上,尽可能减小后续没必要要的一些运维和支持工做。不可避免地,平常仍是会有一些运维、支持相关的工做,对于这部分工做会在天天尽可能固定的时间集中处理,并沉淀下来按期反馈到系统上,造成正向的循环来减小这部分工做。安全
做为团队负责人,作管理工做最大的感觉是什么?管理工做与技术工做怎样协调/融合?
余淮:最大的感觉就是管理工做比纯粹技术工做要难不少。一个最广泛的状况就是,大部分刚开始从纯粹写代码到管理技术团队的同窗,都无比但愿回到只写代码的时候。
管理工做的本质是协调,管理的核心是人的行为,要对全局计划有合理安排并带着团队一块儿前进。而技术工做则更多看重的是能力,例如在某个专业领域的专业性前瞻性等,也就是咱们说的深度和广度。微信
因为我所在的是一个技术型团队,基本上算是技术驱动型,因此管理工做和技术工做是密不可分的。平时我在技术工做中须要利用本身的一些经验与判断,和你们一块儿讨论一些技术方向,在实施过程当中无需事无巨细,相信团队的力量,配合和协调团队及外部资源,将咱们认定的技术方向落地掉。网络
在蚂蚁金服 SOFAStack 团队里,大家感觉到的自身的成长、变化有哪些?
丞一:变化多是更严谨、更关注细节了。在蚂蚁金服的体量下,特别又是中间件这样的基础组件,产品的任何一个微小的问题可能会引发业务上的大故障,因此须要以更严谨的态度去关注到各个细节的问题。
SOFAStack 与开源
从 Service Oriented Fabric Architecture 到 Scalable Open Financial Architecture,SOFAStack 这个词好像前后有过几个不一样的释义?它还有什么特别的含义吗?
SOFAStack 架构由支付宝自 2007 年开始自主研发的 SOFA(Service Oriented Fabric Architecture) 框架发展而来,旨在解决 SOA 架构下的服务模块化编排协做(Fabric)问题。SOFAStack 历经了多代架构演进。在 2017 年,伴随着蚂蚁金服科技的总体对外开放,全称正式升级成
Scalable Open Financial Architecture Stack 。
Scalable,以「异地多活」为目标,使系统能在多个数据中心内任意扩展,提供机房级容灾能力,保证业务连续性;Open,总体设计秉承「开放」原则,使新兴架构向下兼容,能与经典架构有机融合,同时开放技术标准,拥抱开源生态;F 表明 Financial,即这个架构是金融级,安全、稳定、可靠是其内在的属性,具有「分布式事务」和「无损容灾」能力,保证在分布式架构下承受高并发交易,在系统扩展、容灾恢复、更新发布时确保数据无损,服务可用。架构
SOFAStack 开源的平常开发流程是怎样的?
在开发流程上,SOFAStack 的发布基本上走的是小火车的开发模式,咱们会在某个版本拉起的时候基本确认好这个迭代的功能点、开发测试排期等。
SOFAStack 开源以前经历了哪些大的迭代呢?
SOFAStack 开源以前已经在内部经历了大的四代架构演进,每一代架构都和业务发展息息相关,都是在解决业务高速发展以及对业务持续性、数据一致性的极致追求而努力。这里我简单给下这些关键字:第一代是集中式的;第二代是分布式、服务化、自研中间件;第三代的关键字是单元化、异地多活、弹性架构;第四代是国际化、科技开放,SOFAStack 也是在这个时间开源的。

开源 SOFAStack 是谁最早提出来的?为何想到要开源它?有一个具体的时刻或是契机吗?为何选择在 2018 年 4 月开源,而不是更早或更晚一些?
从 2015 年开始,蚂蚁金服开启了金融科技对外输出的战略,SOFAStack 也走出了蚂蚁金服,甚至跨越了国界,被更多金融机构与合做伙伴所使用,如天弘基金、信美互信、南京银行、PayTM、DANA 钱包等。在与合做伙伴以及客户的沟通、合做过程当中,咱们发现了
SOFAStack 的理念和能力也正是不少金融行业的企业所须要的,你们或多或少正在规划或者已经在作相似的东西,但缺少像蚂蚁金服这么大的流量来提供考验,也缺少专业团队的长期投入,更缺少丰富的金融场景和严苛的业务压力来驱动技术持续发展。
在金融科技对外输出的过程当中,咱们内部已经进行了必定程度的代码重构,例如历史兼容逻辑的剥离等。关于开源,内部一直有开源的讨论,只是一直没完全决定,直到 2017 年双十一结束后正式决定开源。通过了一系列的准备,2018 年 4 月,SOFAStack 正式开源,由技术团队进行平常维护和专门的团队运营。目前 SOFAStack 在蚂蚁金服有将近 2000 个应用,是被蚂蚁金服实践证明的一套框架,开源出去,让更多的人去体验、使用,对于 SOFAStack 的发展具有很大的意义。并发
为 SOFAStack 的开源版本作了哪些工做?开源的过程顺利吗?遇到过哪些阻力?
为了实现咱们开源「Open Core」的策略,咱们投入了大量的重构工做,以可扩展化的方式来层层构建 SOFAStack 的能力,保证 SOFAStack 的内部版本和开源的版本采用的是同一个内核。因此 SOFAStack 的内部版本就是在开源版本之上扩展了内部逻辑和历史版本的兼容逻辑。
开源版本的核心逻辑内外是一致的,并在蚂蚁金服的生产环境中被普遍使用,同时会随着蚂蚁金服自身业务诉求的驱动,不断地演进。整个过程确定有遇到一些困难,特别是内部的一些历史遗留代码,以及对老逻辑的兼容,怎么适配到新的扩展模式,但这些偏偏就考验了咱们的技术能力,重构后咱们的代码更加优雅,可维护性更强了。框架
大家在开源操做上有完整的规范和流程吗?有的话可否分享出来?
蚂蚁金服的代码对内部都是开源的,而对外开源的时候是有流程的。在开源一个组件以前咱们须要先思考开源的目的、开源后的持续性、社区的建设计划等。由于
开源不是一锤子买卖,特别是刚开源的时候须要持续投入才能保持社区的运转。
社区对大家来讲意味着什么?给大家带来了什么?
中国有句老话“众人拾柴火焰高”,SOFAStack 的各个组件通过蚂蚁金服的业务锤炼而生,可是毕竟场景有限,依靠开源社区的伙伴们,才能拓宽更多的技术服务场景。
社区对 SOFAStack 来讲,意味着更多可能性和想象空间。
投入到社区中,咱们从键盘和屏幕前,走到了人群中。社区里有各类各类的人,有关注者、使用者、开发者,甚至是挑战者。关注者能够给 SOFAStack 带来更多的想法和思考;使用者能够 SOFAStack 在更多的业务场景下生产验证,以提升项目质量;开发者能够参与 SOFAStack 的建设,完善和加强 SOFAStack 的能力;挑战者也可使项目良性发展,遇强则强。
less
除此以外,社区里有不少优秀的开发者和开源项目,咱们也互相学习、分享、交流技术,目前咱们和 SkyWalking / ShardingSphere / Servicemesher / AntDesign 等项目和开源社群都创建了良好的关系。

当初对开源后的项目有哪些期待?这些期待现在都达成了吗?
当初开源的期待是但愿更多人知道 SOFAStack,更多的开发者参与 SOFAStack,更多的用户使用 SOFAStack,在贡献给社区的同时,也期待社区、合做伙伴甚至客户,都可以一块儿参与共建,造成行业标准和最佳实践。
目前 SOFAStack 在 Github 上一共收获了 25600 Star,120+ Contributor 帮助共建,近 40 家企业用户在生产环境使用 SOFAStack 的组件。其中 SOFARPC、 SOFABolt 和 SOFABoot 三个组件得到了码云 GVP 。近日 SOFAStack 在由中国信息通讯研究院主办的云计算开源产业大会上还得到了 OSCAR 尖峰开源技术创新奖(自主研发)。能够看到咱们当初的一些期待在你们认真开源、持续投入下仍是有一些收获。固然,咱们还在开源的起步阶段,接下来还将继续努力,也很是欢迎社区的朋友一块儿共建 SOFAStack。
前面提到 SOFAStack 目前被一些外国企业采用,同时在码云上拿到了几个 GVP。大家如何看待软件开源的“国际化”与“本土化”?怎么样才能在二者之间找到最佳点?
目前 SOFAStack 的代码是同时放在了 Github 和 Gitee 上,咱们的文档也是中英文双语的,在更新文档的时候必须作到同步。这里也正好借机感谢开源中国码云的承认,
我以为开源和技术是无国界的,社区是开放的,咱们也很是感激国内外的开发者的关注。
SOFAStack 目前已进入 SOFA 5 阶段,接下来它的重心将会放在哪里?鲁直曾在接受开源中国的采访时表示 “Service Mesh 才是将来”,那么 Service Mesh 接下来会在 SOFAStack 中如何演进?
随着 Cloud Native 等技术理念的推广,咱们能够看到社区有不少优秀的技术、架构、理念等,包括 Docker、Kubernetes、Service Mesh、Serverless 等等。SOFAStack 在这个阶段的策略是
积极拥抱云原生,咱们会在 Service Mesh、Serverless 持续探索,在内部生产落地,将演进的实践开源出来。目前 Service Mesh 的数据平面部分咱们已经在 618 大促链路上上线了,多是国内目前最大规模的落地。接下来咱们将统一控制平面,探索更云原生的架构方案。
除了将愈来愈多的组件逐步开放出来,SOFAStack 从此在开源上又会有怎样的进一步行动?
下图为 SOFAStack 开源全景图,其中橙色部分为 SOFAStack 包含的开源组件,白色部分为兼容或集成开源社区其它优秀的开源产品。
除了目前已开源的项目的持续维护外,咱们仍是会继续开源更多的产品和实践。在微服务组件上,下一步咱们可能会在动态配置上作一层统一封装,以及和 Spring Cloud 的一些集成。而在云原生方向上,咱们将继续在内部落地 Service Mesh 和 Serverless,并将落地实践开源出来。
写代码是一项创造性劳动,有没有过灵感枯竭的时候?是怎样度过瓶颈期的?工做之余喜欢作些什么来放松?
碧远:有确定是有的,每天吃同样的东西你也会想换口味的嘛。工做了一段时间,发现工做上的需求基本都能作完,在这段时间内,主动的接触一些非工做自己的领域,可能容器内核,也多是算法理论,也有多是网络底层,而后就发现,其实除了工做,我的还有很是多须要提高的。并且在这些内容上,也会获取到一些灵感。更有利于工做。
工做之余,我的主要是偶尔玩玩 Switch,在海拉鲁大陆上割草炸鱼。也会去看看电影。
平时有保持学习吗?经过怎样的方式?时间如何分配?
碧远:有的,我的比较传统,主要是订阅了一些业界技术比较好的我的或者公司的博客 RSS,跟进一些业界你们在作的事情,而后就会去看看一些领域内比较经典的书,同时在Gitee 和 Github 上也会比较活跃。
时间上,没有特别地安排过,主要仍是根据事情动态调整。
封面人物小档案
- 人物:SOFAStack 团队
- 专业:计算机
- 开源时间:2018 年 4 月
- 奖项:SOFAStack 在由中国信息通讯研究院主办的云计算开源产业大会上获 OSCAR 尖峰开源技术创新奖(自主研发),SOFAMosn、SOFATracer 和 SOFARPC 进入 CNCF 云原生全景图,SOFARPC、SOFABolt 和 SOFABoot 三个组件得到码云 GVP
- 团队最爱活动:EAT/SLEEP/CODE With SOFAStack
- 团队聚餐最爱的菜式:肉、全部肉类
- 团队成员最爱的衣服: SOFAStack 定制 T 恤&卫衣
本页刊发内容未经书面许可禁止转载及使用
公众号、报刊等转载请联系受权
欢迎转发朋友圈,投稿:gitee@oschina.cn
关注码云官方微信公众号:码云Gitee

尤雨溪谈Vue.js :缔造自由与真我