【新興領域:9月焦點9】雲原生(Cloud Native)發展趨勢
隨著雲端運算從底層技術到終端服務各個層面由選配晉升到標配,基於雲端建構以及執行應用程式的方法也進一步的進化,雲原生(Cloud Native)就是此一概念的最終樣貌,本文將透過雲原生服務企業獲投狀況以及開發人員運用雲原生的問卷統計,嘗試理解雲原生當前的發展趨勢。
什麼是雲原生?
雲原生(Cloud Native)的概念在2013年由來自Pivotal(2019年底被VMware收購)的Matt Stine提出,它包括:DevOps、持續交付、微服務(microservices)、敏捷基礎設施等要素,而容器化封裝、自動化管理、面向微服務,是雲原生系統必須具備的三大特徵。
簡單來說,雲原生是軟體開發與部署的模式,從開發之始就建立在雲端環境中,且目的是讓開發到維運的流程更加有效率同時更容易調整。
而隨著雲原生的發展逐漸走向主流,CNCF(Cloud Native Computing Foundation,2015年成立)對雲原生做了重新定義,雲原生技術幫助公司和機構在公有雲、私有雲和混合雲等新型動態環境中,構建和執行可彈性擴充套件的應用。雲原生的代表技術包括容器、服務網格(service meshes)、微服務、不可變基礎設施(immutable infrastructure)和宣告型API 。這些技術支援彈性、可管理和可觀察的鬆散耦合(loosely coupled)系統。與自動化相結合,它們允許工程師們以最小的工作量頻繁地、可預測地做出變更。
雲原生服務企業獲投趨勢
為了理解雲原生領域發展概況,本文首先透過統計近6年(2015年至2020年9月15日)的雲原生服務新創獲投趨勢數據,這些新創名單取自於CNCF成員、自行登錄至CNCF landscape的企業以及透過關鍵字搜尋於crunchbase資料庫所獲取,並排除上述名單中的終端服務提供者以及垂直領域服務等。
圖9-1 雲原生領域獲投趨勢變化
上圖顯示雲原生領域的獲投件數與金額幾乎是逐年上升,投資件數由2015年的61件成長至2019年的97件,金額亦從9.13億美元大幅上升至16.47億美元,雖然2020年至9月15日僅可記錄到61件投資件數以及12.91億美元,很可能無法突破去年的高點,但鑒於今年疫情關係,仍有此成績可謂雲原生領域依舊強勢。需特別強調的是,這些獲投企業除了因應雲原生崛起而專精於提供相關工具與服務的新創企業外,也不乏由雲端運算領域進一步深入到雲原生領域的企業,這股趨勢將使雲端服務的企業服務內容改頭換面。
開發人員使用雲原生現況
CNCF於今年8月時公告了一份數據,於去年底最後的統計全球有650萬雲原生開發人員,比2019年年中增加了180萬,其中270萬人使用Kubernetes,400萬人使用無服務器架構和cloud functions。
對於開發人員而言,實際上運用雲原生的情況又是如何?接下來,本文將透過摘錄/Data於8月份所公布的雲原生開發人員調查報告,與讀者們分享在雲端時代必須知道的最新趨勢。
受雲原生運算基金會(CNCF)的委託,/Data對雲原生開發者生態系進行深入分析,更能瞭解其當前狀態和預期發展。該分析是基於/Data對17,000多名軟體開發人員進行的半年調查,該調查在2019年11月至2020年2月期間進行。4,179名調查參與者回答了與開發後端服務及其使用的技術相關的問題。
全球使用雲原生技術趨勢
從2019年年中至2019年年底,全球對雲原生技術的採用有顯著的成長,特別是對於容器和容器編配工具。
全球有超過一半的後端開發人員都在使用容器,其中北美、南美、歐洲和大洋洲的情況最為明顯。來自這些地區60%的開發人員,在過去的12個月中,已經在後端開發任務中使用了容器。與2019年年中相比,容器的使用平均增加10個百分點。大洋洲增幅最大(增加16百分點),東歐增幅最小(增加5個百分點)。這代表著容器的使用正在逐漸成為後端服務生產中的標準過程。根據/Data預測,隨著技術的改進和在開發人員中得到進一步普及,容器的普及將在接下來的幾個月裡持續成長。
容器編排工具採用的增加與容器使用增加的趨勢非常相似,與2019年年中相比,平均增加約7個百分點。除大洋洲僅成長2個百分點外,在所有地區,編排工具的使用普及率都有顯著成長,從增加6到10個百分點不等。北美、南美和歐洲以超過30%的採用率居首。這表示隨著容器的使用變得越來越普遍,對於使得開發人員能以有效的方式管理和編排工作流程的工具需求也變得越來越明顯。
與編排工具滲透的顯著成長相反,無伺服器架構的使用保持穩定,與2019年年中相比,大多數地區的採用率幾乎沒有成長,平均增加了3個百分點。北美(36%)、南亞(32%)和大洋洲(29%)是無伺服器架構使用率最高的地區,而東歐的使用率最低(19%)。
圖9-2 容器、容器編排、無伺服器的使用變化
雲原生開發人員和非雲原生開發人員對基礎設施的使用
使用容器和雲原生技術的最大優勢之一是操作的靈活性。開發人員可以利用分散式基礎設施以最佳方式為任何特定任務分配工作負載。這部分調查結果將分析雲原生開發人員是如何利用這種靈活性的以及在哪裡運行代碼,並且與非使用雲原生的開發人員相比。
透過詢問後端開發人員,他們是在公有雲、私有雲、混合雲、多雲或是本地端伺服器上運行代碼,為了更清楚地說明問題,在調查中將私有雲定義為僅對特定用戶可用的雲,無論它是在企業內部還是在協力廠商的資料中心裡。此外,將混合雲定義為對單個項目使用公有和私有雲的組合,並將多雲定義為對單個項目使用多個公有雲。
調查顯示,49%開發者在公有雲上運行後端代碼,41%開發者在私有雲上運行後端代碼,46%開發者在本地端伺服器上運行後端代碼,28%開發者在混合雲上運行後端代碼,25%開發者在多雲上運行後端代碼。
與2019年年中相比,公有雲的使用似乎有所減少,但因為/Data在2019年年中的調查中,並沒有多雲的選項,因此要正確地評估使用公有雲的趨勢,必須比較2019年年底與2019年年中,公有雲結合多雲的比較,因為許多開發人員在2019年年中表示他們使用公有雲,但在2019年年底則是選擇多雲選項。據此可以發現公有雲的使用量並沒有下降。事實上,透過觀察那些使用公有雲和/或多雲的開發人員,可以發現雲原生開發人員對公有雲的使用在半年內增加了1倍,非雲原生開發人員對公有雲的使用反而減少了7個百分點。
此外,雲原生和非雲原生開發人員使用私有雲和混合雲的情況都有所減少。這可能是因為開發人員同時利用公有和私有/混合雲基礎設施,最後選擇使用公有雲。這顯示公有雲供應商所提供的服務讓開發人員更傾向使用公有雲。
另與2019年年中的情況相似,雲原生開發人員和非雲原生開發人員在使用本地端伺服器方面沒有太大改變。這很可能是公司的政策會要求開發人員在本地端伺服器上運行代碼,以維持一定的安全性和對資料的控制。
圖9-3 開發人員對基礎設施使用的選擇變化
垂直領域別的雲原生使用情況
首先,軟體公司的開發人員更傾向於在公有雲或多雲上運行代碼(71%),而不是在私有雲或內部伺服器上(分別為48%和49%)。與其他行業的平均水準相比,軟體公司在內部或私人伺服器以及混合雲上開發的可能性要小得多,可能因素有二,第一,當前環境下,開發人員會同時開發軟體,因此需要大量的計算資源,與本地端伺服器以及私有雲相比,公有雲通常可以減少管理費用、使開發更高效、成本更低;第二,一旦軟體被部署,依靠公有雲允許公司充分利用這個基礎設施提供的可伸縮性和可攜性,bug可以更容易地修復,新版本可以更容易地發佈。
處理機敏資料而需要高度安全的行業,如政府單位、國防、電信等,它們對本地端伺服器的依賴程度(均為64%)明顯高於其他行業的平均水準,而它們對公有雲或多雲的使用率(分別為64%和65%)則明顯低於平均水準。
而成立已久並投資於能源(包括石油、天然氣、電力、水)以及汽車領域的公司,較明顯的使用公有雲(分別為64%和67%)和內部伺服器(均為60%)。此發現顯示這些行業實際上可能願意接受雲原生技術,並利用這些技術提供的可伸縮性和靈活性,但它們儲存在本地端伺服器中的大量資料可能會減緩它們向雲的全面遷移。
另一方面,內容和資料需要隨時可用並便於終端使用者訪問者,如娛樂、房地產、旅遊、和非營利組織,更傾向將軟體運行在雲端基礎設施,無論是公有雲、多雲、混合雲甚至私有雲。
圖9-4 垂直領域別的雲原生使用情況
開發人員對雲端服務供應商的使用
Amazon是後端開發人員中使用最多的雲端服務供應商,包括雲原生(62%)和非雲原生(45%)。然而,雲原生開發人員比非雲原生開發人員更有可能使用它,AWS提供了廣泛的服務可顯著改善建構雲原生應用程式,使雲原生開發人員可以將精力集中在建構自己的產品上,而不必擔心支援應用程式的基礎設施。
比AWS落後15個百分點的是google cloud,它是雲原生開發者使用的第二大供應商(47%)。這些開發人員比其他後端開發人員更傾向於使用google約11個百分點。google也是前端和其他開發者(44%)最常用的雲端供應商,很可能是被google提供豐富的web開發工具所吸引。前端開發人員也比其他人員更有可能使用大型企業軟體供應商的託管服務,如IBM和Oracle。
雲原生開發者使用的第三大平台是微軟Azure,僅次於google cloud,有5個百分點的差距。雲原生開發者比其他開發者更傾向於使用微軟Azure提供的公有雲服務。
另外,雲原生開發人員在self-hosted servers上部署軟體的可能性只比非雲原生開發人員低4個百分點。正如前面所討論的,這代表儘管開發人員以雲原生方式部署代碼,但他們並沒有放棄self-hosted servers,因為這些可提供他們更大的安全性和對資料的控制。
而與2019年年中相比,AWS雲原生開發人員下滑6個百分點並轉向到較小的供應商,如DigitalOcean Salesforce、Red Hat和SAP,這代表市場仍在成長,小型供應商仍有機會增加自己的市場份額。
圖9-5 開發人員對雲端服務供應商的使用
雲原生和非雲原生開發人員使用私有雲情況
雲原生開發人員更傾向於使用協力廠商來管理私有雲,與傳統的後端開發人員相比,這些開發人員中的許多人還更廣泛地使用多個協力廠商供應商。與本地伺服器相比,依賴協力廠商可以透過減少管理工作和確保安全的基礎設施來降低支出,這些因素對雲原生開發人員具有強烈的吸引力。
被使用最多的供應商是Amazon,有52%的雲原生開發人員使用它來管理私有雲,相比之下只有35%的非雲原生開發人員使用它。自2019年年中以來,AWS在非雲原生開發人員和雲原生開發人員中的流失率分別為7和8個百分點,由於雲原生用戶的數量在成長,競爭的供應商也在追趕AWS,爭奪不斷成長的用戶數量。
無伺服器解決方案的使用
27%開發人員正在使用無伺服器架構。AWS Lambda仍然是最常用的無伺服器解決方案,46%的無伺服器開發者使用它,google cloud function和Azure function則緊隨其後,分別為38%和29%。Lambda的首要地位源於它是市場上的第一個無伺服器的產品。不過與2019年年中相比,google已取得顯著的進步,在這半年內增加了8個百分點。總的來說,前三名的競爭對手越來越接近,並將其他供應商甩在後頭。
圖9-6 無伺服器解決方案的使用
結語
雲原生憑藉著靈活性、可擴展性以及可管理性,迅速擴張並影響了雲端開發環境與流程,也藉此帶動另一波因應容器、微服務等相關的生態系,同時使得開發的分工進一步地細緻化與分散化。
從雲原生企業獲投趨勢以及開發人員運用雲原生的情況,可明顯理解到這已是不可逆的趨勢,隨著圍繞著雲原生的生態體系不斷擴大,未來基於雲端的開發環境將極有可能全面雲原生化,這也勢必影響著雲端底層基礎建設以及終端與重直領域的軟體程式開發與部署。
根據iThome去年年底的報導指出,雲原生架構早就已是台灣網路企業、新創企業的必備基礎設施,沒有其他選擇,只有導入深度和廣度的差別。在2019年年底的企業雲端大調查顯示,反映出企業數位轉型的關鍵之一就是容器、微服務、上雲、DevOps的相關技術或產品,有21.6%的台灣企業為了上雲,有意採用微服務架構,18.7%想用Container技術。高度雲端化的企業中,更有45.7%在今年要導入雲端CI/CD、28.6%要採用更多Container。
綜言之,對於軟體開發的新創企業而言,若仍未適應這種趨勢,建議須加快腳步以免落後,而對於投資人而言,或許可以思考這樣的改變將可能帶動哪些領域大放異彩,未來的璞玉就有待大家的發掘了。
參考資料
1. /DATA (2020), State of Cloud Native Development
2. 王宏仁(2019),【2020年CIO必看趨勢8】雲端原生架構成主流,加速帶動企業IT現代化轉型,iThome