回顾过去看应用PaaS的Next

简介: 和上周那篇回顾过去看IaaS的Next一样,这篇我将通过回顾我自己所经历的应用PaaS的发展,来找找应用PaaS发展的动力,从而更好的寻找创新方向。

作者:毕玄   
文章来源:微信公众号HelloJava

和上周那篇回顾过去看IaaS的Next一样,这篇我将通过回顾我自己所经历的应用PaaS的发展,来找找应用PaaS发展的动力,从而更好的寻找创新方向。

PaaS是个非常广泛的词,这里主要还是说说应用PaaS,我对应用PaaS狭隘的理解为应用开发所需要依赖的基础技术框架或者一堆基础技术组件,或者另外一种说法是,通常现在大家去做一个业务系统时并不会从零开始研发,一般是会先选择一个开发框架,或一堆的技术组件来进行开发,可以认为选择的开发框架或者一堆的技术组件就是应用PaaS,按照这个定义,可以看出应用PaaS的内容主要取决于应用所选择的架构,所以我就按照我自己经历过的几个典型的架构来讲讲应用PaaS。

单体式架构

大部分的应用系统目前是单体式架构,所谓的单体式架构是指整个业务就是一个应用系统,存储可能是数据库、文件系统之类的。
对于单体式架构而言,如果是Java的话,应用PaaS通常就是类似Spring这样的框架,Spring的IoC、AOP、数据库操作的封装、MVC这些基本上可以满足开发一个单体式架构应用系统的技术诉求。

单体式架构->分布式架构

淘宝在07年开始了单体式架构->分布式架构的改造,在这轮改造开始时,发现首先得解决分布式后多个系统之间怎么交互的问题。

两个系统之间交互,通常会有同步、异步的方式,同步交互采用服务化的方式来解决,异步的方式通常采用消息的方式来解决,于是在这轮架构改造过程中淘宝诞生了服务框架HSF、消息中间件Notify。

数据库单机能支撑的能力有限,需要分库分表,而分库分表后业务开发上会非常复杂,于是做了一个分库分表访问的中间件TDDL。

除了上面的问题外,由于集群化、规模的原因,cache、存储都很难用一台机器解决了,于是分布式cache、分布式文件系统也差不多同时诞生了。

当淘宝进入分布式架构时代后,应用PaaS就从只是一个简单的Spring,演进成了Spring、HSF、Notify、TDDL、分布式cache、分布式文件系统多个技术组件构成。

当年淘宝在做这轮架构改造时,外部直接可用的开源产品实在太少,所以只能自己研发,但到了今天,要做一个分布式架构的应用,通过开源组件基本就可以搭建出来,门槛大幅度被降低,例如选择memcached、glusterfs/ceph、dubbo、rocketmq一堆技术组件或基于spring cloud这样的框架。

分布式架构->单元化架构

阿里的电商架构在2013年开始了从分布式架构->单元化架构(单元化架构师指整个业务系统可以划分为一些业务单元,例如电商有交易单元,并且这个单元可独立灵活部署)的改造,在这轮改造中,出现的最大的问题是所有的系统交互过程中都没有单元这个概念,因此需要让应用PaaS具备单元这个概念能力,从而准确的去相应的单元操作。

除此之外,单元化架构对数据同步有了比以往更高以及更复杂很多的要求,需要在原有的应用PaaS中再增加一个用于实现跨地域、且可支持复杂同步条件的数据同步组件。

可以看到在上面这轮架构改造中,更多的是对分布式架构时代的应用PaaS中的技术组件进行了一轮升级,增加的主要是一个数据同步组件,单元化架构不像分布式架构,基于框架基本可以完成主体,单元化架构还涉及到比较复杂的系统设计。

单元化架构->混合云架构

差不多是在2015年,开始基于单元化架构进一步往混合云架构演进,这个准确来说不算架构级变迁,这个阶段要处理的主要问题是:

  1. 云的IaaS和自有IaaS的不同,在资源管理层面的接口需要适配多套,这个状况随着容器、k8s接口标准化后会好很多;
  2. 运维时无缝的操作混合云场景里的机器。
    所以这个阶段更多的还是在处理资源层、运维层的问题,不像前面的几轮架构改造,深刻的影响到了开发态、运行态以及运维态。

应用PaaS的Next

上面讲的PaaS的这个过程,和上篇IaaS有很大的差别,应用PaaS由于和架构对应,所以准确说不一定是个演进关系,更多的还是看对于企业而言什么架构是合适的。

但上面无论是哪个过程,都可以看到的一点是应用PaaS一直在解决的问题是在这个架构体系下一些通用的技术问题,使得业务系统的开发同学在基于这些技术组件,或开发框架时可以不用过多的关心这个架构体系对应的技术问题,降低了研发门槛,使得业务研发可以更加聚焦业务,从而提升了业务需求迭代的效率。

按照这个,可以看出应用PaaS演进的核心动力就是怎么让业务研发能更加的聚焦业务,这个在每个架构体系里都会不一样,就像上面的演进可以看出,其实并没有本质提升这个核心动力,而只是满足了不同架构体系下的这个动力诉求。

但到了云时代,看到了让这个核心动力往前真正提升的机会,就是通过Serverless的思想(继续强调,Serverless!=FaaS),使得在进入分布式架构、单元化架构、混合云架构这样的体系下时,聚焦业务这事能够有更本质的提升,具体在Serverless:云时代的软件架构核心思想这篇中已经阐述了我的观点,再放一张内部同学帮提炼的观点的图在此:
image.png

对于做业务系统的开发同学而言,如果有机会做比较新的系统,我建议是更多的去使用云产品,这样很大程度其实就是一种Serverless的实践(当然,由于现在云厂商在这块还有差距,所以没那么强的感受)。

对于做Serverless平台的同学而言,我的建议就是思考好上面图片里说的本质问题,基于你的Serverless平台,是否可在很低的研发/运维门槛的情况下,实现一个较为复杂的在线业务系统。

过去的多年,更多的是架构的演进带动了应用PaaS的发展,但云时代的来临、Serverless思想的提出,使得应用PaaS真正的迎来了一个质变的时代,在这个时代中,谁能先给出一个受广大开发者群体欢迎、好用、开放的Serverless框架,谁就有机会拥有像Spring在Java圈一样的地位,并且会更加重要。

作者简介:

IMG_20190813_191335.png

