有人說(shuō),程序員、開(kāi)發(fā)者是數(shù)字經(jīng)濟(jì)時(shí)代的靈魂工程師,因?yàn)槲覀兩钤谝粋€(gè)由軟件定義一切的時(shí)代,無(wú)論在哪里都有程序員的影子。埃文斯數(shù)據(jù)公司2019統(tǒng)計(jì)數(shù)據(jù)顯示,全球有2640萬(wàn)名軟件開(kāi)發(fā)者,但即便這個(gè)數(shù)量的開(kāi)發(fā)者還是遠(yuǎn)遠(yuǎn)不夠用的。根據(jù)Gartner的說(shuō)法,到2021年,應(yīng)用程序開(kāi)發(fā)的市場(chǎng)需求比交付的IT能力增長(zhǎng)多5倍。那么,云計(jì)算如何助力開(kāi)發(fā)者提升效率,如何讓開(kāi)發(fā)者“以一頂百”,破解開(kāi)發(fā)過(guò)程中的種種難題,真正賦能軟件開(kāi)發(fā)呢?
軟件開(kāi)發(fā)之難
“計(jì)算機(jī)存在很多種狀態(tài),這使得構(gòu)思、描述和測(cè)試都非常困難。軟件系統(tǒng)的狀態(tài)又比計(jì)算機(jī)的狀態(tài)多若干個(gè)數(shù)量級(jí)。”軟件工程論著《人月神話(huà)》中這樣描述了軟件開(kāi)發(fā)中出現(xiàn)的種種問(wèn)題和桎梏。
Web開(kāi)發(fā)專(zhuān)家Christian Maioli曾說(shuō),代碼像意大利面條一樣難以維護(hù)。軟件開(kāi)發(fā)真的不容易,無(wú)論怎么樣,都需要一行一行地敲代碼,而且只要是人寫(xiě)的代碼就有可能有Bug,就得打補(bǔ)丁不斷修補(bǔ),效率問(wèn)題、復(fù)雜度問(wèn)題、一致性問(wèn)題、可變性問(wèn)題等,一直困擾著軟件開(kāi)發(fā),所以才有了軟件開(kāi)發(fā)人員年紀(jì)輕輕就掉頭發(fā)、發(fā)際線(xiàn)靠后的情況。
美團(tuán)技術(shù)學(xué)院院長(zhǎng)劉江對(duì)《中國(guó)電子報(bào)》記者說(shuō):“軟件開(kāi)發(fā)之難從來(lái)就沒(méi)有變過(guò),還是那些難題。”
“在中國(guó)做軟件開(kāi)發(fā)比國(guó)外還難,因?yàn)橹袊?guó)的平臺(tái)太多。”Dcloud創(chuàng)始人王安在接受《中國(guó)電子報(bào)》記者采訪(fǎng)時(shí)表示,所以開(kāi)發(fā)的應(yīng)用就面臨不同平臺(tái)的兼容問(wèn)題。如何提升效率,減少應(yīng)用開(kāi)發(fā)的時(shí)間,讓開(kāi)發(fā)周期至少縮短到現(xiàn)在的1/3,是開(kāi)發(fā)效率提升的目標(biāo)。
“從目前看,最主要的挑戰(zhàn)是接口和模型不一致,也就是說(shuō)不同的云平臺(tái)能使用的工具是不同的,需要單獨(dú)開(kāi)發(fā),很難實(shí)現(xiàn)互通。除此之外,平臺(tái)的安全性、穩(wěn)定性也有提高的空間,用戶(hù)的代碼開(kāi)發(fā)能力也需進(jìn)一步提升。”賽迪智庫(kù)信息化與軟件產(chǎn)業(yè)研究所軟件研究室主任蒲松濤在接受《中國(guó)電子報(bào)》記者采訪(fǎng)時(shí)認(rèn)為。
軟件開(kāi)發(fā)因云而變
而云計(jì)算時(shí)代的到來(lái),給軟件開(kāi)發(fā)帶來(lái)了新的變化,也使得軟件開(kāi)發(fā)呈現(xiàn)出一些新的特征。
蒲松濤表示,從開(kāi)發(fā)平臺(tái)的角度看,正在發(fā)生這樣的變化:在全球應(yīng)用開(kāi)發(fā)平臺(tái)的演進(jìn)中,全球應(yīng)用開(kāi)發(fā)平臺(tái)基礎(chǔ)架構(gòu)呈現(xiàn)出較為明顯的特征是從單機(jī)架構(gòu)向SOA架構(gòu)再向微服務(wù)架構(gòu)的演進(jìn)態(tài)勢(shì)。從產(chǎn)品及服務(wù)形態(tài)看,aPaaS也就是應(yīng)用程序平臺(tái)及服務(wù)展現(xiàn)出較快的發(fā)展態(tài)勢(shì),特別是在中小微企業(yè)中正得到越來(lái)越多的應(yīng)用。從開(kāi)發(fā)工具看,應(yīng)用開(kāi)發(fā)日趨呈現(xiàn)低代碼、零代碼化的趨勢(shì)。
“移動(dòng)云時(shí)代,全球開(kāi)發(fā)者工具服務(wù)正在發(fā)生巨大變革,包括產(chǎn)品體驗(yàn)變革、商業(yè)模式變革、技術(shù)變革。新一代開(kāi)放服務(wù)的方向,基于持續(xù)更新的云知識(shí)庫(kù)的高效開(kāi)放工具,讓開(kāi)發(fā)者更專(zhuān)注于解決問(wèn)題本身,讓技術(shù)服務(wù)變得更加智能。”CSDN創(chuàng)始人蔣濤認(rèn)為。
在采訪(fǎng)過(guò)程中,幾乎所有嘉賓都談及“無(wú)服務(wù)器模式”,也就說(shuō),開(kāi)發(fā)者無(wú)需考慮服務(wù)器運(yùn)維、彈性擴(kuò)容、防DDoS攻擊等問(wèn)題,只專(zhuān)注于業(yè)務(wù)和開(kāi)發(fā)即可。因?yàn)樵朴?jì)算的到來(lái),讓無(wú)服務(wù)器的開(kāi)發(fā)模式成為了可能。
“云和開(kāi)發(fā)者平臺(tái),都是幫助開(kāi)發(fā)者降低開(kāi)發(fā)門(mén)檻、提升開(kāi)發(fā)效率的生產(chǎn)資料。”阿里云開(kāi)發(fā)者關(guān)系總監(jiān)孟晉宇表示,云通過(guò)規(guī)?;姆绞结尫偶夹g(shù)紅利,解決算得好、算得快、算得便宜的問(wèn)題,在過(guò)去10年得到了飛速發(fā)展。云的學(xué)習(xí)和接入成本大幅下降,上云成為業(yè)界趨勢(shì)。對(duì)于開(kāi)發(fā)者來(lái)講,擁抱云技術(shù)已經(jīng)成為必然選擇,需要有一套完備的工具和平臺(tái)幫助他們學(xué)會(huì)上云、學(xué)會(huì)在云上開(kāi)發(fā)。
云賦能開(kāi)發(fā)呈現(xiàn)新模式
云計(jì)算的到來(lái),究竟帶來(lái)了哪些與云相關(guān)的流行開(kāi)發(fā)模式呢?
其一是低代碼開(kāi)發(fā)平臺(tái)。最近低代碼開(kāi)發(fā)非?;馃?,包括微軟、亞馬遜AWS、阿里云等都推出了相關(guān)的低代碼平臺(tái)和低代碼服務(wù),為了盡快跟上低代碼的需求,騰訊也收購(gòu)了一家低代碼的創(chuàng)業(yè)公司。按照Gartner的預(yù)測(cè),到2024年,全球65%的企業(yè)都將采用低代碼開(kāi)發(fā)模式。
蒲松濤認(rèn)為:“低代碼的好處在于:一是開(kāi)發(fā)門(mén)檻低,開(kāi)發(fā)界面簡(jiǎn)單,用戶(hù)易于上手;二是開(kāi)發(fā)效率高,有大量的組件和封裝接口;三是代碼質(zhì)量較高,通??墒褂米詣?dòng)方式生成代碼,bug少且可控;四是結(jié)構(gòu)化程度高,易于維護(hù)。”
不過(guò)盡管低代碼好處多多,但它并不是給軟件開(kāi)發(fā)者,而是給企業(yè)的CIO以及業(yè)務(wù)人員的。而且低代碼也有一些局限,其靈活性不足,組件的功能和種類(lèi)會(huì)對(duì)程序開(kāi)發(fā)帶來(lái)限制,無(wú)法支持定制化開(kāi)發(fā),所以其在特定行業(yè)領(lǐng)域的應(yīng)用會(huì)受限。此外,低代碼開(kāi)發(fā)的程序與用戶(hù)原有系統(tǒng)之間的集成會(huì)較為困難,同時(shí),低代碼開(kāi)發(fā)的程序也存在可靠性和安全性方面的風(fēng)險(xiǎn),而這種風(fēng)險(xiǎn)往往來(lái)源于組件本身,與開(kāi)發(fā)者關(guān)系并不大。
其二是“云+IT運(yùn)維團(tuán)隊(duì)”的模式。在這個(gè)模式下,企業(yè)不用對(duì)已有研發(fā)體系做很大調(diào)整,利用云廠商的IaaS,由IT運(yùn)維團(tuán)隊(duì)將IaaS資源封裝成內(nèi)部研發(fā)團(tuán)隊(duì)可申請(qǐng)的開(kāi)發(fā)資源,企業(yè)開(kāi)發(fā)者以本地研發(fā)為主。
孟晉宇認(rèn)為,這是企業(yè)和開(kāi)發(fā)者云上開(kāi)發(fā)的主流路徑,這種模式的好處是對(duì)開(kāi)發(fā)者的傳統(tǒng)開(kāi)發(fā)習(xí)慣做了最大程度的保留,但是對(duì)協(xié)作和運(yùn)維部署有較大挑戰(zhàn)。一是要管得好代碼。不同設(shè)備上的開(kāi)發(fā),不同團(tuán)隊(duì)之間的協(xié)同,版本的控制,項(xiàng)目的管理,都需要協(xié)作好。二是要用得好代碼。代碼的標(biāo)準(zhǔn)化測(cè)試,部署的流程,都要花時(shí)間精力,因此為了單點(diǎn)項(xiàng)目部署開(kāi)發(fā)測(cè)試流程就會(huì)浪費(fèi)時(shí)間,需要推流程的標(biāo)準(zhǔn)化和通用性。此外這種模式對(duì)于IT運(yùn)維也提出了較高要求,給中小型創(chuàng)業(yè)企業(yè)和個(gè)人開(kāi)發(fā)者提出門(mén)檻要求。
其三是“應(yīng)用+Serverless云服務(wù)”模式。隨著云原生概念的普及和火熱,主要云廠商在Serverless產(chǎn)品線(xiàn)逐漸豐富,越來(lái)越多的初創(chuàng)型企業(yè),可以選擇接受新型的云上開(kāi)發(fā)模式,企業(yè)和開(kāi)發(fā)者不再需要采購(gòu)定量定額的云資源,而是開(kāi)通實(shí)時(shí)彈性、按量付費(fèi)的服務(wù),將應(yīng)用直接部署在這一類(lèi)服務(wù)之上,無(wú)需做資源規(guī)劃,無(wú)需做IT運(yùn)維。這種模式可以使企業(yè)和開(kāi)發(fā)者真正在云上開(kāi)發(fā),從而更好地享受云上資源彈性的優(yōu)勢(shì),并省去運(yùn)維壓力和成本,是很有價(jià)值和前景的云+開(kāi)發(fā)者平臺(tái)的路徑。
它的挑戰(zhàn)一是要讓云上開(kāi)發(fā)的體驗(yàn)和便捷性達(dá)到和本地開(kāi)發(fā)相似或同等水平,二是讓云的服務(wù)盡可能Serverless化,從而更容易在應(yīng)用開(kāi)發(fā)和部署中被集成。
目前有兩類(lèi)企業(yè)在提供“應(yīng)用+Serverless云服務(wù)”的開(kāi)發(fā)服務(wù),一種是由互聯(lián)網(wǎng)企業(yè)騰訊、阿里等提供的如支付寶云開(kāi)發(fā)和小程序云開(kāi)發(fā)平臺(tái);另一種是由專(zhuān)門(mén)提供云開(kāi)發(fā)平臺(tái)的中立云開(kāi)發(fā)平臺(tái),比如Dcloud提供的uniCloud等。
各路廠商包括傳統(tǒng)的軟件開(kāi)發(fā)商、云服務(wù)商、移動(dòng)互聯(lián)網(wǎng)企業(yè)等都在從各個(gè)維度來(lái)加快發(fā)力開(kāi)發(fā)者平臺(tái),希望進(jìn)一步降低開(kāi)發(fā)的復(fù)雜度,提升開(kāi)發(fā)效率。而云計(jì)算的到來(lái),使得我們能夠從更多的維度,更好地聚合資源、降低門(mén)檻提供了更多的可能性。
就像王安所言,當(dāng)我們推動(dòng)新基建,不僅僅是要推動(dòng)“硬”的數(shù)字基建建設(shè),更要推動(dòng)“軟基建”的建設(shè),因?yàn)橹挥胁粩嗤晟?ldquo;軟基建”建設(shè),才能夠真正加快數(shù)字經(jīng)濟(jì)的發(fā)展。