“晕乎乎的概念”:阿里云函数计算的“应用”又是个啥

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 为什么阿里云函数计算发布了这么多功能,只有少数的功能会伴随着体验活动一起来做运营?那么这个“应用”到底是何方神圣?他和现在“服务”,“函数”有啥关系?

作者:刘宇


曾经,有人问我:阿里云函数计算的服务和函数是啥关系?我相信至今还有小伙伴没有搞清楚他们之间彼此的联系。


这几天阿里云又正式发布了一个“概念”:应用。那么阿里云函数计算单单这个层面,就已经有了三层概念:函数-服务-应用,真的是让人有点晕乎乎的。
从另一个角度来看,关注阿里云 Serverless 的小伙伴,应该发现了两个事情:

  1. 阿里云函数计算不仅仅发了“应用”,还正在热推“应用”;
  2. 阿里云函数计算基于“应用”搞了一期体验活动:一键部署网盘;


为什么阿里云函数计算发布了这么多功能,只有少数的功能会伴随着体验活动一起来做运营?那么这个“应用”到底是何方神圣?他和现在“服务”,“函数”有啥关系?


从业务层级来简单说说


首先,我们要明确,现在很多概念都是抽象的,没有绝对的,尤其是资源和业务层级进行关联后。例如,函数对应的是啥?是一个函数,是一个方法,还是一个功能,一段业务,再或者是一个框架?其实并没有严格划分,所以我们本次的探索一定要基于一种“中庸之道”,一种“可意会难言传”的微妙感觉。


其次,因为所有的名词都是抽象的,对应的不同开发任务,不同业务可能有若干的差别,所以以下的探索仅仅是针对“绝大部分情况”而言的。


在说函数-服务-应用之前,我先放一张自己的想法:


1.png


通过这张图,大家不难发现,所谓的:


  • 应用:指的是一个稍微上一层的概念,他实际上是一个或多个 FaaS 资源与一个或多个 BaaS 资源的结合。例如,我的一个相册小程序后端,使用了一个函数计算服务(下面包括了三个函数),一个域名,一个存储桶,一个 NAS,一个 MySQL 数据库,一个 Redis 数据库,以及相对应的VPC资源,日志资源等,而这些,在一定程度上,可以认为是一个应用。因为就我个人角度而言,这些 FaaS 与 BaaS 资源联合,实现了一个完整的应用功能,或者业务能力;


  • 服务:这里的服务,在一定程度上指的是函数计算的服务,他实际上是一种对函数的分组,或者说是我们认为某些有关联且可以按照某些规则分组到一起的函数,只不过这里面的分组有一个特殊点,那就是他是带有一定配置的。换句话来说,函数计算的服务,是在使用指定日志存储、VPC、NAS 等资源的函数中,具有相同业务属性或者完成某些业务目标,具有相关联的函数集合。所以函数计算的服务实际上是“服务层面的配置”与“一系列的函数资源”;


  • 函数:这个相对来说可以认为是业务层面的一种资源;例如,上面所说的相册小程序后端业务中有三个函数:
  • 函数 1: 实现 REST 风格的 API,来为我的小程序提供若干的功能。例如对相册的增删改查、对照片的增删改查等;
  • 函数 2: 上传后的照片会被存储到对象存储,通过对象存储触发该函数,实现异步的图片压缩、图片的 Image Caption,图片中人物的聚类
  • 函数 3: 定时进行相对应资源进行清理/处理/校对/分析等;  


综上可以看到:函数,更多是一种资源,对应到我们业务应该是某种业务的粒度;服务,更多是一种函数的集合,并抽象出一定的配置;应用,更多业务和资源的一种结合。


“应用”到底有没有“价值”


函数计算已经有了服务和函数的概念,初步来看,函数和服务都是“一种资源”,那么已经有了这两层概念,再在上面增加一个“应用”的概念,并且应用更多不像是一种“资源”,而是一种“逻辑”,一种将“资源”关联起来的“逻辑”,那么应用的价值是什么?为什么要有应用,为什么要用应用呢?


