天天看點

被解救的代碼 - 代碼即服務時代來了!

人類對自由的追求從未停止,我們用戰鬥獲得民族自由,我們用代碼獲得雙手自由,同時代碼作為伺服器的奴隸,也開始蠢蠢欲動,革命已經開始,當代碼翻身做主,作為開發者的我們又該如何适應新時代的到來?

被解救的代碼 - 代碼即服務時代來了!

一切皆代碼的革命

代碼一直是伺服器中的囚徒,然而革命已來,看代碼和如何一步一步掌控環境,走向服務。

被解救的代碼 - 代碼即服務時代來了!

1.革命:用代碼控制編譯打包

Pipeline as code:代表技術 Jenkins Pipeline[1]

被解救的代碼 - 代碼即服務時代來了!

2.革命:用代碼控制伺服器

Machine as code:代表技術 Docker

被解救的代碼 - 代碼即服務時代來了!

3.革命:用代碼控制伺服器叢集

Server cluster as code:代表技術 K8s

被解救的代碼 - 代碼即服務時代來了!

4.革命:用代碼控制基礎資源

Infrastructure as code:代表技術 Terraform

被解救的代碼 - 代碼即服務時代來了!
當一切皆代碼,A=B 可得 B=A,代碼即服務時代就來了。
被解救的代碼 - 代碼即服務時代來了!

代碼即服務時代的到來

1.傳統時代的代碼倉庫

傳統的代碼倉庫說明中,"運作環境安裝向導"文檔是必備的,以 SpringBoot 代碼[2]為例,自帶安裝向導[3]文檔。

被解救的代碼 - 代碼即服務時代來了!

2.新時代的代碼倉庫

參考代碼倉庫 aws-lamda-spring-boot2[4],包括 springboot 運作到 aws 的 lamda 需要的全部代碼。

被解救的代碼 - 代碼即服務時代來了!
被解救的代碼 - 代碼即服務時代來了!

3.主流技術對新時代的擁抱

以 Spring[5]的發展為例,從 SpringBoot 開始,不斷對環境控制進行內建,直到 SpringNative,已經可以直接建構鏡像。

被解救的代碼 - 代碼即服務時代來了!
被解救的代碼 - 代碼即服務時代來了!

代碼即服務下的雲原生架構

1.容器服務[6]:用代碼控制一切

被解救的代碼 - 代碼即服務時代來了!
2.微服務引擎務[7]:信任标準平台,将部分控制權交給平台
被解救的代碼 - 代碼即服務時代來了!
3.函數計算[8]:信任标準平台,将大部分控制權交給平台
被解救的代碼 - 代碼即服務時代來了!
被解救的代碼 - 代碼即服務時代來了!

代碼即服務下的研發平台戰争

在代碼即服務的時代,各大廠商都在建立自己的雲上研發閉環,誰做好雲上的開發平台,誰就能抓住下一帶雲原生開發者的心。

被解救的代碼 - 代碼即服務時代來了!

1.代碼托管之戰:得代碼者得天下

• 微軟宣布收購 GitHub[9]

• 谷歌投資 Gitlab[10]

• AWS 自建私有倉庫 CodeCommit[11]

• 阿裡雲企業級代碼托管平台 Codeup[12]

2.線上開發之戰

• 微軟整合 VS Code 和 Github,推出 Github Codespace[13]

• 谷歌另辟蹊徑,做線下 IDE 插件 Cloud Cod[14],對接 Google Cloud

• AWS 線上雲 IDE:Cloud 9[15]

• 阿裡雲 IDE:DevStudio[16]

3.線上建構 DevOps 之戰

• Azure DevOps[17]

• Google DevOps[18]

• AWS DevOps[19]

• 阿裡雲雲效[20]

4.研發體系發展

• 在代碼即服務時代,Git 作為代碼版本管理軟體,加上 WebHook,可以輕松地管理整個代碼的運作生命周期,GitOps 應運而生。GitHub 吸 收GitOps 思想,推出 GitHub Actions[21]。

被解救的代碼 - 代碼即服務時代來了!
• AWS 推出産品 Proton,提供全配置代碼的服務和環境模闆,将平台建設能力和複用能力開放給平台開發人員,讓普通開發人員更專注業務實作。
被解救的代碼 - 代碼即服務時代來了!
被解救的代碼 - 代碼即服務時代來了!

阿裡雲開發平台

1.阿裡雲開發平台,通過整合雲原生産品和雲效,完成了雲原生開發閉環

被解救的代碼 - 代碼即服務時代來了!
2.雲開發平台,建構應用級别的雲原生應用,預設标準雲架構
被解救的代碼 - 代碼即服務時代來了!
3.雲開發平台,應用共享
被解救的代碼 - 代碼即服務時代來了!

• 雲開發平台和天貓精靈,釘釘團隊合作,整合小程式的前後端一起化開發部署,解決小程式雲和使用者雲不能打通問題,給小程式加上使用者雲能力。

• 雲開發平台應用可以在團隊内共享,團隊内的技術交流,再也不僅僅是 clone 代碼。

• 雲開發平台市場共享,後續可以合作方的技術方案直接在市場上建構,讓雲服務提供商再也不用現場幫助使用者建構和維護雲環境。

被解救的代碼 - 代碼即服務時代來了!

結語

誠摯邀請大家加入雲開發平台,一起共建服務百萬阿裡雲開發者阿裡雲的雲上研發平台。

參考資料

• [1] Jenkins Pipeline:

https://www.jenkins.io/doc/book/pipeline/ • [2] SpringBoot 代碼: https://github.com/spring-projects/spring-boot • [3] 安裝向導: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/getting-started.html • [4] aws-lamda-spring-boot2: https://github.com/galovics/aws-lambda-spring-boot2 • [5] Spring: https://spring.io/ • [6] 容器服務: https://www.aliyun.com/product/cs/ask • [7] 微服務引擎: https://www.aliyun.com/product/aliware/product/sae • [8] 函數計算: https://www.aliyun.com/product/fc • [9] GitHub: https://github.com/ • [10] Gitlab: https://about.gitlab.com/ • [11] CodeCommit: https://aws.amazon.com/cn/codecommit/ • [12] Codeup: https://codeup.aliyun.com/ • [13] Github Codespace: https://github.com/features/codespaces/ • [14] Cloud Code: https://cloud.google.com/code • [15] Cloud 9: https://aws.amazon.com/cn/cloud9/ • [16] DevStudio: https://ide.aliyun.com/ • [17] Azure DevOps: https://azure.microsoft.com/en-us/services/devops/#customer • [18] Google DevOps: https://cloud.google.com/devops?hl=zh-cn • [19] AWS DevOps: https://aws.amazon.com/cn/devops/ • [20] 阿裡雲雲效: https://devops.aliyun.com/ • [21] GitHub Actions: https://github.com/features/actions

引用  Performance of running Spring Boot as AWS Lambda functions:
https://arnoldgalovics.com/performance-of-running-spring-boot-as-aws-lambda-functions

視訊資料:阿裡雲 Serverless Developer Meetup 上海站