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