其实从我的角度,“应用”在一定程度上是一种心智的升级,即从资源向业务逻辑升级的过程。除此之外,“应用”的出现也意味着之后Serverless架构所交付的可能就真的是“应用”了,这句话怎么理解呢?通过现在的函数计算“应用”来看,我们不难发现,现在的“应用”:


  1. 对应了一个代码仓库,往往可以粗略认为一个 repo 就是一个应用;
  2. 只需要把业务代码放在 github(push/release)就可以触发应用构建、发布(涉及到不同资源的发布等);
  3. 之后的监控、告警、多环境等功能,甚至是应用的整体删除,都可以在这个层面直接来做了;


所以,这就是“以应用纬度玩转 Sererless 架构”的一种思路,当然,不可否定的是,现在的“应用”还有很多功能在完善的过程中,但是我们也可以看到,他也正在更细腻,更精致,更有趣。


所以,应用在一定程度上,是一种更贴近业务层的全生命周期管理能力,是一种让开发者,让业务团队可以更关注自身业务逻辑,自身应用,自身功能的一种“思想升级”。相对比,传统资源层面的应用部署和管理,“应用”显得更为专业,更为清晰,可以在一个页面看到所有的资源,以及对这些资源进行适当的管理:


2.png


除此之外,应用一共被部署多少次,每次的结果/日志,什么样子的,都是可以直接查看的(也可以随时回滚):


3.png


在不久的将来,监控、告警、环境划分都将会以应用纬度进行体现,这将会是“业务开发的一个福音”,至少,我自己也在吃自己的狗粮,我是越吃越“上瘾”。


这个应用很“open”


阿里云函数计算所推出的“应用”,是一个非常有趣的能力,他有两种创建方法,一种是可以直接导入一个符合 Serverless Devs 规范的应用,另外一种则是通过已有的模板进行快速创建:


4.png


通过上面的图,我们不难发现,在应用中,有各种 web 框架、web 应用、人工智能案例可供参考。所以不难发现,应用一方面,在努力解决如何让 Serverless 可以快速 Onboarding 的“痛点”(上手/体验门槛比较高),另一方面,也在以更多的案例赋能开发者可以简单、快速、方便的上手 Serverless 架构(甚至有很多应用开箱即用)。


以头几天朋友让我帮忙写的一个 PNG 图片无损压缩的应用为例:


5.png


