本文來自微信公眾號:阿朱說,作者:呂建偉
很多人說:微服務(wù)的價值是復(fù)用、方便靈活組合。
很多人說:PaaS平臺的價值是方便定制開發(fā)。
我想說,這都什么人傳出來的謠言。
這都是白日做夢。從來沒有一種技術(shù)是為了方便修改和定制開發(fā)。
一、微服務(wù)是怎么來的
(1)面向函數(shù)和面向?qū)ο?/p>
1946年產(chǎn)生了計算機以后,由于計算能力和存儲能力限制,人們寫的代碼有限,所以當(dāng)時都是流水代碼,一邊讀卡器讀入,另一邊電傳打字機打印出來結(jié)果。
后來計算能力(晶體管與硅芯片)和存儲能力(磁芯與磁盤)提升了,人們寫的代碼可以更長了。為了更好地閱讀代碼,人們把代碼分割成了函數(shù)。
后來,大規(guī)模集成電路產(chǎn)生了,計算能力和存儲能力更進一步,函數(shù)也變的更多了,需要把函數(shù)也分分堆兒,于是物以類聚,面向?qū)ο缶幊坍a(chǎn)生了。
所以說:面向函數(shù)和面向?qū)ο螅饕康氖菫榱私鉀Q代碼有組織性。
至于所謂的復(fù)用?你如果設(shè)計的輸入?yún)?shù)、輸出參數(shù)、返回值沒有精心設(shè)計好,根本不可能達到復(fù)用。
(2)面向組件和面向服務(wù)
RPC,局域網(wǎng)中跨服務(wù)器的遠程過程調(diào)用,在1987年就由Sun公司和HP公司領(lǐng)導(dǎo)創(chuàng)立了。
面向組件產(chǎn)生于1990年。主要是為了解決跨開發(fā)語言、跨操作系統(tǒng)進程、跨服務(wù)器的應(yīng)用程序之間互相調(diào)用的問題。這里以IBM為領(lǐng)導(dǎo)的CORBA組件體系、微軟的COM組件體系為代表。1997年,Sun公司集大家之所長,制定了J2EE標(biāo)準(zhǔn),這也是一種面向組件的技術(shù)體系。因此有了大家熟悉的EJB。
但是,1997年也是互聯(lián)網(wǎng)最狂熱的時代。1999年,WebService技術(shù)產(chǎn)生。這樣,應(yīng)用程序之間互相調(diào)用就不限于局域網(wǎng)了,更可以延伸到互聯(lián)網(wǎng)。因此出現(xiàn)了面向服務(wù),意思就是for WebService。所謂的服務(wù),其實特指的就是WebService。
所以說:面向組件和面向服務(wù),主要是為了解決應(yīng)用程序之間互相調(diào)用的問題。
(3)面向微服務(wù)和面向函數(shù)服務(wù)
但是大家都知道,不管是組件技術(shù)棧,還是WebService技術(shù)棧,都日益復(fù)雜。
所以Spring公司創(chuàng)立的時候,提出的是EJB已死。
不要組件(直接JAVA類就OK)、不要組件服務(wù)器(直接Spring編程框架就好),不要WebService(直接RESTful就好)。于是這就演變到了面向微服務(wù)。
2014年,AWS更提出Serverless無服務(wù)器編程(函數(shù)服務(wù)),直接在云上編程云上運行,不需要操心下面的一切。
所以說:面向微服務(wù)和面向函數(shù)服務(wù),主要是為了簡化面向服務(wù)編程的復(fù)雜性。
所以,從1946年計算機技術(shù)產(chǎn)生,自古以來,就沒有一種技術(shù)是為了解決所謂:復(fù)用、方便靈活組合。如果你沒有高級程序員(技術(shù)架構(gòu)師),不精心設(shè)計你的應(yīng)用程序的每個接口,光靠這些函數(shù)、對象、組件、服務(wù)、微服務(wù)技術(shù),根本不可能做到復(fù)用、方便靈活組合。
但是,恰恰的是,我國應(yīng)用軟件編程人員,就是萬金油編程人員,就懂得996加班把產(chǎn)品經(jīng)理的功能趕快實現(xiàn)了,根本沒有足夠多的高級程序員(技術(shù)架構(gòu)師)去負責(zé)精心設(shè)計應(yīng)用程序的每個接口。
二、PaaS平臺
(1)低代碼開發(fā)平臺
不知道什么原因,低代碼開發(fā)平臺突然火起來了。而且不少人想拿低代碼開發(fā)平臺去解決大型客戶個性化定制開發(fā)的需求。
我想這不是南轅北轍了么?
低代碼開發(fā)平臺,能解決的是:擴展開發(fā)。也就是說:新的功能模塊的代碼快速生成與編寫。
至于你老的代碼,如何滿足一家家客戶的定制開發(fā)修改,尤其還是在現(xiàn)在公有云、SaaS多租戶的未來趨勢下。我想真是癡人說夢。
Salesforce都做不到現(xiàn)有的產(chǎn)品功能可以滿足一家家客戶的定制開發(fā)修改。
(2)Open API開放平臺
Open API開放平臺主要解決的是:集成開發(fā)。
也就是說:你的系統(tǒng),需要和客戶的系統(tǒng)集成在一起,如和客戶的CRM系統(tǒng)、財務(wù)系統(tǒng)、OA系統(tǒng)集成在一起,Open API開放平臺是必須的。
(3)大數(shù)據(jù)平臺
至于查詢、搜索、數(shù)據(jù)挖掘、數(shù)據(jù)倉庫統(tǒng)計,以及報表、圖表可視化展示,用大數(shù)據(jù)平臺即可。
至于主數(shù)據(jù)服務(wù)、主數(shù)據(jù)訂閱/發(fā)布推送,用主數(shù)據(jù)管理系統(tǒng)即可。數(shù)據(jù)層面的集成,也主要是在主數(shù)據(jù)這塊。
也就是說,從來沒有一種平臺技術(shù)的發(fā)明,是主要為了解決大客戶個性化定制開發(fā)的問題。從1946年計算機技術(shù)產(chǎn)生,自古以來,就從來沒有。