文章开头,我向全部喜欢ServerLess的人们说一声对不起先,ServerLess我我的以为是个好东西,但今天文章中会主要谈谈不足。前端
极简架构:不须要考虑消息,缓存,数据库分库分表,并发等等问题。git
极简运维:云服务器,不须要专门的运维人员。数据库
BaaS(Backend as a Service)即后台即服务小程序
FaaS(Function as a Service)即函数即服务后端
“运行时间受限的函数是巨大的挑战。而是否须要如此细粒度的拆分是须要回答的第一个问题。有些问题或许变成无解难题又或成本极高,例如分布式数据库事务。”缓存
”Serverless将无状态进行的更加完全,在不一样的调用之间没法共享内存状态,这让复杂业务逻辑代码编写变得更加困难。“服务器
”做为一个新的技术,Serverless还面临着集成测试困难、Vendor Lock-in、调试监控困难、版本控制等诸多不足“架构
Serverless架构不会成为复杂应用的架构首选,相反,它应该是后端小程序的将来并发
最近在一个技术论坛,和不少企业技术负责人讨论serverless的时候,你们广泛的表示是serverless和目前的主流技术圈子感受还很遥远,主要观点有以下:less
极简架构:想法是好,但如今的产品局限性很强,与现有的系统整合也是个困难,并且生态不成熟,很容易反而增大了开发成本。MVP阶段弄个即用即扔的试验性产品,到是不错,但在国内,仍是不多。
极简运维:如今自己运维成本也是逐年下降的,并且随着技术的进一步成熟,现有的云产品运维成本也不高,并且还能支持将来业务逻辑愈来愈复杂。
因此,给人的感受很鸡肋。
同时,Serverless在你们都但愿看到的”极简开发“上,彷佛没有什么建树,也没有什么好的产品出现。
其实,除了架构&运维外,更多的实际上是开发过程的复杂。、
如今开发一个项目/产品的复杂在哪里呢?举个例子来讲,若是咱们开发一个企业内部管理系统,咱们须要
项目/产品经理与企业内部人员讨论需求
将需求与研发人员讨论,拿出业务流程与数据流程设计报告(或概要设计,详细设计)。
项目/产品经理与客户确认需求
开发人员开始开发,完成后提交给相关人员
项目/产品经理拿着初版产品与客户确认,客户可能提出各类问题,再转给开发人员。
研发人员再进行开发 再来确认。。。
4 - 6这个流程,可能重复几轮。
这当中,还可能出现一系列的问题,好比:
客户不满意,认为作的不是他想要的
研发不满意,认为需求变化过大,很难跟的上
项目/产品经理不满意,感受两头受气
老板不满意,由于项目赔钱。
极简开发是什么?极简开发说大白话就是让开发更简单。
让开发更加简单最直接的思路是
让产品/项目经理在与客户沟通的过程当中,把用户须要的业务流程和页面直接配置出来,拿着能运行的产品与客户沟通,快速的多轮沟通完成后进行一些测试,就能够直接上线。
这里面有几个重点
业务流程能够可视化配置,并支持各类灵活设置。(毕竟企业服务的要求各类可能性都有,工具备局限性会让使用场景局限不少)。
页面能够灵活配置,没有局限性。
企业内部的术语,能够配置。(企业作定制化的系统就是为了符合本身的业务流程,因此这个很关键)
有移动端的支持,同时能提供移动端的API。
可以经过简单的配置方式整合其它平台/系统的数据(企业内部数据打通将来将会愈来愈重要,不少公司接项目时遇到困难也是在这方面)
这样,有了这样的工具后:
若是企业对前端UI风格没有特殊的要求,”配置“出的产品,就能够直接交付使用。
若是企业对前端UI风格有要求,则后台逻辑全配置出来,经过提供的API,本身开发前端UI,知足客户要求。
相信有了这样的工具,才会让咱们的开发更加容易,更加快速的知足客户要求,更加灵活的适应市场的变化。
下面是咱们打算于2017年10月下旬开源的一款针对于上面所讨论的想法的Serverless引擎,若是你们有兴趣,请关注。