链接:https://mp.weixin.qq.com/s/MmjaP94p-O8LhNCyOqDS8A
文档:基于 Go 语言开发 Serverless 云原生应用

传统架构

image.png

云基础设施

云上的应用,还是云下的应用,其实应用依赖的这些核心要素都没有变。
这 7 个核心要素,这 7 个要素中日常运维这一块其实不是强依赖的,日常运维这一块对业务的稳定性影响极大,但是这并不是业务跑起来的核心链路,没有这些业务也能跑,而其他的几块都是核心链路。
image.png

云原生技术栈

  • 最右边的中间件这一块,这里面有数据库、Redis 以及消息中间件组件。而这一块其实是应用代码里面直接调用的,并且这里包含的所有这些能力都有标准的协议,比如无论是使用 SQL Server 还是使用 MySQL,咱们程序里都可以使用 SQL 规范进行操作。这部分被标准化了。
  • 计算、存储和网络这三个核心要素已经被 Kubernetes 这一层统一了。aliyun Serverless Kubernetes(简称 ASK),在 ASK 中已经实现了计算、存储和网络资源的无服务器化。
  • 还有两块:CICD 和应用托管。

image.png

Serverless

Serverless 其实不单单是无服务器,还包括应用本身的编排。这就是应用编排这一层的价值所在。

应用 Serverless 编排

Kubernetes 已经提供了 Pod 的资源调度,而应用层想要用好这个能力其实是有很多事情需要处理的。

  • 弹性
    • 缩容到零
    • 突发流量
  • 灰度发布
    • 如何实现灰度发布
    • 灰度发布和弹性的关系
  • 流量管理
    • 灰度发布的时候如何在 v1 和 v2 之间动态调整流量比例
    • 流量管理和弹性是怎样一个关系
    • 当有突发流量的时候如何和弹性配合,做到突发请求不丢失

      Knative