ServerLess -- 除了极简架构和极科运维外,更应该多考虑一下极简开发

文章开头,我向全部喜欢ServerLess的人们说一声对不起先,ServerLess我我的以为是个好东西,但今天文章中会主要谈谈不足。前端

Serverless的初衷

  • 极简架构:不须要考虑消息,缓存,数据库分库分表,并发等等问题。git

  • 极简运维:云服务器,不须要专门的运维人员。数据库

Serverless的分类

  • BaaS(Backend as a Service)即后台即服务小程序

  • FaaS(Function as a Service)即函数即服务后端

ServerLess的批评声音都有哪些

“运行时间受限的函数是巨大的挑战。而是否须要如此细粒度的拆分是须要回答的第一个问题。有些问题或许变成无解难题又或成本极高,例如分布式数据库事务。”缓存

”Serverless将无状态进行的更加完全,在不一样的调用之间没法共享内存状态,这让复杂业务逻辑代码编写变得更加困难。“服务器

”做为一个新的技术,Serverless还面临着集成测试困难、Vendor Lock-in、调试监控困难、版本控制等诸多不足“架构

Serverless架构不会成为复杂应用的架构首选,相反,它应该是后端小程序的将来并发

软件企业技术负责人们如何看Serverless

最近在一个技术论坛,和不少企业技术负责人讨论serverless的时候,你们广泛的表示是serverless和目前的主流技术圈子感受还很遥远,主要观点有以下:less

  • 极简架构:想法是好,但如今的产品局限性很强,与现有的系统整合也是个困难,并且生态不成熟,很容易反而增大了开发成本。MVP阶段弄个即用即扔的试验性产品,到是不错,但在国内,仍是不多。

  • 极简运维:如今自己运维成本也是逐年下降的,并且随着技术的进一步成熟,现有的云产品运维成本也不高,并且还能支持将来业务逻辑愈来愈复杂。
    因此,给人的感受很鸡肋。

同时,Serverless在你们都但愿看到的”极简开发“上,彷佛没有什么建树,也没有什么好的产品出现。

其实,除了架构&运维外,更多的实际上是开发过程的复杂。、

如今开发一个项目/产品的复杂在哪里呢?举个例子来讲,若是咱们开发一个企业内部管理系统,咱们须要

  1. 项目/产品经理与企业内部人员讨论需求

  2. 将需求与研发人员讨论,拿出业务流程与数据流程设计报告(或概要设计,详细设计)。

  3. 项目/产品经理与客户确认需求

  4. 开发人员开始开发,完成后提交给相关人员

  5. 项目/产品经理拿着初版产品与客户确认,客户可能提出各类问题,再转给开发人员。

  6. 研发人员再进行开发 再来确认。。。

  7. 4 - 6这个流程,可能重复几轮。

这当中,还可能出现一系列的问题,好比:

  1. 客户不满意,认为作的不是他想要的

  2. 研发不满意,认为需求变化过大,很难跟的上

  3. 项目/产品经理不满意,感受两头受气

  4. 老板不满意,由于项目赔钱。

极简开发更重要

极简开发是什么?极简开发说大白话就是让开发更简单。

让开发更加简单最直接的思路是

让产品/项目经理在与客户沟通的过程当中,把用户须要的业务流程和页面直接配置出来,拿着能运行的产品与客户沟通,快速的多轮沟通完成后进行一些测试,就能够直接上线。

这里面有几个重点

  • 业务流程能够可视化配置,并支持各类灵活设置。(毕竟企业服务的要求各类可能性都有,工具备局限性会让使用场景局限不少)。

  • 页面能够灵活配置,没有局限性。

  • 企业内部的术语,能够配置。(企业作定制化的系统就是为了符合本身的业务流程,因此这个很关键)

  • 有移动端的支持,同时能提供移动端的API。

  • 可以经过简单的配置方式整合其它平台/系统的数据(企业内部数据打通将来将会愈来愈重要,不少公司接项目时遇到困难也是在这方面)

这样,有了这样的工具后:

  • 若是企业对前端UI风格没有特殊的要求,”配置“出的产品,就能够直接交付使用。

  • 若是企业对前端UI风格有要求,则后台逻辑全配置出来,经过提供的API,本身开发前端UI,知足客户要求。

相信有了这样的工具,才会让咱们的开发更加容易,更加快速的知足客户要求,更加灵活的适应市场的变化。

下面是咱们打算于2017年10月下旬开源的一款针对于上面所讨论的想法的Serverless引擎,若是你们有兴趣,请关注。

http://git.oschina.net/yanglf...

相关文章
相关标签/搜索