毕玄,2007年加入阿里,一手打造了HSF,十多年来更见证参与了阿里在基础技术上的演进与发展:如淘宝在2007-2009年的分布式应用架构升级、2013-2016年的阿里电商异地多活架构升级等。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
1月前
|
人工智能 自然语言处理 小程序
阿里云秒悟 Meoo是什么?能力与适用场景、体验步骤及最新活动参考
本文介绍阿里云秒悟Meoo这款零门槛云端极速AI应用创作平台,用户仅用自然语言描述需求,即可分钟级生成含前端、后端、数据库的完整全栈应用,自动完成云资源配置与一键部署,支持网页、小程序、安卓APP三类应用形态。平台聚合四大主流大模型,提供多档限时优惠套餐,新用户注册即送万级积分,叠加夜间22点至次日8点指定模型低至2折福利,大幅降低非技术人员的应用开发门槛。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
拒绝“为了转型而转型”:深度盘点企业数字化转型后的四大核心增量价值
本文深度解析数字化转型的四大核心价值:生产力跃升(AI Agent实现“智能驾驶”)、决策进化(数据驱动实时洞察)、组织重构(人机协同的“企业大脑”)、商业创新(服务化与C2M模式)。以实在Agent为例,揭示如何通过大模型赋能,让转型真正落地见效。(239字)
450 1
拒绝“为了转型而转型”:深度盘点企业数字化转型后的四大核心增量价值
|
4月前
|
小程序 API
一文看懂阿里云短信签名实名制报备:要求、流程与常见问题
一文看懂阿里云短信签名实名制报备:要求、流程与常见问题
999 0
养龙虾不破产,OpenClaw 三种使用技巧,降低 Token 消耗
这是一份OpenClaw降本增效实战指南,聚焦三大核心:①斜杠命令(/compact、/reset、/new)秒级优化对话长度;②多Agent分工实现上下文隔离与故障可控;③memory-search机制以查代记,精准调用长期知识。三法协同,直击Token浪费与响应迟缓痛点。(239字)
|
6月前
|
人工智能 安全 搜索推荐
本地Agent越自由,企业越危险:一场关于边界与安全的革命
JBoltAI提出企业级Agent治理方案:在保留员工本地Agent个性化、低延迟优势的同时,通过统一授权、全链路审计、技能共享与转型度量四大能力,构建适配Java生态的控制平面,实现安全合规与创新效率的平衡。(239字)
288 3
|
7月前
|
传感器 人工智能 监控
协作机器人和工业机器人的区别
协作机器人(Cobot)是专为人机协同设计的工业机器人分支,以安全、灵活、易用为核心,通过力控感知、速度监控与ISO/TS 15066认证实现无围栏共作;支持拖拽示教、快速换型,部署快、成本低、ROI短(6–18个月),适用于打磨、柔性装配、医疗辅助等非标场景。(239字)
|
传感器 人工智能 智能设计
邀请大学生用AI技术助力乡村振兴!“挑战杯”阿里云赛题有哪些值得关注?丨云工开物
第十九届“挑战杯”中国青年科技创新“揭榜挂帅”擂台赛——人工智能主擂台赛在上海启动。赛事聚焦城市治理、乡村振兴等领域,由阿里云等企业发榜,提供算力与AI工具支持。其中,“以AI助力乡村振兴”专项赛邀请高校师生围绕浙江开化县、江西遂川县的文化与特产设计文旅产品,推动传统文化与现代技术融合,为乡村振兴注入新活力。赛事现已开放报名,欢迎全国高校师生参与。
|
数据采集 监控 数据可视化
数据量暴涨时,抓取架构该如何应对?——豆瓣电影案例调研
本案例讲述了在豆瓣电影数据采集过程中,面对数据量激增和限制机制带来的挑战,如何通过引入爬虫代理、分布式架构与异步IO等技术手段,实现采集系统的优化与扩展,最终支撑起百万级请求的稳定抓取。
711 0
数据量暴涨时,抓取架构该如何应对?——豆瓣电影案例调研
|
机器学习/深度学习 算法 调度
【强化学习】基于深度强化学习的微能源网能量管理与优化策略研究【Python】
本项目基于深度Q网络(DQN)算法,通过学习预测负荷、可再生能源输出及分时电价等信息,实现微能源网的能量管理与优化。程序以能量总线模型为基础,结合强化学习理论,采用Python编写,注释清晰,复现效果佳。内容涵盖微能源网系统组成、Q学习算法原理及其实现,并提供训练奖励曲线、发电单元功率、电网交互功率和蓄电池调度等运行结果图表,便于对照文献学习与应用。
|
NoSQL 关系型数据库 MySQL
分布式系统学习9:分布式锁
本文介绍了分布式系统中分布式锁的概念、实现方式及其应用场景。分布式锁用于在多个独立的JVM进程间确保资源的互斥访问,具备互斥、高可用、可重入和超时机制等特点。文章详细讲解了三种常见的分布式锁实现方式:基于Redis、Zookeeper和关系型数据库(如MySQL)。其中,Redis适合高性能场景,推荐使用Redisson库;Zookeeper适用于对一致性要求较高的场景,建议基于Curator框架实现;而基于数据库的方式性能较低,实际开发中较少使用。此外,还探讨了乐观锁和悲观锁的区别及适用场景,并介绍了如何通过Lua脚本和Redis的`SET`命令实现原子操作,以及Redisson的自动续期机
1534 7