我作为一个社区贡献者,开发完应用,只需要填写一个官方的应用收录表单(开发应用与提交表单参考:https://github.com/Serverless-Devs/Serverless-Devs/discussions/439):


6.png


审核通过之后,就可以自动同步到应用中心,供更多人测试/使用。别人在使用的时候,也是简单的点两下:


1. 创建


7.png


2. 部署


8.png


3. 体验


9.png


整个过程“行云流水”,非常顺利。目前,应用中的模板有包括 AI 目标检测、OCR 识别等在内的数十个社区贡献的应用:


10.png


所以这里说 Open,也是在指,阿里云函数计算的“应用”,实际上是和社区开源项目 Serverless Devs 呼应的,换句话来说,阿里云函数计算拥抱开源已经拥抱到“把自己当作开源的子集”,换句话来说就是,这个“应用”的所有案例/模板,实际上是 Serverless Devs 应用中心的另一种表现:努力开源、贡献力量、开源建设、开放生态,这才是和开发者一起玩转 Serverless 架构的态度,当然,我也非常希望有更多的开发者,可以和我们一同玩转 Serverless 架构,现在真的有越来越多的社区项目出现,我相信这只是开始。




1分钟 Serverless 部署个人网盘


1 分钟自建一个真网盘

1 步拿到百变指尖陀螺!👇


11.jpg


本场景基于 Serverless 应用中心 + 阿里云函数计算 + 开源企业级在线文件管理系统 KodBox 打造,让你仅用 “几次” 点击,拥有一个可随意保存资源、不限速下载、多端使用、与朋友共享资源……的专属个人网盘。


时间:5 月 9 日 - 5 月 20 日(工作日期间)

奖品:每日 200 个百变指尖陀螺

建议:PC 端体验


点击一键部署个人网盘!

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
20天前
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
303 0
|
1天前
|
人工智能 边缘计算 Kubernetes
阿里云边缘容器云帮助AI推理应用快速落地
2024全球分布式云大会·北京站,阿里云徐若晨演讲内容分享
11 0
|
10天前
|
监控 Serverless API
阿里云函数计算的工作原理与事件驱动模型密切相关
【4月更文挑战第17天】阿里云函数计算的工作原理与事件驱动模型密切相关
64 4
|
10天前
|
消息中间件 运维 Serverless
阿里云函数计算是一种FaaS(Function as a Service)云服务
【4月更文挑战第17天】阿里云函数计算是一种FaaS(Function as a Service)云服务
54 3
|
11天前
|
自然语言处理 Cloud Native Serverless
通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验
近日,通义灵码正式进驻函数计算 FC WebIDE,让使用函数计算产品的开发者在其熟悉的云端集成开发环境中,无需再次登录即可使用通义灵码的智能编程能力,实现开发效率与代码质量的双重提升。
95471 4
|
11天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
46 0
|
13天前
|
消息中间件 存储 JavaScript
阿里云IOC物联网异步处理基础概念
该内容介绍了异步处理基础和消息队列的相关概念。首先,同步处理指任务完成后才能执行其他操作,而异步则允许任务并行执行,不阻塞程序。异步能提高系统并发性和响应性,但也增加复杂性和资源消耗。接着,提到了消息队列,包括生产者、消费者、队列、broker和topic等概念,并指出在IoT中,设备作为生产者发送消息到特定topic,消费者从队列获取数据。最后,简要介绍了AMQP协议,它是用于应用程序间消息传递的开放标准,常用于分布式系统和物联网,如RabbitMQ和Apache Qpid。课程将以Apache Qpid为例接收IoT数据。
125 6
阿里云IOC物联网异步处理基础概念
|
16天前
|
存储 安全 Serverless
用 Github Actions 自动部署阿里云函数计算 FC
介绍了如何配置阿里云函数计算(FC)与GitHub Actions集成以实现自动部署。首先在阿里云创建函数,然后在项目根目录创建`s.yaml`文件配置Serverless Devs。接着在GitHub仓库中设置 Secrets 存储阿里云账号信息,并创建名为`aliyun-fc-deploy.yaml`的工作流文件来定义GitHub Actions。当代码推送到`master`分支时,Actions会自动部署到函数计算。最后,成功配置后,提交代码会触发自动部署,并可在GitHub Actions和阿里云控制台查看部署状态。
409 3
|
16天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
20天前
|
弹性计算 前端开发 Java
使用阿里云 mqtt serverless 版本超低成本快速实现 webscoket 长链接服务器
使用阿里云 MQTT Serverless 可轻松实现弹性伸缩的 WebSocket 服务,每日成本低至几元。适用于小程序消息推送的 MQTT P2P 模式。前端需注意安全,避免 AK 泄露,采用一机一密方案。后端通过调用 `RegisterDeviceCredential` API 发送消息。示例代码包括 JavaScript 前端连接和 Java 后端发送。
190 0

热门文章

最新文章

  • 1
    Serverless 应用引擎产品使用之在函数计算中,数据库访问失败如何解决
    6
  • 2
    Serverless 应用引擎产品使用之在阿里云函数计算中发现没有NAC(Native Application Component)选项,且无法自己上传MOD(模块)如何解决
    7
  • 3
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,调用了FC函数但是没有执行或者报错,并且在FC函数后台也看不到调用记录日志如何解决
    7
  • 4
    Serverless 应用引擎操作报错合集之在阿里函数计算中,sd部署启动报错CAExited 报错信息“operation not permitted”如何解决
    5
  • 5
    Serverless 应用引擎操作报错合集之在阿里函数计算中,SD Controlnet Depth 运行过程中出现错误“urllib3 v2.0 only supports OpenSSL 1.1.1+”如何解决
    7
  • 6
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,laravel zip包使用示例的start.sh脚本启动时出现错误代码如何解决
    7
  • 7
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,服务器调用FC函数时出现 "[Errno -3] Temporary failure in name resolution)" 错误如何解决
    5
  • 8
    Serverless 应用引擎操作报错合集之在Serverless 应用引擎中,部署过程中遇到错误代码如何解决
    9
  • 9
    Serverless 应用引擎操作报错合集之在 Serverless 应用引擎中,遇到“没法通过 head 传递灰度标识”如何解决
    8
  • 10
    Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
    12
  • 相关产品

  • 函数计算