基于 Go 语言开发 Serverless 云原生应用
本文字数:5166字
精读时间:10分钟
也可在5分钟内完成速读
00
前言
大家好!我是阿里云容器服务团队的冬岛,2016 年阿里巴巴开始全面容器化,我负责双十一链路应用的容器化 CAAS 平台。承担双十一应用的扩容、缩容、升级以及灰度发布等所有和容器相关的平台支撑。2017 年开始基于 Kubernetes 在公有云上做相关的产品,直到今天在做 Knative。本次分享分为四部分:
01
云计算第一性原理
第一性原理顾名思义就是最根本的机制是什么,在讨论云原生之前先来思考一下为什么企业要上云、为什么技术人员要学习面向云的编程思维以及咱们应该怎么看待云这件事儿。
02
云原生应用
应用 Serverless 编排
03
Knative 应运而生
04
Demo 演示
05
问答环节
-
Knative 是如何实现的按百分比的流量切分,并且把切分的流量转到不同的 Revision 上去的?以及这个流量切分和 Kubernetes 的 Ingress 有什么异同吗? -
Knative 和 OAM 大概是怎样的一个关系?
-
Knative 0.10 及之前的版本 Gateway 使用的是 Istio Gateway 实现的,计划从 0.11 版本开始支持基于 Envoy 的原生实现。不过无论是 Istio Gateway 还是基于 Envoy 原生的实现其实都是使用的 Envoy 的能力。Envoy 做 HTTP 流量的百分比切分。Knative 中每一个 Revision 都有一个唯一的 Kubernetes Service, Envoy 负责转发把匹配条件的请求转发到 Revision 的 Kubernetes Service 上,从而实现了 Ingress 流量的百分比切分。和 Kubernetes 原生的 Ingress 相比,原生的 Ingress 只能根据 Domain、path 或者 Header 这种维度进行切分,而 Knative 基于 Envoy 可以进行更细力度的控制,可以精确到 1% 的流量比例。 -
OAM 是一套开放的应用模型,OAM 可以有 Kubernetes 的实现也可以有 Knative 的实现。OAM 的价值在于跨不同的底层编排系统统一应用模型。
-
Knative 是符合解决冷启动速度的问题的 -
刚才你的演讲中也提到了团队角色分工的问题,那么如果企业上云运维团队或者 SRE 团队应该在如何在上云的模式下定位自己的角色?
-
Serverless 其实是要分成两层的。第一层是 IaaS 资源的按需使用和按量分配。第二层是对应用的 Serverless 编排。云原生技术栈中对 IaaS 资源的管理主要是 Kubernetes 这一层的能力,比如前面志敏分享的 ASK 其实已经解决了 IaaS 按量分配的问题,Knative 这一层更多的是聚焦在应用的 Serverless 编排上面。应用的 Serverless 编排主要体现在:流量的接入和流量分配、不同 Revision 的管理以及弹性。这三者完美的结合在一起形成一个闭环才能给应用提供 Serverless 编排。应用 Serverless 编排在扩容或者缩容的时候自动申请或者释放 IaaS 资源 -
如果企业上云并不代表企业就不需要 SRE 团队。相反在企业上云的过程中 SRE 团队的价值也会被放大。企业在上云之前其实 SRE 团队本身是企业的成本部门,SRE 本身不带来业务价值,但是需要公司支出成本。但是在企业上云之后 SRE 其实是帮助企业节省成本的部门。SRE 需要判断哪个云厂商的什么产品合适本公司的业务、需要判断使用产品的什么规格、是包年包月还是按量付费的方式使用。以及上云的过程中使用什么方案实现多云、混合云的能力,等等这些都是 SRE 发挥巨大价值的地方。
-
是否可以根据机器自身的状况进行扩缩容?比如 CPU? -
非 HTTP 协议的服务是否可以基于 Knative 进行管理?
重磅活动预告
Gopher Meetup Plus 深圳站即将开启。来自腾讯、华为云、OPPO、广发证券、平安科技的超豪华讲师阵容将带来 Go 开发领域的一线实践经验分享,更有 Asta 现场空降,尽在1月4日,腾讯大厦!
报名请戳:阅读原文
欢迎联系 GoCN
国内最具规模和生命力的
Go 开发者社区
讲师 GopherMeetup/GopherChina 演讲 |
|
|
投稿 展示个人/团队原创文章 |
聪明又努力的 Gopher 们,你“在看”我吗?