簡介:隨著雲原生 Serverless 的概念在國內悄然升起,許多技術人似乎從中看到了希望,許多 IT 架構師已經把它作為目標技術架構之一。Serverless 的跨代優勢對有技術敏感的架構師來說是技術發展的紅利,一般都在持續關注它的發展。
但是在這兩年間,隨著整個研發生態接觸到 Serverless 的內容也越來越多,嘗試也越來越多。在許多的實踐中,越來越多的公司、企業開始陷入迷思。
在9月18日的雲棲大會上,阿里雲向全球的開發者們傳遞一個資訊,具備規模化落地的真正的雲原生Serverless 應用研發時代已經到來,全面擁抱雲原生應用研發的拐點已經到來!無論是大中小微公司,無論什麼業務場景,無論什麼開發語言,無論是既有的存量應用還是新應用,無論多大使用者流量,無論全球服務有多少節點,都可以藉助阿里云云開發平臺提供的 Serverless 架構服務輕鬆落地。
研發的未來在哪裡
網際網路+ 發展到今天,大家對網際網路業務的發展模型越來越熟悉,敏捷開發,流量運營,模式複製。在整個創新閉環當中,技術起著至關重要的作用:
- 幫助商業創新從 Idea 變成真實的線上服務
- 幫助保障線上服務流量極速增長仍能提供服務
- 幫助成功的商業實現模式的複製
所有的技術人都在為此而努力,就像奧林匹克精神那樣,以 “更高更快更強” 為目標,不斷優化工程實踐方法。然而,這條路一路走過來的艱辛也只有技術人才懂:
- 組建研發體系何其困難,麻雀雖小,五臟要全,如何快速完成研發團隊的建設,研發基礎設施的建設,是擋住商業化創新的第一道坎;
- 使用者流量每增長一百萬,對技術架構都是巨大的挑戰,系統什麼時候會崩潰是技術人每天都要思考的問題;
- 業務在國內取得成功後,想要在全球範圍同步推出,每增加一個服務節點,系統架構都得從頭再搭建一次,不同的國家地區還不一定能夠保障,嚴重製約商業化腳步;
- *
雲原生應用研發的最後一公里魔咒
隨著雲原生 Serverless 的概念在國內悄然升起,許多技術人似乎從中看到了希望,許多 IT 架構師已經把它作為目標技術架構之一。
Serverless 的跨代優勢對有技術敏感的架構師來說是技術發展的紅利,一般都在持續關注它的發展。
但是在這兩年間,隨著整個研發生態接觸到 Serverless 的內容也越來越多,嘗試也越來越多。在許多的實踐中,越來越多的公司、企業開始陷入一種迷思:
- Serverless是不是就是FaaS?
- 是不是隻能用在一些 “計算任務” 場景?
- 是不是隻能在小程式等一些很小眾的研發場景才能用呢?
- 公司原來那麼多不同語言開發的存量應用是不是完全用不上?
- 是不是隻有像阿里巴巴這種體量的公司才能玩的轉?
一切好像又回到了原點,在上述的問題沒有解決之前,企業整合或應用 Serverless 架構的設想停在了業務落地的 “最後一公里”。說好的雲原生是雲端計算的未來呢?說好的雲原生可以改變開發者的世界呢?要知道,沒有規模,就不是雲端計算!沒有規模,就無法產生無法計算的價值!如果一個好的概念始終無法走進普羅大眾,那它可能只能被大眾束之高閣,敬而遠之。
回顧初心,技術是為了更好的商業創新
如果有一種方法,能夠讓開發者專注在商業應用邏輯的開發本身;能夠讓商業化應用不用擔心流量的增長而崩潰;能夠讓全球的服務保持一致;能夠讓每一個商業應用隨著流量的變化而動態調整資源的用量。那它一定是最接近理想狀態的:讓每一個商業創新都變的簡單,讓每一個靈感都變成可能!
今天,我們通過雲棲大會,非常興奮的向全球的開發者們傳遞一個資訊,具備規模化落地的真正的雲原生Serverless 應用研發時代已經到來,全面擁抱雲原生應用研發的拐點已經到來!無論是大中小微公司,無論什麼業務場景,無論什麼開發語言,無論是既有的存量應用還是新應用,無論多大使用者流量,無論全球服務有多少節點,都可以藉助阿里云云開發平臺提供的 Serverless 架構服務輕鬆落地。
在阿里云云開發平臺,您可以在無需重構的情況,將已有的NodeJS應用、Java應用、Python應用、PHP應用等,輕鬆平滑地遷移部署到雲原生Serverless架構,從此告別資源浪費,告別不靠譜的人肉流量估算人肉擴容的日子!您也可以將資源最大化地利用在自己的業務創新上,從此不再需要為團隊協同環境的搭建、團隊研發測試環境的搭建、應用高併發架構的搭建費時費力費錢!
阿里云云開發平臺所提供的全雲端Serverless研發架構服務,幫助企業和合作夥伴進行更好的商業創新。
只有更公平的創新環境才能讓創新者全力比拼創意
阿里云云開發平臺(https://workbench.aliyun.com )給開發者和研發團隊提供了完全基於「雲+瀏覽器」就能完成日常應用開發工作的環境,它的設計理念是使每天的應用研發生命週期也成為企業團隊大協同中的一環。雲開發平臺整合了阿里巴巴諸多自研自用的開發能力和開發工具,籍由強大的阿里研發生態,為開發者提供更大的協同研發可能。
通過以下阿里巴巴自研自用服務,阿里云云開發平臺讓所有的研發團隊不論大小,不論初創小微團隊還是行業龍頭企業,都能夠享受到阿里巴巴這種體量規模的線上應用研發協同能力,讓團隊不受時間、空間、和規模的限制,讓所有的創新創業都能基於一個更公平和開放的技術環境輕鬆啟動!
- 線上團隊:與阿里云云效企業組織互通,建立後即可使用阿里云云效提供的所有線上協同能力;提供4種團隊角色,完全對映本地研發團隊許可權設計,幫助您輕鬆實現團隊上雲;
- 線上CloudIDE環境:基於阿里巴巴前端委員會共建的 CloudIDE,與阿里巴巴內部使用的是同一套,在此基礎上,意味著您同時也可以享受到阿里巴巴內部的外掛生態,比如圖片智慧生成程式碼外掛服務 ImgCook;
- 線上程式碼託管服務:阿里雲自研程式碼託管服務 Codeup,企業級程式碼管理平臺,提供程式碼託管、程式碼評審、程式碼掃描、質量檢測等功能,全方位保護企業程式碼資產,幫助企業實現安全、穩定、高效的研發管理,支撐百萬級程式碼庫和數萬工程師協作,支援標準 git 操作,幫助您更方便的實現本地與雲端程式碼同步管理;
- 線上部署流水線服務:阿里雲自研部署流水線服務 Flow,從程式碼到交付上線僅需5分鐘,企業級、自動化的研發交付流水線, 提供靈活易用的持續整合、持續驗證、 持續釋出功能,幫助企業高質量、高效率的交付業務;
- 「專案」「任務」協作:「專案」是協作的基本單元,相當於釘釘或者微信的一個群。你的「專案」可以是一次大型會議,一個客戶專案,或者一個活動;你也可以為所在專案建立一個專案,用於追蹤日常工作;進入專案後,「任務」看板把左右事項公開透明的呈現出來,讓大家看見「誰」、在「何時」、要「做什麼」,隨時都可以掌握工作進度。任務是驅動雲效專案的最小操作單位。一個個任務,讓進展公開透明,讓溝通卓有成效;
- 知識庫:知識庫是一個為企業提供知識管理的服務,通過獨立的知識庫空間,結構化地組織線上協作文件,實現企業知識的積累和沉澱,促進知識的高度複用和流通
- *
只有更強大的 Serverless 架構服務才能讓商業無憂成長
為了幫助使用者提供一個無縫使用阿里雲服務的環境,阿里云云開發平臺會跟阿里雲的諸多雲產品進行整合,隨時為使用者的使用做好準備。您可以在雲開發平臺建立基於各種場景解決方案的應用,併為每個應用選用不同的雲服務。
雲開發平臺將雲原生 Serverless 領域實踐最多的服務,如函式計算、應用引擎、容器服務,結合應用研發部署生命週期所需的能力,設計提供了三套標準 Serverless 架構服務,滿足不同場景的應用研發部署需求,應用部署上線,流量高峰自動擴容,流量降低自動釋放資源,再也不怕當機。
- 函式計算型Serverless架構服務,這是一種羽量級Serverless應用架構服務,計算服務按請求量付費,對初創團隊非常友好,這種 IT 架構適合短期快速實現的業務場景,比如促銷活動,以及新業務試錯場景;
- Serverless應用引擎型架構服務,這是一種輕量級Serverless應用架構服務,計算服務按資源用量付費,對存量中小規模應用更加適合,這種架構模式,可以基於 MSE 微服務引擎,支援服務註冊,服務發現機制,結合阿里雲上各種中介軟體服務產品,能輕鬆構建一個複雜的系統架構。這種架構模式適合業務成熟定型,流量穩定的業務場景,也可以把業已成熟 IT 整合架構沉澱成雲開發平臺的公司級解決方案,讓新業務在這個基礎架構上敏捷迭代;
- Serverless容器型架構服務,這是一種專業級Serverless應用架構服務,計算服務按資源用量付費,規模化複雜度高的巨型應用首選;
- *
只有更少的約束才能讓研發團隊輕鬆實現業務升級
研發團隊考慮的更多的問題是如何從現有 IT 架構演進到 Serverless 計算架構之中。雲開發平臺構建了這一演進路徑,充分尊重使用者當前研發體系,支援在現有體系中整合 Serverless 構建部署功能。演進包含兩個層面,一個是存量應用的遷移,一個是新建 Serverless 應用和當前存量應用的互聯互通能力。
對於存量應用的遷移,雲開發平臺已經上架了基於 FC,SAE,ASK 的各種架構形式的遷移解決方案,且還在不斷豐富當中。比如,Java 語言的 Springboot 遷移方案,只需要把存量系統的 src 目錄和 pom.xml 拖到 CloudIDE 工程目錄,然後在 pom.xml 增加兩處約定配置,即可完成 Springboot 應用到 Serverless 應用的遷移,讓存量應用通過整合雲開發 CICD 的特性,快速升級獲得 Serverless 應用的所有優勢。
對於採用 Serverless 架構的新建應用,雲開發平臺支援研發團隊將公司原來已經在使用的阿里雲產品編排進新建的應用架構當中,讓新建的 Serverless 研發能夠延續之前的研發模式。雲開發平臺提供的 Cloud-Native 整合研發環境支援本地研發和線上研發模式,支援雲上測試環境,預發環境,正式環境三套環境的部署。
通過阿里云云開發平臺提供的各種主流應用遷移方案,不論是等待開發的新應用還是已經服務於使用者的線上業務,都可以通過阿里云云開發平臺提供的Serverless架構服務以及Serverless框架實現平滑的架構升級。無需改變,一切已變!
- 前端應用開發/遷移方案
- VUE
- React
- 原生及更多框架支援
- NodeJS 應用開發/遷移方案
- Express應用
- KOA應用
- Egg應用
- Next應用
- Nuxt應用
- Midway應用
- NodeJS原生及更多型別的應用
- Java 應用開發/遷移方案
- 輕量級 SpringBoot 應用
- 輕量級 SpringMVC 應用
- 專業級 SpringBoot 應用
- 專業級 SpringMVC 應用
- Python 應用開發/遷移方案
- Flask 應用
- Django 應用
- PHP 應用開發/遷移方案
- PHP前後端一體化應用
- 更多開發生態持續演進中
- *
只有更低的侵入才能讓本地研發鏈路全盤複用
對大多數企業的存量專案而言,將其直接遷移到雲開發平臺會遇到一些問題:線上開發不適應、工程倉庫數量多遷移麻煩、程式碼託管平臺的限制等等。因此對於企業級存量專案在保證不影響當前開發流程及開發者習慣的前提下整合阿里雲開發平臺就十分必要。在本地整合阿里雲開發平臺並不影響開發及測試,真正的變化在 CI/CD 階段。
阿里云云開發平臺根據大多數企業 CI/CD 的實踐總結了一套適用於絕大多數場景的方法論,並提供了具體的解決方案 —— 阿里云云開發平臺本地部署套件。它依託於企業的程式碼託管系統(常見的如Gitlab)及提供的 Hook 機制,並結合每個團隊的分支提交規範(gitflow)實現線下的 CI/CD。阿里雲開發平臺本地部署套件支援各種形式的整合,包括常用的 Jenkins、Gitlab CI 以及 Hook,同時提供測試環境、預發環境和正式環境的部署。
使用阿里雲開發平臺本地 CI/CD 部署套件的成本極低:
- 對於運維人員,僅需要在當前 CI/CD 邏輯中執行套件
- 對於開發者,僅需要配置阿里雲開發平臺的相關認證資訊
與阿里云云開發平臺與本地 CI/CD 整合,您建立的應用,就是雲原生Serverless應用!
只有更開放的生態才能讓商業創新再次加速
沒有規模,就不是雲端計算!沒有規模,就無法產生無法計算的價值!當我們能夠提供讓雲端計算開箱即用的服務,這意味著雲端計算開始真正變得像這個社會的“水電煤”,人們的工作、生活,哪裡需要,只需要開啟開關即可獲得服務,人們將更聚焦創新!
未來,阿里云云開發平臺將與與行業生態一起,共建行業應用的雲原生架構解決方案市場,讓更多的商業創新能夠實現二級加速!
總結
當我們再次回頭看,如果我們真正做到了:您有一個Idea,就能快速讓它從概念變成現實;您有一個服務,無論它的流量如何暴漲,都能輕鬆應對,無論它的流量如何變化,都能按量付費;您有一個研發團隊,無論成員身處何時何地,都能高效協同;那麼我們就真正做到了技術是為了更好的商業創新!