摘要:使用云計算更加快速軟件開發(fā)的最直接的方法是利用云計算的敏捷性和托管開發(fā)工具的靈活性。大多數(shù)開發(fā)工具都是云托管的,但一些新的工具是為云交付而設計的。
行業(yè)專家Tom Nolle從低代碼/無代碼談到容器和微服務,概述了云計算如何能夠大大縮短軟件開發(fā)過程。
根據(jù)人們的各種說法,云計算通常看起來像是解決各種問題的萬能療法。真正的IT經(jīng)理,開發(fā)人員和架構師知道這不是真的。但他們也知道云計算可以幫助解決很多問題,并允許更快的軟件開發(fā),如果其得到正確應用的話。這對于應用程序開發(fā)尤其如此,云計算可以構建一種新型的開發(fā)協(xié)作,以最少的編碼結合云駐留功能,促進組件的重用以減少開發(fā)工作,為創(chuàng)建應用程序生命周期管理進行分布式測試,并將團隊移向應用程序自定義中的用戶級自我保護。
使用云計算更加快速軟件開發(fā)的最直接的方法是利用云計算的敏捷性和托管開發(fā)工具的靈活性。大多數(shù)開發(fā)工具都是云托管的,但一些新的工具是為云交付而設計的。
從容器開始
第一級基于云計算的開發(fā)工具在托管容器中提供開發(fā)環(huán)境。因此,每個工作人員都可以并行工作,而不需要為每個開發(fā)人員分配一個服務器,或者在測試期間不會在開發(fā)人員之間造成混亂的串擾。Cloud9,Codeanywhere和Coderun是這種開發(fā)者工具的例子。虛擬化開發(fā)人員工作空間是其基本需求。像Codenvy公司這樣的供應商增加了開發(fā)項目管理功能和協(xié)作,還為DevOps提供了一個入口,用于促進操作切換。所有這些都可以大大加快軟件開發(fā)速度。
使用云計算縮短開發(fā)周期的第二個進步,是來自云計算提供商的“功能即服務”API的可用性的增加。這些提供了諸如關系數(shù)據(jù)庫管理系統(tǒng)和復雜功能(如物聯(lián)網(wǎng)設備管理或功能編程)的基本開發(fā)功能。這些功能已完全實現(xiàn)并可輕松調(diào)用。將三個或四個這些與一些最小的自定義代碼組合可以創(chuàng)建一個應用程序,可能需要人工使用傳統(tǒng)的方法來構建。
云計算對于更快的軟件開發(fā)的最重要的影響只是現(xiàn)在才感受到的,很明顯,人們正在走向真正的軟件革命才短短幾年。
亞馬遜公司和微軟公司都在向其Web服務云API清單添加了新功能。其中一些直接支持開發(fā)人員在亞馬遜的開發(fā)人員工具類別中多達6個API,以及來自亞馬遜和微軟的API管理工具。一些提供特定的應用程序功能,以促進云計算開發(fā),如微軟Azure的服務架構和亞馬遜的Lambda服務功能編程,以及來自亞馬遜和微軟的物聯(lián)網(wǎng)和人工智能服務。
即使沒有易于包含的可以放入應用程序的云計算API,云計算仍然提高了開發(fā)效率。云計算組件和云計算基礎架構結合在一起,產(chǎn)生一個IT模型,應用程序的功能可以通過實例化和刪除關鍵組件的實例來擴展和收縮。這提供了成為應用程序組件化的最強大驅動程序。由于組件共享是降低開發(fā)成本的途徑,它可以幫助更快的軟件開發(fā)。
組件化的驅動力比微服務領域更明顯。微服務就是其名稱所暗示的,幾乎是原子級的功能單元,由于它們的簡單性而更容易重用。微服務代理正在達到SOA服務代理的功能級別,但用戶也能夠以簡單的Web-REST方式使用微服務。從微服務構建的應用程序可以減少一些企業(yè)40%的開發(fā)時間。但是,由于廣泛的重用以及微服務更改可以跨越許多應用程序的事實,它們也可能對應用程序生命周期管理(ALM)帶來挑戰(zhàn)。
測試可能很棘手
說到應用程序生命周期管理(ALM),應用程序生命周期管理最具挑戰(zhàn)性的問題之一是定義一個現(xiàn)實的測試場景。現(xiàn)代應用程序被設計為隨處可用,由每個人使用,傳統(tǒng)測試數(shù)據(jù)生成的固有限制意味著應用程序生命周期管理(ALM)不能輕易復制真實世界數(shù)據(jù)和使用模式。借助云計算,分布式測試數(shù)據(jù)生成可以讓用戶更密切地模擬實際生產(chǎn)。
Elsevier,CAInc.和Informatica公司是為云應用程序生成測試數(shù)據(jù)的工具的廠商,還提供指導和工具,以便于在云計算中分配測試機器人。自動測試數(shù)據(jù)生成器(包括開源產(chǎn)品)也可以與公共云功能程序或Azure的Bot功能組合,以將虛擬用戶分發(fā)配到應用程序。
更快的軟件開發(fā)的最終目標是“無代碼”模型,其中功能使用拖放原則組裝,即使是工人,而不是IT專業(yè)人員也可以實施。Appian公司或許是這個行業(yè)比較突出的廠商,稱之為公民開發(fā)商。云計算提供了這種方法的鼓勵路徑:一個是豐富的組件可用的組件,另一個是其他形式的工具。
很少有人真正相信,可以消除所有專業(yè)的軟件開發(fā),甚至是商業(yè)應用程序。但是為非程序員使用創(chuàng)建簡單的工具是希望使IT更能響應業(yè)務需求,并降低總體開發(fā)成本。云計算通過提供軟件即服務來鼓勵影子IT。簡單的編程工具可能與Lambda或函數(shù)式編程技術相結合,將陰影IT一直延伸到基本開發(fā)。
未來的共同模式?
雖然目前還不清楚,但幾乎可以肯定,所有這些舉措將合并為一個共同的模式。該模型將采用“可變代碼”平臺的形式,利用云計算組件和用戶開發(fā)的應用程序組件,以及應用程序生命周期管理(ALM)組件。第一個驅動程序是連續(xù)交付軟件模型。第二個是IT部門由云計算部門采用的云計算驅動的IT運動。第三個是日益豐富的云計算API庫存,現(xiàn)在可移植到整個應用程序作為可組合組件(如Salesforce和Oracle)。
云計算對于更快的軟件開發(fā)的最重要的影響只是現(xiàn)在才感受到的,很明顯,人們只是在幾年內(nèi)實現(xiàn)真正的軟件革命。事實上,云特定的編程技術可能會重寫關于軟件開發(fā)和影響的書籍,甚至桌面系統(tǒng)和設備的編程。IT需要敏捷開發(fā),而且從們正在迅速地在云計算進行交付。