开发者学堂课程【Serverless 常见架构模式:Serverless 技术选型】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/842/detail/14012
Serverless 技术选型
内容简介:
1. 概览
2. 函数计算
3. Serverless 应用引擎
4. Serverless Kubernetes
5.总结
1、概览
随着技术引进 Serverless 已经不再是仅仅只面向函数的一种,而是变得非常丰富,包括面向函数的函数计算,还有面向应用的 Serverless 产品,Serverless 应 用引擎,以及面向容器的 Serverless 产品,ServerlessKubernetes,帮助用户能把自己的不同类型的业务,或者面向不同企业的使用习惯提供 Serverless 形态,帮助用户实现 Serverless 的价值。
分别针对面向函数、面向应用、面向容器介绍。
2、函数计算:
最常见的产品形态,在阿里云上有一种产品叫函数计算。他的使用如下图,开发者需要编写代码,然后将代码上传到函数计算,到这一步对开发者来说,工作已经完成,也不会产生计费。函数真正运行且计费需要触发来触发的,触发的方式有很多,可以通过函数计算提供的 API/SDK 进行,也可以通过一系列事件源触发,
比如阿里云的 OSS、日志产品,触发之后会根据调用频率去弹性的弹出实例来应对客户的需求,后会按照弹性频率的情况进行付费,也就是 Serverless 服务模式,会根据用户使用资源的量进行付费,在这个过程中,开发者有丰富的编程理念的体验,同时还提供特殊的运行环境,在这种运行环境下,用户可以使用任何语言去实现其他的函数,然后上传到函数计算中使用,开发者需要关注代码,而之后网络配置的管理,基础资源的管理都不用开发者关注。
通用 Serverless 计算平台
云端事件源无缝集成
自动弹性伸缩,按量付费
只需专注业务逻辑开发即可
调运方式:同步调用,异步调用
丰富的编程语言: nodejs 、python、 php、 C#;自定义,可以使用任何语言,比如 go。
函数计算典型场景:
1.各种编程语言的 WebAPP 或者 WebAPl 相关开发群体
Java:Spring Boot 传统 web 应用一键迁移!
PHP:WordPress, larval... 小程序后端!
Python:Django, Flask... 阿里云 API 云市场!
C#:ASP. Net Core WebApp and WebApi
Custom:Go,C/C++, Ruby, Lua...
2.对计算力有很大的弹性需求:AI推理、音视频等多媒体处理、文档转换,网页截图等处理。
3.事件驱动:其他阿里云服务作为事件源触发函数.简化变成模型、各种 webbook 回调、定时任务、很好的粘合剂。
函数计算-核心优势
1.专注业务逻辑开发、免运维
只需专注业务代码编写,无需关心任何底层基础设施及软件网络配置,借助函数版本/别名功能实现灰度发布或 A/B 测试
2.VM 级别租户隔离
身份认证、访问控制、数据安全、运行时安全、网络安全方面对用户的应用进行全方位的保护
3.3AZ 高可用架构
接管了基础设施的管理工作,系统能自动处理基础设施层的各种错误
4.毫秒级自动弹性伸缩
短时间内处理大量数据文件,或者在请求流量快速增加的同时仍能保持稳定的延时,是明显波峰波谷应用最佳终结者
5、按需付费,只需为代码实际运行消耗的资源付费,题材要可以优化负载较为平稳业务的财务成本。
3、Severless 应用引擎:
SAE:首款面向应用的 Serverless PaaS 平台
实现了 Serverless 架构+微服务架构的完美结合,支持多种微服务征渠、多种部署渠道(UII、云效、插件等)、多种部署方式(war、jar、镜像)核心场景主要面向在线应用:微服务应用、web 应用、多语言应用等。
平台提供 Kubemetes 集群来隔离应用,保证应用的独立,同时 SAE 还对微服务应用提供特殊的支持,内置了简单的微服务管理,包括服务注册发现、配置管理、负载均衡、限流降级、服务安全等,使微服务管理降低门槛。
强化开发者工具: Cloud toolkit 插件、云效 RDC、代码库、镜像仓库等。
SAE 典型场景:
( 低门槛微服务架构转型!各种语言应用快速上云/搬站!
云市场、云开放平台!)
1.各种语言的应用快速上云/搬站
Java;webapp,微服务应用零容器基础快速上云
PHP、Nodejs、Python、Go、C++等单体应用上云
期望本地一键部署到云端
物联网、传统行业等客户上云/搬站时,对交付效率有极致需求,期望得到一站式开箱即用的 PaaS 体验。
2.灵活&弹性使用计算资源
电商大促应对峰值流量
智慧安防行业火警监控、烟感报警等,要求极致弹性效率
在线教育、医疗政府、证券等行业固定潮汐使用计算资源
大中型企业多套开发测试环境,固定时段使用计算资源,希望能节省成本
3.低门槛微服务架构转型
中小企业快速构建云上微服务
开源自建 Spring Cloud/Dubbo 应用为了稳定性兜底,计划迁云
单体应用微服务改造
4.集成方
云市场、云开放平台、小程序云魔笔等期望集成应用 PaaS 底座能力
外部垂直行业 ISV 集成,打造某垂直领域的 Serverless 方案。
产品核心优势:
1.零代码改造,即享免运维体验
基于 Serverless 某构,屏蔽底层 IaaS 运维和 X8s1 留节。用户零代码改造平滑迁移企业在线应用。
2.精益成本,不为闲置浪费
按需使用,按分钟计费,无需长期保有固定iaaS资源。
3.自动弹性
支持定时弹性和监控弹性,应对应用突发场景下秒级弹性伸缩,保障业务SLA。
4. 零基础,开箱即用微服务和K8s能力
完美支持各种主流微服务框架、支持镜像/war/jar三种部署方式。
5.高安全
底层基于安全容器运行应用,网络通过 VPC 隔离,双重保障应用运行时安全。
6.服务集成,一站式体验
自动集成阿里云上的基础设施类产品;SLB、SLS、NAS 等和微服务生态周边产品:ACM、ARMS、AHAS,提供一站式的解决方案。
4、Serverless Kubernetes:
容器->容器编排-> Serverless 容器编排:
1.ESC 中运行容器
Process:部署单台 ECS、部署容器、接入 EIP/SLB。
Pain:ECS 宕机、容器扩容、ECS 机器运维。
2. 容器编排系统
Process:选择多台 ECS,创建 k8s 集群、部署 Deployment /Service 应用、使用标准化容器编排能力
Pain:集群容量规划、ECS 机器运维、机器长时间闲置,资源利用率不高。
3.Serverless 容器编排系统(ASK)
Process: 创建 k8s 集群(无ECS节点)、部署 Deployment /Service 应用、使用标准化容器编排能力。
Happy:无需集群容量规划,无限容量、无需 ECS 机器运维、无需担心机器资源闲置、无需管理基础设施。
Serverless Kubernetes 典型场景:
场景一:免运维的应用托管
无需管理基础设施,专注应用开发
灵活弹性、按需使用
结合预留实例券大幅降低计算成本
支持原生[ Aubernetes 生态,包括 Helm Chart 部署等
场景二:突发流量的弹性扩容
系统关键模块弹性扩容,应对突发流量,使得端到端扩容速度缩短70%
端到端的伸缩性能达到 30 秒 500 个容器实例
ASK 独享 Master,免运维、按需使用
ECI 镜像快照使得“零秒”镜像下载
场景三:大数据计算任务
使用/C 提供的极致弹性能力支撑 Spark/Presto 大数据计算
提交作业前无需预留任何资源,“无限”容量,按需使用,高并发,高峰期10000+pod运行。
有效降低客户计算成本
可使用/C做在线容灾
场景四:CI/CD
使用 ASK 运行 Jenkins/Gitlab-Runner,按需创建 Job,极大降低计算成本。
部署阶段无缝对接,无需事先申请资源,实现应用的快速测试和预发。
Serverless 容器:关注应用而非关注基础设施
1.基于容器:敏捷部署、安全隔离、生态连接、高移植性
2.无服务器管理:无需OS和系统软件维护、、无需节点容量规划、无需升级服务器、零基础设施运维
3.弹性扩容:无限“容量、秒级扩容、基于容器扩容
4.按需付费:没有闲置资源、更高资源利用率、总体更低计算成本
5总结:
在 Serverless 领域中,不仅是函数计算和应用类型,而是面向不同的对象群体和使用习惯,这里有面向函数的函数计算,面向服务的 Serverless 引擎,以及面向容器的 Serverless Kubernetes,用户可以根据自己的使用习惯、场景、应用类型选择所用的 Serverless 产品。