蔡学庸:别再用物件导向,纯云架构最好改用函数式设计,5大架构秘诀公开
2017-06-23 17:04:20 | 来源:ithome | 投稿:洛洛 | 编辑:dations

原标题:蔡学庸:别再用物件导向,纯云架构最好改用函数式设计,5大架构秘诀公开

图片来源:

何维涓_摄影

「你说的云,是哪一种云?」许多企业都认为将系统和资料上云端有很多好处,不但可以节省成本又可以弹性调用资源,那为什么不搬上云端呢?曾在大陆担任阿里巴巴支付宝、中国银联、创新工场、中国平安保险集团等公司的架构师,拥有多年云端架构师经验的北京全栈科技联合创始人蔡学镛表示,企业设计软体时,是否考虑到云端平台的特性是相当重要的课题,他也指出,目前大家对云端的定义都不大相同。

他认为,目前比较流行的是FaaS(Function as a Service)和BaaS(Backend as a Service),FaaS就是将程式拆成各自独立的功能,各个程式之间互相没有关联,BaaS则是用Open API来用开发服务,像是用户的身份认证,这两种云端设计方式可以让程式更加自动化,减少程式运作维护的工作量,也让程式设计师可以不用考量系统流量瞬间爆量的问题。

而现今有许多企业会在PaaS层上设计服务,但他提醒,若不是像用Spring Boot框架开发,很容易还是将程式和资料库绑在一起,若将两者绑在一起,则不适合云端的平台。

蔡学镛将云端程式设计分成Who、What和How,设计程式时分为两种工程师,一种是程式设计师,负责设计与业务领域相关的功能,设计的方式则可用领域导向的方式(Domain Driven Design, DDD)的方式,他表示,DDD的设计方式一直都不太流行,但是最近因为流行微服务,而DDD又开始兴起。

第二种工程师则是架构师,他说明,这个词大约2000年才诞生,与网路的兴起密不可分,架构师主要从事的不是功能的设计,而是以系统运作为导向的设计,包括系统的负载量、安全性等,他建议可用的设计方式是Patterns of Enterprise Application Architecture(PEAA)。

「我也开始在转型!」蔡学镛表示,由于云端平台的兴起,将许多架构师的工作都可以方便快速的完成,且许多云端架构的问题都有规则可循,架构师的价值也越来越式微,他也在思考自己要如何转型,他认为,程式设计师要结合架构师的角色,找到新的程式设计方法。

由于现在需求系统快速且多变,蔡学镛认为,过去传统的程式设计方法已经不管用,主要是因为传统的物件导向程式设计的结构有些问题,他指出,以前的程式设计都将业务和资料紧紧地绑在一起,但是绑在一起的作法并不适合云端平台,物件导向的观念在敏捷开发也完全不适合。

他点出传统物件导向设计的众多问题,举例来说,蔡学镛以前在保险公司担任架构师时,保险的规则非常繁杂,高达1,000万条,也有许多幽灵规则,平时都没有执行,但是没有人敢调整,深怕一调整系统会当掉。

另外,法规和业务调整的动也会影响着前端的服务模组、API,以及后端调用资料库和串连外部系统的设计,还有FaaS的设计强调没有状态(State),但是物件导向的物件都是有状态,他建议,企业若要使用云端,则要使用函数式的程式设计。

蔡学镛归纳出五个函数式程式设计的原则,首先,设计业务功能的模组要分开,且分的越细越好,第二要採用非同步的调用方式,让程式无需等待被调用函数的返回值,就让程式继续执行的,第三是他认为最关键的,就是只要资料最终一致化就好,不需要每笔资料都变成即时交易,第四则是尽量将功能都API化,甚至他建议可以先从外围的Interface开始设计,最后物件必须是无状态,这样系统面对较高的流量,就能同时开启多个Instance。

除了上述的五大原则之外,蔡学镛也认为,在设计云端架构的系统时,必须对资料非常了解,有些是需要和业务人员一同合作来了解,像是资料的重要性、保密性、调用资料的费用和业务一致性,举例来说,金钱和地址的资料遗失重要程度就不同,且也要依照不同的资料类型,将资料放在适合的资料库,并用不同的方式存取。

有些资料的釐清,工程师则是可以透过技术或是统计的方式来理解,像是调用资料的频率、资料笔数、资料老化现象等,他认为,只要是透过技术可以了解的,就能将规则用成通用的方式放在云端平台,他举例,由于火车时刻表属于不容易变动的资料,就不需要频繁地调用资料,避免浪费调用的成本。

最后,资料的互相调用也是重要的议题之一,他表示,调用资料时除了可以用密码的方式确保安全性之外,其实还可以用Attribute-Based Access Control的方式,利用调用和被调用的资料都有各自专属属性的特性,来做精细的比对。

tags:

上一篇  下一篇

相关:

英特尔新Xeon处理器晶片架构大翻新,打造互连网格新架构强化CPU延展性

英特尔採用Skylake架构的新一代Xeon处理器,在晶片设计架构上将开始採用全新的网格( Mesh)互连架构设计,来取代传统的环形(Ring)互连设计方式,以改善CPU存取延迟和支援更高记忆体频宽需求。 图片来源: 英特尔

【业界观点】边缘运算崛起,催生三层式云端新架构

工研院资通所经理杨人顺 图片来源: 杨人顺 不同于美国知名创投A16z合伙人Peter Levine斩钉截铁的认为,云端运算正在终结,甚至边缘运算最终会反过来吃掉云端。过去在行动通讯产业实务经验相当丰富的工研院资通所先

证监会减持新规政策导向 [生活]

这个端午节假期,尽管沪深两市没有交易,但丝毫不影响市场对于证监会减持新规的关注热度。在不少业内人士看来,这一看似针对当下市场问题的“升级版”机制,或有望带来重塑资本市场生态的契机。赚快钱的投机“老套路

证监会减持新规政策导向 [热事件]

这个端午节假期,尽管沪深两市没有交易,但丝毫不影响市场对于证监会减持新规的关注热度。在不少业内人士看来,这一看似针对当下市场问题的“升级版”机制,或有望带来重塑资本市场生态的契机。赚快钱的投机“老套路

【OpenStack波士顿高峰会】不要以为OpenStack只是开源云端OS,未来强调组合式开放基础架构

源于6年前NASA美国太空总署云端专案的OpenStack,在发展初期皆以开源云端作业系统自居,自今年OpenStack波士顿高峰会开始,则打出开放基础架构(Open Infrastructure)的新口号。在今日(5/9)OpenStack波士顿高峰会

站长推荐: