作者 | 王铎(都铎)
来源 | Serverless 公众号

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

一、一切皆代码的革命(Everything As Code)

代码一直是服务器中的囚徒,然而革命已来,看代码和如何一步一步掌控环境,走向服务。

1. 革命:用代码控制编译打包

Pipeline as code:代表技术 Jenkins Pipeline

2. 革命:用代码控制服务器

Machine as code:代表技术 Docker

3. 革命:用代码控制服务器集群

Server cluster as code:代表技术 K8S

4. 革命:用代码控制基础资源

Infrastructure as code:代表技术 Terraform

当一切皆代码,A=B 可得 B=A,代码即服务时代就来了。

二、代码即服务时代的到来

1. 传统时代的代码仓库

传统的代码仓库说明中,"运行环境安装向导"文档是必备的,以 SpringBoot 代码为例,自带安装向导文档。

2. 新时代的代码仓库

参考代码仓库 aws-lamda-spring-boot2,包括 springboot 运行到 aws 的 lamda 需要的全部代码。

3. 主流技术对新时代的拥抱

以 Spring 的发展为例,从 SpringBoot 开始,不断对环境控制进行集成,直到 SpringNative,已经可以直接构建镜像。

三、代码即服务下的云原生架构

1. 容器服务:用代码控制一切

2. 微服务引擎:信任标准平台,将部分控制权交给平台

3. 函数计算:信任标准平台,将大部分控制权交给平台

四、代码即服务下的研发平台战争

在代码即服务的时代,各大厂商都在建立自己的云上研发闭环,谁做好云上的开发平台,谁就能抓住下一带云原生开发者的心。

1. 代码托管之战:得代码者的天下

  • 微软宣布收购 GitHub
  • 谷歌投资 Gitlab
  • AWS 自建私有仓库 CodeCommit
  • 阿里云企业级代码托管平台 Codeup

2. 在线开发之战

  • 微软整合 VS Code 和 Github,推出 Github Codespace
  • 谷歌另辟蹊径,做线下 IDE 插件 Cloud Code,对接 Google Cloud
  • AWS 在线云 IDE:Cloud 9
  • 阿里云 IDE:DevStudio

3. 在线构建 DevOps 之战

  • Azure DevOps
  • Google DevOps
  • AWS DevOps
  • 阿里云云效

4. 研发体系发展

  • 在代码即服务时代,Git 作为代码版本管理软件,加上 WebHook,可以轻松地管理整个代码的运行生命周期,GitOps 应运而生。GitHub 吸 收GitOps 思想,推出 GitHub Actions。

  • AWS 推出产品 Proton,提供全配置代码的服务和环境模板,将平台建设能力和复用能力开放给平台开发人员,让普通开发人员更专注业务实现。

五、阿里云开发平台

1. 云开发平台,通过整合云原生产品和云效,完成了云原生开发闭环

2. 云开发平台,构建应用级别的云原生应用,预设标准云架构

3. 云开发平台,应用共享

  • 云开发平台和天猫精灵,钉钉团队合作,整合小程序的前后端一起化开发部署,解决小程序云和用户云不能打通问题,给小程序加上用户云能力。
  • 云开发平台应用可以在团队内共享,团队内的技术交流,再也不仅仅是 clone 代码。
  • 云开发平台市场共享,后续可以合作方的技术方案直接在市场上构建,让云服务提供商再也不用现场帮助用户构建和维护云环境。

六、结语

诚挚邀请大家加入云开发平台,一起共建服务百万阿里云开发者阿里云的云上研发平台。

引用:

  1. Performance of running Spring Boot as AWS Lambda functions

被解救的代码 - 代码即服务时代来了!相关推荐

  1. Hadoop 2.0 Yarn代码:心跳驱动服务分析

    当RM(ResourcesManager)和NM(NodeManager)陆续将所有模块服务启动,最后启动是NodeStatusUpdater,NodeStatusUpdater将用Hadoop RP ...

  2. .Net之代码优先gRPC服务

    介绍 该方式适用于多个服务之前都是**.Net项目**的场景 优点: 可以在 .NET 服务器和客户端之间共享 .NET 服务和数据协定类型. 无需在 .proto 文件和代码生成过程中定义协定. 操 ...

  3. C# 代码重启windows服务

    我想直接用C#代码重启windows服务,经过试验,没有问题,贴出来保存收藏! C#代码: ServiceController service = new ServiceController(&quo ...

  4. 如何让代码为微服务做好准备

    组件/模型分离 第一步是将整个代码库分成组件和领域模型.组件包含大部分业务逻辑,领域模型包含数据.状态和领域模型逻辑.如果您在建筑层面将它们分开会有所帮助--组件依赖于模型,但反之则不然. 什么是组件 ...

  5. 微服务时代之2017年五军之战:Net PHP谁先死

    微服务时代之2017年五军之战:Net PHP谁先死 1.引言 其实我一直是个懒人,开博也有好几年了,但是一直懒得写文章,主要怕打字麻烦, 手机都是用讯飞语音输入的, 可惜博客里面很多专业性的词语,用 ...

  6. 微服务时代之2017年五军之战

    其实我一直是个懒人,开博也有好几年了,但是一直懒得写文章,主要怕打字麻烦, 手机都是用讯飞语音输入的, 可惜博客里面很多专业性的词语,用讯飞也不大好,另外无论在家还是在公司,开个语音一本正经的叽叽叽, ...

  7. 周志明论架构之道:从SOA时代到微服务时代

    SOA 架构(Service-Oriented Architecture) 面向服务的架构是一次具体地.系统性地成功解决分布式服务主要问题的架构模式. 为了对大型的单体系统进行拆分,让每一个子系统都能 ...

  8. 微服务时代下崛起的 TestOps 工程师

    本文来自作者 居 在 GitChat 上分享「微服务时代下崛起的 TestOps 工程师」,「阅读原文」查看交流实录 「文末高能」 编辑 | 伊健 前言 微信中有些上次参加源创会微服务专场的很多朋友, ...

  9. 微服务时代--service meshAGW

    转载自:https://zhuanlan.zhihu.com/p/61901608 Service Mesh Service Mesh作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统 ...

最新文章

  1. LCD: 2D-3D匹配算法
  2. Java 23种设计模式有趣见解、总结
  3. 支付宝接口调用问题快速通道
  4. HashMap的负载因子为什么默认是0.75
  5. linux系统中cache清理/释放命令
  6. OpenGL顶点阵列对象
  7. 优先级调度算法实现_一篇讲透嵌入式操作系统任务调度
  8. 浩然GG和女朋友的游戏 (数学,规律)
  9. 华为集齐 AI 龙珠,“召唤神龙”为期不远
  10. Everest 0.6不能保存3D桌面特效的解决方案
  11. 【转】7本免费的Java电子书和教程
  12. Linux 创建并且运行Django项目
  13. 每周一喂丨图说WiFi安全
  14. Android Remote Administrator Tool ——SpyNote 6.5 Released
  15. KeyError: [] not found in axis_最IN拉花潮改“出圈”,欧拉白猫拓创无限可能_搜狐汽车...
  16. Java基础:volatile详解
  17. 计算机视觉与图形学-立体匹配专题-金字塔立体匹配网络
  18. Chrome 技术篇-未安装的crx插件源码查看,crx类型文件解压方法
  19. 非模态对话框和模态对话框_创建
  20. 如何参与到开源优测-积微速成计划任务

热门文章

  1. 1.21 Lambda表达式
  2. 1.17 项目实例:模仿斗地主洗牌发牌小游戏
  3. 1086 Tree Traversals Again (25 分)【一般 / 建树 树的遍历】
  4. 【PAT乙级】 1010 一元多项式求导 (25 分)
  5. dfs解决选或不选问题
  6. Linux网络环境配置
  7. 在2003 server上部署DNS服务器
  8. BeanUtils的方法
  9. C语言局部变量与全局变量
  10. video 满屏显示_HTML5 video进入全屏和退出全屏的实现方法