云原生应用开发平台 CAP
云原生应用开发平台 CAP是阿里云提供的一站式应用开发及应用生命周期管理平台,内置丰富的Serverless和AI应用模板、先进的开发者工具、企业级的应用管理功能,无论您是个人开发者还是企业级开发者,都能让您聚焦到业务场景,快速构建云上应用并且实现持续迭代,大幅提升研发、部署和运维效能。
申请方式:云原生应用开发平台(CAP)
申请后界面如下,1~3个工作日内会通过审核,等待即可:
产品优势
极低成本模型托管服务:基于函数计算Serverless GPU算力模型服务,平均成本降低90%。
流程式开发先进工具:基于云工作流 CloudFlow提供针对AI场景的Studio开发能力,效率提升99%。
一键极速创建 AI 应用:提供高质量的场景应用模板,面向不同用户,支持一键急速创建AI应用。
灵活组装,二次开发:提供丰富的云服务集成及自定义插件能力,快速组装应用,沉淀业务资产。
产品架构
云原生应用开发平台 CAP产品功能由如下几部分组成:
应用层:由模板中心提供大量开箱即用的应用模板,您可一键部署,立即体验。
部署层:由函数计算、云工作流、数据库 RDS 版等云产品提供资源部署服务。
开发层:由函数计算、云工作流、Serverless Devs 提供流程式编程、组装式开发能力。
模型层:由云原生应用开发平台 CAP提供内置的模型体验、模型管理服务。
云原生应用开发平台 CAP的项目由一个服务或多个服务组成,组装式研发更高效灵活。
快速上手
首次进入云应用开发平台,需要先进行授权操作,因为这里是体验为主,所以先勾选的【管理所有阿里云资源的权限】
授权完成后点击返回控制台
庐山真面目如下~:
我们先大致的看一看,CAP中总共提供了42个模板,涵盖了Web 应用、AI 应用、ETL数据处理应用、音视频处理应用、文件处理应用、游戏、流程式开发等多个领域,可谓是全方位满足了不同类型的开发需求
点击创建项目,可以新建空白模板或是直接使用上述官方提供的模板
新建空白模板
点击项目页面,创建空白项目
填写项目信息,点击创建按钮
可以新建的服务类型如下
我们先以Web服务为例,看一下如何快速新建应用
新建Web服务
点击创建后进入如下界面:
有几个重点如下:
部署后服务名称不可修改
运行环境可以按需求进行调整
点击预览,选择确定部署
当部署完之后,点击访问地址
点击地址访问,可以看到当前web服务已经部署成功
我们看一下日志,在此期间究竟做了哪些操作呢?
当命令刚执行时,调用函数计算FC
然后检查当前使用的Serverless CD引擎版本、插件 @serverless-cd/s-setup是否安装
插件 @serverless-cd/s-setup 开始运行,获取到AccessKeyID,AccessKeySecret
执行命令初始化生产环境,设置默认环境为生产环境,并成功完成
创建日志资源成功,并提示在YAML配置文件中替换 logConfig 配置
尝试创建函数 rapid-potato,多次重试后仍然无法解析域名 rapid-potato.fcv3.1821062035675322.cn-hangzhou.fc.devsapp.net 的CNAME记录
获取域名并生成新的域名,提醒用户 .devsapp.net 域名仅用于学习和测试,建议绑定自定义域名
提示用户域名已变更,需要确认后再进行部署
不知道是不是我的个人错觉,其实这一块和函数计算FC还有计算巢的功能极其相似,我们接下来试试新建其他的服务类型
新建模型服务
选择第二个新建模型服务
可以根据需要选择底座大模型
显存默认为48GB,不使用时最好勾选【闲置模式】
模型服务创建成功后,在服务详情页面,单击API 地址跳转至API调用示例页面,单击测试进行相关模型试用
测试完成结果如下:
新建异步任务、新建函数
这两个好像和新建web服务功能一致,所以在此不过多赘述了
甚至可以看到这三个logo都是一摸一样的
新建流程编排
这个可以说是云原生应用开发平台 CAP的核心能力了,该服务能为开发者提供一种图形化、低代码的方式来设计、执行和管理复杂的业务流程,极大地提升了开发效率与应用灵活性
单击目标项目,在项目详情页面,单击左上角的新建服务,选择并单击流程编排类型,跳转至创建服务页面
在创建流程编排服务页面,选择地域和流程模式,然后单击保存配置并进入 CloudFlow Studio
关于支持的标准模式和快速模式的差异介绍如下
确认开通云工作流 CloudFlow
选择创建工作流
默认使用空白画布,输入工作流名称
在左侧导航栏选择并拖拽一个状态节点(API)或流程节点至画布,如图中InvokeFunction API节点
云工作流(CloudFlow)支持的流程节点类型,即系统控制节点如下:
云工作流(CloudFlow)支持的状态节点类型,即支持集成的服务类型如下:
单击画布上的组件,右侧参数配置区会显示该组件的配置选项,根据需求填写参数或选择设置
流程编排中最重要的是,如何在多个节点间进行数据的传递,对于具体的流程节点而言,都会存在一个输入和一个输出:
节点输入:流程编排过程中,可以通过系统表示式$Context.Current.Input访问当前节点的输入,快捷表达式为$Input;
节点输出:流程编排过程中,可以通过系统表示式$Context.Current.Output访问当前状态的输出,快捷表达式为$Output。当然并不是在所有的地方都能使用$Output,只有当该节点产生了输出,才能通过$Output 访问节点输出,仅仅在OutputConstructor作用域中可以使用$Output;
通常,在流程编排过程中,都需要针对不同的集成调用进行参数适配,为了实现节点数据构造能力,每一个节点都提供了数据输入构造和输出构造的能力,需要用户通过输入配置(InputConstructor)和输出配置(OutputConstructor)进行数据传递的灵活定制,满足流程编排集成需求。在参数构造中,支持常量和表达式;如果需要使用表达式,那么需要在参数的左值末尾添加 .$,这种情况下,流程引擎会对右侧出现的表达式变量进行渲染。
使用平台内置的调试功能,输入模拟数据,运行流程以检查逻辑是否正确。
如果有问题,可以点击查看调试结果或查看日志详情
完成测试后,单击保存并部署正式发布流程
可以在监控页签,跟踪流程实例的执行状态,收集性能指标,及时发现并解决运行时问题
新建数据库服务
数据库服务会拉起阿里云的数据存储产品来提供数据存储服务。数据库服务与函数服务、流程编排服务等共同组成一个完整的项目,是项目中重要的一部分。
其中默认提供的数据库服务类型如下:
点击新建数据库后,设置数据库密码,选择交换机及VPC:
有时会提示说【您选择的“交换机”所在可用区中,此类型数据库资源已售罄,请选择其他可用区。】,那就更换区域继续部署
有点奇怪的是,部署时日志一直显示实例不存在,重新部署一次也失败了
但是我回到RDS中,发现实例是存在的,不过卡在了创建中,好吧
看了一下创建任务进度,仅仅只有3%,感觉是卡住了
过了半个小时,进度到33%了,还好,虚惊一场,等待任务转完即可
好不容易执行完,结果CAP直接报错了
报错内容是:
实例 XXXXX 在15分钟内未能准备好。
错误发生在 @serverless-cd/engine 模块的 index.js 文件第524行,具体是在子进程的匿名回调函数中。子进程在退出时触发了错误事件。
这就有点迷了
查了一下文档,发现文档中都是用的已有模板来演示的,暂时不明白为啥了
使用已有模板
进入探索,选择已有模板
点击立即部署
左侧为服务配置,点击函数角色,一键授权
点击部署项目
此时可能会碰到其他权限不够的情况,重复上述步骤授权,最后点击确认部署即可
等待约15分钟,终于部署完成了
点击WebUI,访问该域名
可以看到部署成功的界面如下
回到云原生应用开发平台 CAP,我们可以直观的对各部分组件进行查看
总结和建议
不得不说,推出这个平台的人多多少少是有点天才的。虽然有点像函数计算,但是功能又比函数计算丰富得多。做AI项目的话,又能采用Workflow来定制流程,整合到一起后,还可以直接对数据库实例进行监控和管理。此外,这个平台还提供了全面的 DevOps 工具链,支持从代码提交到自动化的持续集成和持续交付(CI/CD),极大地简化了开发和运维流程。同时,其强大的安全性和合规性功能也为企业提供了可靠的保障,确保应用在云上的安全性和稳定性。所以,CAP 不仅是一个强大的开发平台,更是一个集成了多种先进技术和工具的生态系统,能够满足不同规模和类型项目的需求。
但是我个人目前有个比较担心的问题就是,这种情况下会不会导致功能过于重复或者造成CAP平台整体的臃肿?感觉的到设计该平台的出发点是好的,但是后续如何在保证阿里云其他产品活跃度的情况下推出CAP平台,是一个需要仔细权衡的问题。
回到问题上,这次体验总的还是比较顺利的,但是中途确实也算是有一点小插曲
在直接部署数据库服务的时候出了两三次问题,并且提示为:
实例 XXXXX 在15分钟内未能准备好。
错误发生在 @serverless-cd/engine 模块的 index.js 文件第524行,具体是在子进程的匿名回调函数中。子进程在退出时触发了错误事件。
这个问题后来不了了之了,也没有继续深究(不过在通过模板部署时是正常的)
就我来看,CAP平台确实是在推动应用开发与管理方面有着巨大潜力,它不仅仅是一个简单的应用托管平台,而是一个集成了Serverless计算、AI应用模板、先进开发者工具和企业级应用管理功能于一体的综合平台。这种集成化的设计理念,使得CAP能够为开发者提供从应用构建、部署到运维管理的全方位支持,极大地提升了开发效率和应用的质量,相信CAP将继续发挥其独特的价值,引领云原生应用开发的新潮流。