被解救的代码 - 代码即服务时代来了!

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 人类对自由的追求从未停止,我们用战斗获得民族自由,我们用代码获得双手自由,同时代码作为服务器的奴隶,也开始蠢蠢欲动,革命已经开始,当代码翻身做主,作为开发者的我们又该如何适应新时代的到来?

人类对自由的追求从未停止,我们用战斗获得民族自由,我们用代码获得双手自由,同时代码作为服务器的奴隶,也开始蠢蠢欲动,革命已经开始,当代码翻身做主,作为开发者的我们又该如何适应新时代的到来?

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] Azure DevOps:
https://azure.microsoft.com/en-us/services/devops/#customer
• [17] Google DevOps:
https://cloud.google.com/devops?hl=zh-cn
• [18] AWS DevOps:
https://aws.amazon.com/cn/devops/
• [19] 阿里云云效:
https://devops.aliyun.com/
• [20] 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 上海站
相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
机器学习/深度学习 数据可视化
如何解决大语言模型的幻觉问题
如何解决大语言模型的幻觉问题
|
机器学习/深度学习 XML Oracle
关系型数据库Oracle发展历程
【7月更文挑战第5天】
510 5
|
Java 网络安全
zookeeper的环境搭建和配置
本文介绍了如何在多台节点上搭建和配置Zookeeper环境。内容包括Zookeeper的下载、解压、环境变量配置、配置文件修改、zkdata目录创建、myid文件设置,以及将Zookeeper及其配置文件复制到其他节点。还提供了运行测试的命令,包括启动、状态检查和停止Zookeeper服务。
zookeeper的环境搭建和配置
|
JavaScript 前端开发
「Vue3系列」Vue3 事件处理
在 Vue 3 中,事件处理与 Vue 2 非常相似,但有一些细微的改进和新的语法。Vue 3 仍然使用 `v-on` 指令来处理 DOM 事件,或者更常见的是使用其简写形式 `@`。
975 0
|
关系型数据库 MySQL 分布式数据库
"Can't connect to MySQL server" 错误
"Can't connect to MySQL server" 错误
2597 2
|
TensorFlow API 算法框架/工具
解决AttributeError: module ‘keras.utils‘ has no attribute ‘plot_model‘
解决AttributeError: module ‘keras.utils‘ has no attribute ‘plot_model‘
508 0
解决AttributeError: module ‘keras.utils‘ has no attribute ‘plot_model‘
Latex,WPS公式编辑器,输入花体字母(在mathtype输入花体损失函数L)
Latex,WPS公式编辑器,输入花体字母(在mathtype输入花体损失函数L)
4429 0
|
消息中间件 算法 大数据
Kafka Partition Leader选举机制原理详解(上)
Kafka Partition Leader选举机制原理详解
734 0
|
Linux Shell 开发工具
Linux:开机启动顺序启动顺序及配置开机启动
Linux:开机启动顺序启动顺序及配置开机启动
1087 0