開發與維運

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

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

1.gif

一切皆代碼的革命

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

2.webp

1.革命:用代碼控制編譯打包
Pipeline as code:代表技術 Jenkins Pipeline[1]

3.webp

2.革命:用代碼控制服務器
Machine as code:代表技術 Docker

4.webp

3.革命:用代碼控制服務器集群
Server cluster as code:代表技術 K8s

5.webp

4.革命:用代碼控制基礎資源
Infrastructure as code:代表技術 Terraform

6.webp

當一切皆代碼,A=B 可得 B=A,代碼即服務時代就來了。

1.gif

代碼即服務時代的到來

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

7.webp

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

8.webp

9.webp

3.主流技術對新時代的擁抱
以 Spring[5]的發展為例,從 SpringBoot 開始,不斷對環境控制進行集成,直到 SpringNative,已經可以直接構建鏡像。

10.png

1.gif

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

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

11.webp

2.微服務引擎務[7]:信任標準平臺,將部分控制權交給平臺

12.webp

3.函數計算[8]:信任標準平臺,將大部分控制權交給平臺

13.webp

1.gif

代碼即服務下的研發平臺戰爭

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

14.webp

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]

15.webp

• AWS 推出產品 Proton,提供全配置代碼的服務和環境模板,將平臺建設能力和複用能力開放給平臺開發人員,讓普通開發人員更專注業務實現。

16.webp

1.gif

阿里雲開發平臺

1.阿里雲開發平臺,通過整合雲原生產品和雲效,完成了雲原生開發閉環

17.png

2.雲開發平臺,構建應用級別的雲原生應用,預設標準雲架構

18.webp

3.雲開發平臺,應用共享

19.webp

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

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

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

1.gif

結語

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

參考資料
• [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:
Performance of running Spring Boot as AWS Lambda functions
視頻資料:阿里雲 Serverless Developer Meetup 上海站

Leave a Reply

Your email address will not be published. Required fields are marked *