隨著數(shù)字產(chǎn)業(yè)蓬勃發(fā)展,傳統(tǒng)云計算產(chǎn)業(yè)走向成熟,大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、區(qū)塊鏈等技術(shù)百花齊放,開發(fā)者的黃金時代來臨。然而新技術(shù)層出不窮,開發(fā)者如何判斷有技術(shù)能力和實踐技能是否達到市場的需求。對此,阿里云攜手 Forrester 對中國開發(fā)者進行專業(yè)調(diào)研,重磅打造出《云原生開發(fā)者洞察白皮書》。報告顯示,云原生讓開發(fā)者看到了更多可能,“人人都是云原生開發(fā)者”已然成為潮流趨勢。
云原生時代下,全新的開放新范式是什么?云原生開發(fā)者應(yīng)具備的能力素質(zhì)模型和必備技能有哪些?
由 CSDN 重磅打造的《大咖來了》中,我們邀請到 Forrester 首席分析師 Charlie Dai、阿里云容器服務(wù)負責人易立、阿里云云效研發(fā)平臺負責人陳鑫,由 CSDN 副總裁于邦旭主持,以《云原生時代,開發(fā)者能力大公開》為主題,共同探討云原生時代下,開發(fā)者需要具備的能力模型以及成長機遇,幫助企業(yè)和開發(fā)者捋清思路,尋找最高效的技能進階之路,并全球首發(fā)開發(fā)者都應(yīng)關(guān)注的《云原生開發(fā)者洞察白皮書》。
掃描下方二維碼,查看精彩回顧:
從左到右:于邦旭、易立、 Charlie Dai
01 什么是云原生?
易立:當前云原生已是 IT 界的“網(wǎng)紅”,但是大家對云原生有不同的理解。如云原生計算基金會CNCF 認為云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運行可彈性擴展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。這些技術(shù)能夠構(gòu)建容錯性好、易于管理和便于觀察的松耦合系統(tǒng)。結(jié)合可靠的自動化手段,云原生技術(shù)使工程師能夠輕松地對系統(tǒng)做出頻繁和可預(yù)測的重大變更。
阿里云認為,所有生于云、長于云,因云而生的軟件、硬件和架構(gòu)都屬于云原生,這樣就擴大了云原生的范圍,涵蓋云原生數(shù)據(jù)庫、云原生AI、云原生大數(shù)據(jù)等領(lǐng)域。
易立
02 云原生時代下,開發(fā)者的挑戰(zhàn)與機遇
Q:云原生時代下,開發(fā)者面臨最大的挑戰(zhàn)是什么?
易立:一是企業(yè)豐富多變的業(yè)務(wù)需求和落后的開發(fā)生產(chǎn)力之間的矛盾。隨著互聯(lián)網(wǎng)數(shù)字化的深入,企業(yè) IT 部門已經(jīng)成為核心部門,但受限于各種各樣的 IT 基礎(chǔ)設(shè)施和研發(fā)流程,采用過去的開發(fā)方式很難創(chuàng)造新的價值,云原生對開發(fā)者帶來研發(fā)效能的提升,讓開發(fā)者關(guān)注于業(yè)務(wù)創(chuàng)新而不是基礎(chǔ)設(shè)施。
以每年的雙 11 為例,大促期間為了支撐運營活動,前端需求修改頻繁。去年,阿里集團開始大規(guī)模在前端應(yīng)用 Severless ,前端開發(fā)者的開發(fā)生產(chǎn)力提升了 40%,滿足快速的業(yè)務(wù)需求。
二是云原生帶來很多新概念,其背后技術(shù)棧的復(fù)雜性和開發(fā)者之間的認知能力也存在很大矛盾。所以“全棧”概念流行,但真正全棧開發(fā)者是很苦的,不僅需要懂前端框架,還得懂后端框架、應(yīng)用部署、安全、穩(wěn)定生產(chǎn)等,給開發(fā)者造成巨大的負擔和壓迫感。開發(fā)者需改變思維,思考如何用云的方式、云的技術(shù)來解決問題,或許不需要重新造很多輪子,便能實現(xiàn)云價值的最大化。
三是企業(yè)上云后,云原生和傳統(tǒng) IT 軟件開發(fā)的方式、組織結(jié)構(gòu)間存在一定矛盾。過去的開發(fā)、測試、運維是瀑布型,每個人只負責自己模塊,出問題后各自甩鍋,效果很低。上云后,DevOps 流行起來,業(yè)務(wù)人員可以參與到研發(fā)流程中,他自己可以實現(xiàn)需求。這些變化需要組織思考。如果上云后,企業(yè)還只是采用傳統(tǒng)的租物理機、虛擬機形式,還是沒辦法把云的能力充分用起來,應(yīng)該思考云原生的想法,怎么最大化利用其彈性,重構(gòu)云原生架構(gòu),如何使用 DevOps 開發(fā)方式讓研發(fā)流程變得高效,基礎(chǔ)設(shè)施變得更加彈性和韌性。
陳鑫
陳鑫:在服務(wù)企業(yè)完成云原生轉(zhuǎn)型的過程中,遇到以下問題:
一是云原生帶來新技術(shù)概念的理解門檻。比如 K8S 對資源模型層全新的抽象,其理念和概念和傳統(tǒng)的面向過程運維模式、面向虛擬機的玩法,是有很大區(qū)別,需要開發(fā)和運維人員轉(zhuǎn)變相關(guān)概念。
二是基于云原生技術(shù)體系,開發(fā)者需轉(zhuǎn)變開發(fā)方法。需優(yōu)先選擇云原生中間件,應(yīng)用 Severless、微服務(wù)等技術(shù),以及新的軟件交付方式。這些方法相較于傳統(tǒng)軟件開發(fā)存在較大變化,我們需重新學(xué)習(xí)。
三是開發(fā)團隊的流程和文化變革,云原生技術(shù)是推崇 DevOps 文化,云原生技術(shù)大大降低了系統(tǒng)演進到 DevOps 的門檻。如我們可以使用 Docker 輕松定義軟件的運行環(huán)境,使用 K8S 編排輕松定義存儲、計算、網(wǎng)絡(luò)所依賴的軟件架構(gòu),以及更容易使用云原生的中間件來處理限流、降級、灰度發(fā)布等。DevOps 的落地對于團隊職責的分工以及文化的影響巨大。如今,開發(fā)、測試、運維等角色被納入到廣義的“開發(fā)人員”范疇。
廣義的“開發(fā)人員”需圍繞云原生生態(tài)體系來開發(fā)相關(guān)的自動化能力,來實現(xiàn)軟件交付能力的進一步提升,不斷優(yōu)化流程和工具,來貢獻到生態(tài)體系。
以上三點對概念理解的門檻、重新學(xué)習(xí)軟件方法、流程和文化落地,對于開發(fā)者來說既是挑戰(zhàn),也是機遇。對于開發(fā)者而言,我們正值技術(shù)變革浪潮,可以在企業(yè)內(nèi)兌現(xiàn)效能紅利,從而提升個人效率和工作的幸福感。對于企業(yè)而言,全面采納云原生技術(shù)的話,將在未來的軟件競爭中贏得先機。
Charlie Dai
Charlie Dai:很高興 Forrester 與阿里云合作發(fā)布《云原生開發(fā)者洞察白皮書》,幫助開發(fā)者更好地了解中國云計算市場的過去、現(xiàn)在與未來。云原生對于開發(fā)者而言,有以下三個方面的重要意義:
一是云原生技術(shù)可幫助開發(fā)者將自身的技術(shù)能力融合現(xiàn)代化技術(shù),幫助我們更好地適應(yīng)未來,把握未來的發(fā)展機遇。
二是橫向幫助開發(fā)者在其他新興技術(shù)領(lǐng)域進行探索。K8S 的出現(xiàn)不僅對云計算本身起到重要的推動作用,還賦能其他技術(shù)體系,使得開發(fā)者可基于同一個平臺,開發(fā)云計算、機器學(xué)習(xí)、大數(shù)據(jù)、物聯(lián)網(wǎng)、區(qū)塊鏈等的工作。
三是因為云原生平臺具有自動化的能力,可以幫助開發(fā)者加速開發(fā)過程。開發(fā)者有更多時間關(guān)注業(yè)務(wù)、和客戶溝通上,幫助我們跳出技術(shù)人員視角,更好地看清客戶需要什么、業(yè)務(wù)上的痛點,這樣可以更加聚焦和突顯自己的價值。
對于企業(yè)而言,具有重要的戰(zhàn)略意義:
一是“全云實踐”。我們可以在云上做全棧,不管是哪個層次上的服務(wù),通過云平臺均可具備這樣的能力。還可以通過云上做設(shè)計開發(fā)、編碼測試、協(xié)同等涵蓋云上全生命周期,這就是“全云開發(fā)”的概念。
二是云原生可以幫助實現(xiàn)“人人都能做開發(fā)者”愿景,對于每個企業(yè)來說,均面臨開發(fā)者資源短缺的情況。云原生技術(shù)可讓運維人員加速進入到開發(fā)過程中,借助DevOps自動化能力,幫助我們更快將一線客戶需求反饋進來。還有不少業(yè)務(wù)人員可借助低代碼的能力,幫助我們加速面向業(yè)務(wù)應(yīng)用的開發(fā),“人人都是開發(fā)者”時代來臨。
三是基于云原生平臺加速數(shù)字化創(chuàng)新,各個方面新興技術(shù)領(lǐng)域可以基于云原生進行平臺化賦能。
03《云原生開發(fā)者洞察白皮書》背后的意義
Q:為什么阿里云攜手Forrester推出《云原生開發(fā)者洞察白皮書》?
陳鑫:上述我們談到開發(fā)者在云原生時代下所面臨的痛點、所需提升的知識點,如何用書面表達出來,業(yè)界尚沒有特別清晰的定義。阿里云關(guān)注開發(fā)者成長,于是聯(lián)合知名的咨詢機構(gòu) Forrester 發(fā)布白皮書,希望給廣大開發(fā)者一些指導(dǎo)性意義。
在這之前,阿里云對開發(fā)者有深入的洞察。以我所在的團隊為例,為阿里巴巴集團和阿里云研發(fā)開發(fā)工具,近幾年來,我親身經(jīng)歷了阿里巴巴集團從線下自建 IDC 到云托管 ,再到云原生的技術(shù)轉(zhuǎn)變,了解不同技術(shù)階段開發(fā)者的痛點和解決方案。
第一個階段是從線下的自建 IDC 到云托管的過程中,開發(fā)者享受的云計算基本是虛擬化,在云上通過軟件將龐大復(fù)雜的物理資源進行虛擬化,體驗大規(guī)模的資源彈性、按量付費、數(shù)據(jù)安全等服務(wù)。這些技術(shù)讓軟件開發(fā)不再受限于基礎(chǔ)設(shè)施,同時降低了軟件應(yīng)用新技術(shù)的成本。
第二個階段是從云托管到云原生階段,隨著 Docker 和 K8S 技術(shù)的應(yīng)用,提升應(yīng)用的交付和部署效率,但由于 K8S 生態(tài)體系的軟件交付、運維理念與傳統(tǒng)模式存在革命性變化,因此給開發(fā)者帶來學(xué)習(xí)新知識、使用新工具的成本。因此,我們提出了新的概念,基于云的開發(fā),使用全云的工具,在云上開發(fā)。
為了克服這些痛點,我們提出云上開發(fā)者概念,即使用全云工具在云上開發(fā)。通過工具和云計算的結(jié)合,來進一步降低開發(fā)者理解云原生的技術(shù)門檻,豐富企業(yè)特性,給企業(yè)提供落地方案。希望廣大云上開發(fā)者也可以享受這個紅利,《云原生開發(fā)者洞察白皮書》便是從此出發(fā)的。
Q:《云原生開發(fā)者洞察白皮書》給開發(fā)者哪些指導(dǎo)作用?涵蓋哪些重要信息?
Charlie Dai:
一、開發(fā)者不僅關(guān)注技術(shù)本身,還需要具備全局視角,既要關(guān)注技術(shù),同時還需關(guān)注業(yè)務(wù)和個人素質(zhì)的能力提升。
二、開發(fā)者的技術(shù)能力非常重要。對于開發(fā)者需具備的云原生技術(shù)能力模型,可從六個維度思考:(1)關(guān)注基礎(chǔ)設(shè)施、應(yīng)用架構(gòu)、部署架構(gòu)等架構(gòu);(2)培養(yǎng)從基礎(chǔ)設(shè)施到平臺,再到應(yīng)用服務(wù)等技術(shù)棧能力;(3)隨著開源組件的不斷下沉,開發(fā)者要利用好平臺來支撐各式不同的框架;(4)整個軟件開發(fā)生命周期之間存在各種交集,我們需具備其他角色所具備的能力,幫助自己來豐富和完善自己;(5)具備相關(guān)編程語言能力;(6)了解新興技術(shù)領(lǐng)域,提升整體能力。
三、開發(fā)者應(yīng)有自身個性化的發(fā)展生長路徑。發(fā)明二進制的數(shù)學(xué)家萊布尼茲曾說過:世界上沒有完全相同的兩片樹葉。我們每個開發(fā)者也是如此,需觀察自己與市場的平均水平相比,是否存在欠缺,而后有針對性的制定發(fā)展規(guī)劃。
四、漸進式發(fā)展策略。每個開發(fā)者在不同階段的關(guān)注點可能不一樣,我們定義了初級、中級、高級三個不同的層次,從上文提到的六個不同維度,以及其他業(yè)務(wù)和素質(zhì)能力,幫助大家把握當前自己處于哪個狀態(tài)。
04 云原生時代下,開發(fā)者能力模型大公開
易立:開發(fā)者有不同的類型,不同的開發(fā)者在云原生時代將扮演不同的角色。從一個企業(yè) IT 架構(gòu)師的角度來看,他應(yīng)該對云有更多了解,了解在云上如何構(gòu)建穩(wěn)定的新系統(tǒng),并適應(yīng)彈性、成本、安全等需求。同時,他也要思考如何將企業(yè)的 IT 架構(gòu)變成面向云原生、混合云、多云的架構(gòu)。
對于運維人員而言,由于其一部分基礎(chǔ)設(shè)施維護的工作交給云廠商,所以自己的能力要升級為SRE,通過技術(shù)手段來確保系統(tǒng)的穩(wěn)定性,提升研發(fā)效率。一是可通過 API 來操作基礎(chǔ)設(shè)施,以更好地滿足業(yè)務(wù)需求的發(fā)展,二是在 K8s 上構(gòu)建平臺化技術(shù),來支撐微服務(wù)、AI、數(shù)據(jù)庫、大數(shù)據(jù)等技術(shù)。
對于平臺開發(fā)團隊而言,上云后,需要思考過去自己維護的中間件、數(shù)據(jù)庫等,是否直接利用云廠商的相關(guān)能力,讓自己不再疲于奔命支撐多變的業(yè)務(wù)需求?另外,如果有混合云的需求,可考慮在 Kubernetes 上構(gòu)建平臺化能力,賦能不同類型的中間件,提升標準化和自動化的水平。
對應(yīng)用開發(fā)者而言,勇敢嘗試 Severless 等開發(fā)方式,讓自己聚焦業(yè)務(wù)創(chuàng)新的核心價值,同時還可嘗試新工具以提升研發(fā)和運維效率。
陳鑫:《云原生開發(fā)者洞察白皮書》分別從技術(shù)、業(yè)務(wù)、素質(zhì)三大能力范疇來總結(jié)開發(fā)者所需要具備的素質(zhì)模型和必備技能。
我具體分享下技術(shù)方面的技能,涵蓋全棧開發(fā)能力、平臺框架應(yīng)用能力、敏捷開發(fā)能力,以及多技術(shù)域的融合能力等。從我的角度而言,擁有平臺框架的運用能力和敏捷開發(fā)能力在云原生時代,是最為關(guān)鍵的。另外,每位開發(fā)者需具備敏捷開發(fā)能力,不僅包括基于云原生,如何使用 IDE 工具、研發(fā)流程管理工具等,還包括了最基礎(chǔ)的技能,如寫好 API、寫好測試用例、與團隊做好代碼審查等能力。這些技能是我們在云上構(gòu)建應(yīng)用程序的基礎(chǔ),只有在熟練掌握這些敏捷開發(fā)方法和架構(gòu)設(shè)計方法、軟件研發(fā)流程后,才能幫助開發(fā)人員更好地管理團隊,獲得更快的競爭機會。
05 云原生未來發(fā)展趨勢
Charlie Dai:一是更加面向應(yīng)用。如開發(fā)、部署、DevOps 等能力將更多為上層所應(yīng)用。
二是更簡化。隨著 Severless、低代碼技術(shù)的發(fā)展,將加速和簡化應(yīng)用開發(fā)過。
三是分布式。5G 讓應(yīng)用負載更加泛在化,我們需關(guān)注開發(fā)能力在邊緣側(cè)如何和云端有機協(xié)同起來。
四是新興技術(shù)體系的平臺化賦能。
易立:云原生的范圍包含公共云、私有云、本地云、邊緣計算、IoT 等,云原生將無所不在,變得無所不能,將支撐更多應(yīng)用負載,AI、大數(shù)據(jù)、數(shù)據(jù)庫等新技術(shù)創(chuàng)新也是圍繞云原生這體系展開。另外,云原生復(fù)雜性將進一步下沉,不僅 Serverless 有更大發(fā)展,越來越多 AI 能力也加入進來,讓用戶可以更低成本、更低門檻地享受到云原生技術(shù)紅利。
陳鑫:云原生已被業(yè)界廣泛的采納,正處于高速發(fā)展階段。最近一兩年提出以應(yīng)用為中心的云原生軟件開發(fā)模式,基于此,阿里云提出 OAM 云原生應(yīng)用模型。
目前我所在的阿里云“云效”平臺,它便是探索以應(yīng)用為中心的云原生軟件開發(fā)模式。為什么強調(diào)應(yīng)用?因為 K8S 核心是面向資源的模型,對于開發(fā)者而言,它缺少一層抽象,這層抽象是可以和一項業(yè)務(wù)服務(wù)相對應(yīng)。因此我們把這層業(yè)務(wù)的抽象叫應(yīng)用,應(yīng)用可能包含一組環(huán)境、配置、交付流程資源,多個應(yīng)用組合起來就變成了一個完整的業(yè)務(wù)系統(tǒng)。“云效”平臺后續(xù)將推出面向云原生應(yīng)用工具平臺,具備以下三個特點:
一是降低普通開發(fā)者理解云原生的門檻,通過應(yīng)用環(huán)境、研發(fā)流程的概念來屏蔽云原生本身的復(fù)雜度,開發(fā)者只需申請應(yīng)用,使用模板完成初始化,就可一鍵上線。
二是云原生關(guān)鍵的發(fā)展趨勢是實現(xiàn)關(guān)注點分離,開發(fā)者應(yīng)重點投入在編碼、質(zhì)量和驗證上,每個應(yīng)用的基礎(chǔ)設(shè)施以及架構(gòu)安排,可以架構(gòu)組來統(tǒng)一確定,提供全局規(guī)則配置,防止開發(fā)出現(xiàn)一些誤操作,影響系統(tǒng)穩(wěn)定性,這就是關(guān)注點分離。也就是說更專業(yè)的人在云原生體系里做更專業(yè)的事,讓開發(fā)更加聚焦于業(yè)務(wù)開發(fā)。
三是迎更容易落地 DevOps,在 DevOps文化下,面向應(yīng)用的運維應(yīng)由開發(fā)者來擔任。工具平臺的責任是將運維門檻和操作導(dǎo)致故障的概率降到最低,所以這個工具平臺在可觀測性、集成云產(chǎn)品以及使用體驗上下很大功夫。
我本身就是研發(fā)“云效”的,我相信工具和云原生技術(shù)的結(jié)合,能更好地去推進企業(yè)“Developer in Cloud”,因此推進“全云開發(fā)”將是未來云原生的重要趨勢。
06 云原生時代,開發(fā)者的成長秘笈
Charlie Dai:一是開發(fā)者需要要持續(xù)學(xué)習(xí),才能夠跳出舒適區(qū),積極擁抱變化,適應(yīng)未來的變化。二是擁有全局視角,避免忽略對業(yè)務(wù)、客戶的理解,盡早培養(yǎng)相關(guān)能力。三是知行合一,幫助自己把握未來成長方向。
易立:一是保持好奇。好奇心是驅(qū)動力,我們學(xué)會發(fā)現(xiàn)問題,并持續(xù)用新方法、新技術(shù)來解決問題。二是關(guān)注問題的本質(zhì)。技術(shù)發(fā)展變化太快,我們開發(fā)者更需要沉下心來學(xué)習(xí)好計算機知識,打好基礎(chǔ)。三是樂于分享。分享是理解別人和表達自己的最好方式,在分享的過程中,還可系統(tǒng)地梳理學(xué)到的知識,幫助自己梳理與鞏固。
陳鑫:一是在軟件工程領(lǐng)域是沒有“銀彈”的,需要不斷地應(yīng)用新技術(shù)、提升編碼技能、使用新工具等,才能完成從量變到質(zhì)變的轉(zhuǎn)變。云原生本身是個系統(tǒng)工程,我們要持續(xù)保持學(xué)習(xí)。二是云原生還在高速發(fā)展中,它可能存在不完美的地方,建議開發(fā)者積極投入到相關(guān)開源的技術(shù)建設(shè)中。
想更多了解《云原生開發(fā)者洞察白皮書》?立即掃碼下載!
閱讀原文:
https://developer.aliyun.com/special/native/developer?utm_content=m_1000289169