本文根据 KubeCon China 2019 同场活动 SOFAStack Cloud Native Workshop 内容整理,文末包含文档、PPT 地址,欢迎试用和提出建议。
2019 年 6 月 25 日,在 KubeCon China 2019,全球知名开源组织云原生计算基金会 CNCF 宣布,蚂蚁金服正式成为 CNCF 黄金会员,蚂蚁金服表示将持续加大对开源项目的支持,包括 Kubernetes,Service Mesh,Serverless,安全容器等方向,并发挥本身的力量。git
在本次大会,蚂蚁金服也与数百名云原生爱好者用五个小时搭建了一个云原生的电商平台,具体怎么作?但愿本文能提供一些思路。github
过去的十几年里,技术发生了翻天覆地的变化,先来简单回顾下:在二十一世纪初,大部分企业的应用还处于集中式架构。这个阶段企业开始作一些信息化的建设工做,典型的一些技术例如集群部署(Tomcat 集群、Weblogic 集群)来保证系统的高可用,以及采购 IOE(IBM,Oracle,EMC)等这些商业化的软硬件产品,经过更高的配置、更好的性能等方式来抗住业务的增加。数据库
慢慢的,随着公司规模的扩大,集中式架构已经不足以再支撑复杂的业务系统,不少企业开始作一些系统拆分的改造,典型的技术例如 SOA 化。当系统拆分后,就再也不须要使用以前昂贵的小型机去部署服务,慢慢的虚拟机的部署方式变成了主流。一样的,服务化后数据库和存储也再也不必须采用商业化软硬件的解决方案,企业转为一些开源的解决方案,例如把 Oracle 换成了 MySQL。后端
系统的拆分虽然能够带来不少好处,例如使业务内聚,系统之间松耦合,方便快速迭代等。可是随之带来的问题也很明显,例如拆分后系统愈来愈多,系统间的交互也会变得更加复杂,调用链路变长可能引发性能问题,分布式后数据存储等数据一致性也有很多挑战,还有服务化后带来资源分配、隔离等问题。这时候一些虚拟化和容器化的技术开始涌现,典型技术就是 OpenStack 和 Docker,OpenStack 帮助咱们解决了 IaaS 层的建设与管理问题,而 Docker 给了咱们资源隔离的最佳实践,但这些并无解决掉运维复杂的一些问题。安全
而近几年,新的云原生的一些技术产品和理念开始出现,例如 Kubernetes、Service Mesh、Serverless 等,这些能够解决应用部署、运维复杂的一些实际问题。架构
蚂蚁金服从 2007 年开始从集中式架构走向分布式架构。咱们把过去十多年的技术演进过程当中自主研发的一套金融级分布式架构沉淀成为 SOFAStack™(Scalable Open Financial Architecture Stack)。并发
从 2007 年到 2012 年,蚂蚁金服完成全部业务系统的模块化、服务化改造。经过 TCC 模式解决了服务化、数据拆分等带来的数据一致性的问题,经过注册中心解决了服务单点的问题。框架
在完成服务化改造后,随着服务集群的增大,系统的伸缩性遇到了瓶颈,另外为了知足金融级的属性,蚂蚁金服对系统可用性、数据一致性提出了更高的要求。蚂蚁金服从 2013 年开始摸索出了一套单元化的思想,并基于此,推出了同城双活、异地多活、弹性调度等能力,保证业务不停机,数据不丢失。less
再以后随着国内互联网金融的崛起、蚂蚁金服的国际化,蚂蚁金服也将本身的能力和技术开放出来,在金融云上以云产品的形式存在,开发者能够基于此快速搭建金融级能力的分布式系统,同时咱们也将内部的一些实践开源出来。运维
从 2017 年开始,咱们注意到云原生的理念正在快速发展,面对云原生带来的机会和改变,蚂蚁金服的策略是积极拥抱云原生。由于云原生带来的思想和理念恰好能够用来解决蚂蚁金服内部遇到的一些场景和问题。
例如 Service Mesh 能够解决中间件等基础能力下层的问题,Serverless 能够解决研发效能的问题,可让业务开发更专一于业务。这些新的技术和理念蚂蚁金服都会在内部探索并在生产落地,最近咱们在深圳 GIAC 首次分享了大规模落地的实践总结。同时,咱们也会将这些云原生落地实践开源出来,并和社区一块儿共同推动和建设金融级的云原生标准。
SOFAStack 开源版本:
2018 年 4 月 19 日正式宣布逐步开源 SOFAStack,开源的策略是 Open Core,也就是把核心的接口和实现都开源出来,内部保留老的兼容代码。到如今为止差很少 1 年 2 个月的时间,已经开源了十几个项目,累计超过 25,600 Star,120 多位贡献者, 以及 30 多家生产用户,近期也认证了两位社区 Committer,这里想再次感谢开发者和企业的信任和承认,咱们将持续优化和扩大开源版图。
咱们看下这张图,这里能够看到 SOFAStack 体系下开源了不少微服务相关的技术组件,例如 SOFABoot、SOFARPC 等,咱们也和社区其它优秀的开源产品进行了兼容或者集成,利用这些组件能够快速的搭建出金融级分布式架构系统。开源的源码能够在这张图下面的 Github 地址上找到。本次的 Workshop 咱们就会利用到开源的一些技术组件。
SOFAStack 云产品:
同时,咱们也把 SOFAStack 的能力集成到了云产品上,以下图:
上图是云上 SOFAStack 的架构图,咱们能够看到 SOFAStack 商业化对外输出的是完整的解决方案。支撑解决方案的就是本次要体验的分布式中间件和云应用引擎等等能力。除此以外还有完善的研发效能平台服务以及技术风险防控平台。关于这部份内容,在本次下午场会有更详细的介绍和体验。
刚聊了这么多,你们是否是想动手试试了呢?本次 Demo 将带领你们综合利用开源版本的 SOFAStack 和云上产品,五小时实现一个在线电商平台。
下面简单介绍下本次 Workshop 的内容,以下图:
上午
下午
这是提到的是在线书店的系统架构图,最上面是部署好的一些基础设施,包括注册中心 SOFARegistry,服务管控台 SOFADashboard,监控度量 SOFALookout 等,咱们已经提早准备好了这部份内容。
下面就是业务的内容。为了方便,咱们再也不作先后端分类部署,本次你们只须要操做 2 个应用:左边是网页系统和库存系统,提供库存操做服务,右边是帐务系统,提供余额相关服务。当用户的购买请求进来时,库存系统须要经过 RPC 远程调用到帐务系统。
另外库存服务和余额服务分别对应的是独立的数据库,这个后面会用分布式事务框架 Seata 去解决分布式下数据一致性的问题。
本期 Workshop 用到的全部文档目前都在 SOFAStack 官网上,你们访问后看到导航栏有一个【指南】,便可根据文档进行操做。
本期全部相关 PPT 下载地址在对应【指南】底部。
SOFAStack 官网:https://www.sofastack.tech
本次咱们准备了《将来架构》签名书做为礼品,很是感谢四位做者到现场支持。
别忘了 Star 咱们:
https://github.com/sofastack
但愿和咱们一块儿玩的开心