阿里云-Serverless-探究
2021-12-21 18:10:39 90 举报
AI智能生成
阿里云函数流的研究
作者其他创作
大纲/内容
前言
1.Serverless - 无服务器的计算服务(狭义为以函数进行部署,资源的分配可以细粒度到函数的维度)
2.部门对于平台的选型->华为云《函数工作流》
https://www.huaweicloud.com/product/functiongraph.html
优点
函数以弹性、免运维、高可靠的方式运行,按函数实际执行资源计费,不执行不产生费用
缺点(个人认为)
与平台强耦合,对java不够友好
八、九月份目标
1.跑个demo.
helloWord
触发器
定时器
免费
APIG
部门未购买
kafka
VPC
EPS-GZ-VPC-01(10.211.0.0/18)
EPS-AZ02-SIT-MIDDLEWARE-01(10.211.13.0/24)
委托名称:vpc-test
kafka配置
hq-eps-dmw-core-sit-kafka
topic-serverless-test
入门博客
https://blog.csdn.net/qq_33591055/article/details/106737548
2.集成aop,mysql,redis
(SpringBoot项目迁移)
(SpringBoot项目迁移)
博客
https://bbs.huaweicloud.com/forum/thread-11618-1-1.html
处理依赖包
本地安装依赖
mvn install:install-file -Dfile=D:\software\java\huaweiSDK\RunTime-1.1.2.jar -DgroupId=RunTime -DartifactId=RunTime -Dversion=1.1.2 -Dpackaging=jar
mvn install:install-file -Dfile=D:\software\java\huaweiSDK\ServerlessSpringBoot2-1.0.0.jar -DgroupId=ServerlessSpringBoot2 -DartifactId=ServerlessSpringBoot2 -Dversion=1.0.0 -Dpackaging=jar
mvn install:install-file -Dfile=D:\software\java\huaweiSDK\ServerlessSpringBoot2-1.0.0.jar -DgroupId=ServerlessSpringBoot2 -DartifactId=ServerlessSpringBoot2 -Dversion=1.0.0 -Dpackaging=jar
上传华为云仓库
pom和jar需要同名
ServerlessSpringBoot2-1.0.0.jar
ServerlessSpringBoot2-1.0.0.pom
<groupId>com.huawei.fgs.ext</groupId>
<artifactId>ServerlessSpringBoot2</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<artifactId>ServerlessSpringBoot2</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
依赖包zip上传至OBS
https://itim-ms-hq-orsp-sit-obs-orspbucket.obs.cn-south-1.myhuaweicloud.com/test-serverless-9ca3c0b9-ce60-4d57-8067-e1309c32e07e.zip
触发器
定时器
注入的Service空指针
代码图示
APIG
kafka
使用kafka触发器
测试
kafkaTestReqVo
The specified resource was not found.
kafkaTestVo
userService 空指针
com.example.fg.ExampleFgApplication.kafkaTest
3.了解函数编排技术: 1.亚马逊的Step,华为云的 Yuan Kong
小结
1.华为云对kafka触发器的支持还是不很完善,没有demo,也没有API,碰到问题,华为云技术支持客服处理结果也就只是提供一个APIG触发器的demo供参考。
2.提供的APIG触发器demo,技术栈还是使用JDBC,如果想要与主流技术栈接轨,需要做大量的重构开荒。
3.而且目前部门里面没有能直接上serverless的项目,所以个人感觉没有必要专门购买APIG服务来继续研究serverless
【订单中心】项目
1.使用到华为云的APIG服务
2.主要是以接口的形式对外提供服务
3.甚至不用持久化数据,纯函数计算的服务
4.综上所述,所以订单中心天生适合上serverless。也许会困难重重,但是非常渴望能够完成该项目上serverless验证是否真的能节省成本,进一步为其他项目或模块上serverless奠定基础。
十、十一月份目标
1.线程池,压测并发
2.集成事务、AOP
3.尝试把某些耗资源的接口放到函数工作流中测试
阿里云 - Serverless
0基础Serverless入门课
https://developer.aliyun.com/learning/topic/serverless
初识Serverless
挑战与机遇
冷启动问题
解决办法:单实例多并发等
各个云厂商的标准不一致问题
阿里开源的Adapter,为兼容做努力
应用场景
异步的并发,组件可独立部署和扩展
应对突发或者服务使用量不可预测
短暂、无状态的应用,对冷启动时间不敏感
需要快速开发迭代的业务,因为无需提前申请资源,因此可以加快业务上线速度
头部云厂商的产品以及优势
AWS - LAMBDA
实时文件处理、实时流处理、机器学习、loT后端、移动应用后端、Web应用程序
阿里云 - 函数计算
Web应用、实时数据处理、AI推理、视频转码
华为云 - 函数工作流
实时文件处理、实时数据流处理、Web/移动应用后端、人工智能场景
腾讯云 - 云函数
实时文件处理、数据ETL处理、Web/移动应用后端、AI推理预测
阿里Serverless架构图
架构模式及演进
技术维度
计算、数据存储、消息通信
衡量维度
可运维性、安全性、可靠性、可扩展性、成本
阿里云的FaaS架构设计
基于ECS的FaaS
ECS/Container+负载均衡的劣势
1.多应用配比部署资源浪费
2.镜像升级替换繁琐
3.弹性扩容缩容速度慢
架构图
多租户多应用部署的支持
快速水平弹性扩容
镜像分发下载
容灾、防止雪崩
基于神龙高密部署的FaaS
高密部署
技术难题
1.单机多租户隔离安全风险
2.高并发下启动速度问题
3.单机多租户VPC网络打通以及安全隔离问题
4.技术容灾方案
总结
未来的发展与挑战
Serverless下的微服务实践
前言
微服务将曾经单体时代的(通常是在编译时确定的)静态通信关系,通过拆分编程了动态运行时,
因此服务之间的通信与协同需要单独管理,而这样一个座位每个服务的通用功能,通常微服务框架帮我们进行了抽象与实现。
但是不同的微服务框架的实现方式是不一样的,默认情况下是,不同框架之间的服务无法直接调用,而类似上述异构的情况,正式云原生想要支持与解决的,并且 容器、Pod这些抽象就很好的提供了一个解决思路
流量治理
请求驱动
图示
请求驱动模型
图示
尝试解决原微服务的问题:
1.请求管理与请求处理耦合,当大量请求到达微服务实例时,已无法分发处理任务以实现负载均衡
2.不同微服务框架都得自己实现一套请求管理逻辑
1.请求管理与请求处理耦合,当大量请求到达微服务实例时,已无法分发处理任务以实现负载均衡
2.不同微服务框架都得自己实现一套请求管理逻辑
Serverless=请求标准化+请求路由+处理管理
发展进程
图示
2015年短暂顶峰,后来就沉静了,因为大家会发现函数式开发与大家原来的开发模式有较大的出入,而且比较适合重前端(请求的处理)而不是长时间运行的应用,所以传统的应用架构就不太可能享受到Serverless带来的弹性以及成本带来的红利
2017年,阿里云的SAE公测,更适合不想改变开发模式的用户使用
市场概况
市场概况
容器与K8S自身复杂性
微服务架构的痛点 - 稳定性
理想状态-Serverless应用引擎
微服务体系在不同时代的实践
Serverless架构在前端应用领域的价值
前端的发展历史
1990年第一个web浏览器诞生
1991年万维网诞生,标志前端技术的开始
1993年 HTML、CSS 1996年、JavaScript 1995年
1994年 网景公司的第一款商业浏览器 Navigator
前端的应用场景变迁
2009年nodejs之前都是主要专注于web浏览器页面
PC+移动web+小程序、手机App、IoT、服务端
Serverless又给前端带来了什么
Serverless跟前端的关联在什么地方
关联
能力加强
Serverless跟做客户端的开发有什么关系
关联
带来新的客户端访问方式
Serverless带给web开发的改变是什么
传统web站点
开发流程
痛点
耗时长
从设计开发测试部署上线往往经历数周甚至数月才能上线
访问体验一般
SEO,站点加速等都需要单独专项做,一般新手不容易搞定
更新迭代慢
每次更新重新部署上线的周期长,更新内容如果是动态的,研发时间也会比较长
现代化Web站点构建
建站演示
准备工作:
1.www.serverless-devs.com 下载开发工具
2.申请注册阿里云账号,开通阿里云函数计算产品(免费)
1.www.serverless-devs.com 下载开发工具
2.申请注册阿里云账号,开通阿里云函数计算产品(免费)
下载 start-jamstack - deploy执行
点击 VScode小图标 - npm i - npm start - npm run build
回到工具的配置中心,重新点击 deploy执行
不需要特别频繁更新的动态数据,可以通过 cli kv put [键名称] [文件所在的本地相对路径]
如何通过函数使用数据库
工具 - 配置信息 - 右侧代码中 service.api下面的内容放开
需要单独对api这个服务进行单独部署 - deploy执行
36-41行代码放开,并且把proxyUrl替换成项目的
总结
Serverless架构在软件工程的研发实践
JAMStack
是什么
优势
原理
能力
Serverless时代 DevOps的最佳方式
部署工具
支持任意厂商任意云端服务
丰富的应用模板
DevOps简析
Serverless开发运维体验
传统标准的电商系统架构
SAE整体解决方案
高效闭环的DevOps体系
部署态最佳实践
一键启停
应用发布三板斧
金丝雀发布
全方位可观测
在线调试
权限隔离
端云联调
云原生体系下Serverless的探索与实践
探索
Serverless简介
弹性的价值
Iaas弹性伸缩
k8s弹性伸缩
应用画像弹性伸缩
弹性模式
弹性发展方向
Serverless应用引擎简介
效率
分析
原地升级
镜像预热
镜像加速
Dragonwell加速
自动扩缩
能力
架构
场景丰富度
稳定性
实践
伸缩准备
配置
过程
可观测
客户案例
Serverless在阿里集团的大规模落地
阿里云 - Serverless 技术图谱
建立Serverless思维
架构的演进
单体架构
初级单体
用户 -> 服务器 ->数据库
水平伸缩
用户 -> 负载均衡 -> 服务器(多个) -> 数据库
微服务
用户 -> 网关 -> 子模块+数据库,子模块+数据库 ...
云原生
基于云产品架构
应用生命周期托管
价值
1.不用关心服务器
2.自动弹性
3.按实际资源使用计费
4.更少的代码,更快的交付速度
架构与选型
Serverless计算= FaaS + BaaS
更多serverless计算形态涌现,FaaS类服务出现预留形态
越来越多的serverful托管服务出现Serverless形态
收藏
0 条评论
下一页