OpenFunction v1.0.0 发布:集成 WasmEdge,支持 Wasm 函数和更完整的 CI/CD

OpenFunction 是一个开源的云原生 FaaS(Function as a Service,函数即服务)平台,旨在帮助开发者专注于业务逻辑的研发。今天,我们非常高兴地宣布 OpenFunction 迎来了一次重要的更新,即 v1.0.0 版本的发布!

In this update, we continue to focus on providing developers with more flexible and powerful tools, and have added some new features on this basis. This release
本次更新中,我们继续致力于为开发者们提供更加灵活和强大的工具,并在此基础上加入了一些新的功能点。其中,该版本集成了 WasmEdge 以支持 Wasm 函数;我们还对 OpenFunction 的 CI/CD 功能进行了增强,提供了相对完整的端到端的 CI/CD 功能;除此之外,我们还在这个版本中新增了从本地代码直接构建函数或应用的镜像的功能,让开发者可以更加便捷地进行代码发布和部署。

与此同时,我们也在大力优化 OpenFunction 的性能和代码质量,使其更加稳定高效。

以下是本次版本更新的主要内容:

集成 WasmEdge,支持 Wasm 函数

WasmEdge 是一个轻量级、高性能和可扩展的 WebAssembly 运行时,适用于云原生、边缘和去中心化应用程序。它为 Serverless 应用程序、嵌入式功能、微服务、智能合约和物联网设备提供支持。

OpenFunction 现在支持构建和运行以 WasmEdge 为运行时的 Wasm 函数或应用。WasmEdge 成为 Docker、Containerd 和 CRI-O 之外的容器运行时的新选择。

Wasm 函数示例

cat <<EOF | kubectl apply -f -
apiVersion: core.openfunction.io/v1beta1
kind: Function
metadata:
  name: wasmedge-http-server
spec:
  workloadRuntime: wasmedge
  image: openfunctiondev/wasmedge_http_server:0.1.0
  imageCredentials:
    name: push-secret
  build:
    dockerfile: Dockerfile
    srcRepo:
      revision: main
      sourceSubPath: functions/knative/wasmedge/http-server
      url: https://github.com/OpenFunction/samples
  port: 8080
  route:
    rules:
      - matches:
          - path:
              type: PathPrefix
              value: /echo
  serving:
    runtime: knative
    scaleOptions:
      minReplicas: 0
    template:
      containers:
        - command:
            - /wasmedge_hyper_server.wasm
          imagePullPolicy: IfNotPresent
          livenessProbe:
            initialDelaySeconds: 3
            periodSeconds: 30
            tcpSocket:
              port: 8080
          name: function
EOF

借助 WasmEdge 引擎,开发者可以使用多种支持 Wasm 的语言和开发框架来编写及运行函数。

如何构建和运行 Wasm functions,请参考官方文档 Wasm Functions

更完整的 CI/CD

之前,用户可以使用 OpenFunction 将函数或应用程序源代码构建为容器镜像,然后直接将构建的镜像部署到底层的同步或异步 Serverless 运行时,而无需用户干预。

但是,OpenFunction 不能在函数或应用程序源代码发生更改时重新构建镜像并重新部署它,也不能在镜像更改时重新部署它(例如手动构建和推送镜像或在其他函数中构建镜像)。

从 v1.0.0 开始,OpenFunction 在新的组件 Revision Controller 中增加了检测源代码或镜像变更的能力,并且可以在检测到变更后触发镜像重新构建或重新部署新的镜像。Revision Controller 的能力包括:

  • 检测 GitHub、GitLab 或 Gitee 中的源代码变更,然后在源代码变更时重新构建并重新部署新的镜像。
  • 检测包含源代码的镜像(Bundle Container Image)的变更,然后在该镜像变更时重新构建和重新部署新的镜像。
  • 检测函数或应用程序镜像变更,然后在函数或应用程序镜像变更时重新部署新的镜像。

更好的 CI/CD 功能确保了代码能在不同的环境中高效运行,使用者可以在开发和部署过程中更好的控制版本和代码质量,同时也为使用者提供了更好的使用体验。

此处请参考官方文档 CI/CD

从本地源代码构建函数

目前,OpenFunction v1.0.0 支持根据本地的源代码构建函数或应用。只需要将本地源代码打包到容器镜像中,并将此镜像推送到容器注册表即可完成构建。以下为操作方法。

假设你的源代码在 samples 目录中,你可以根据以下 Dockerfile 来构建包含源代码的镜像。

FROM scratch
WORKDIR /
COPY samples samples/

然后如下操作:

docker build -t <your registry name>/sample-source-code:latest -f </path/to/the/dockerfile> .
docker push <your registry name>/sample-source-code:latest

推荐使用空镜像 scratch 作为基础镜像构建包含源代码的镜像,非空基础镜像可能会导致源代码拷贝失败。

另外还需要定义字段 spec.build.srcRepo.bundleContainer.image

apiVersion: core.openfunction.io/v1beta1
kind: Function
metadata:
  name: logs-async-handler
spec:
  build:
    srcRepo:
      bundleContainer:
        image: openfunctiondev/sample-source-code:latest
      sourceSubPath: "/samples/functions/async/logs-handler-function/"

sourceSubPath 是包含源代码的镜像中源代码的绝对路径。

其他的改进和优化

除了上述的主要变化,该版本还有以下更改和增强:

  • OpenFunction
    • 核心 API v1alpha2 已弃用并删除
    • 将 sha256 添加到服务镜像
    • 将构建源信息添加到函数状态
    • 将 Shipwright 升级到 v0.11.0
    • 将 Knative 升级到 v0.32.0
    • 将 Dapr 升级到 v1.8.3
    • 将 Go 升级到 v1.18
  • functions-framework-java 发布 V1.0.0
    • 在一个 pod 中支持多个函数
    • 支持自动发布
  • Builder
    • 在一个 pod 中支持多个函数
    • 将默认的 Java 框架版本更新为 1.0.0
  • revision-controller 发布 v1.0.0(功能见上文)

以上就是 OpenFunction v1.0.0 的主要功能变化,在此十分感谢各位贡献者的参与和贡献。如果您正在寻找一款高效、灵活的云原生函数开发平台,那么 OpenFunction v1.0.0 将是您的绝佳选择。

了解更多关于 OpenFunction 和本次版本更新的信息,欢迎访问我们的官方网站和 Github 页面。

本文由博客一文多发平台 OpenWrite 发布!

原文链接:https://www.cnblogs.com/kubesphere/p/17225716.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:OpenFunction v1.0.0 发布:集成 WasmEdge,支持 Wasm 函数和更完整的 CI/CD - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 揭秘《虚拟化与云计算》

      本文选自《虚拟化与云计算》一书作者序       当我们写作者序时,本书的撰写已接近尾声,整个写作历程耐人回味。本书的作者大多是长期从事分布式计算和数据中心管理的研究人员,随着对虚拟化技术认识的逐渐加深,我们更加相信虚拟化技术将会在不远的将来给数据中心管理带来深刻的变革。怀着这样一份对未来的憧憬,我们于2005年在 IBM中国研究院正式成立了虚拟化技术研…

    云计算 2023年4月12日
    00
  • 云计算与信息安全第八堂课20210427

    云数据在哪里?云数据在社会生活的方方面面,淘宝网、京东、新华网、铁路12306、王者荣耀等等。 撞库攻击      黑客攻击:特洛伊木马等等。 云安全威胁:一、对国家安全的威胁,NSA出现重大的员工窃取数据事故、乌克兰电网两次大规模停电事件;二、对企业的威胁,暗网市场知名供应商双旗抛售多家中国互联网巨头数据,数据条数达到10亿以上。这些数据来源于网易及其下属…

    云计算 2023年4月11日
    00
  • C# WinForm自动更新程序之文件上传操作详解

    下面是关于“C# WinForm自动更新程序之文件上传操作详解”的完整攻略,包含两个示例说明。 简介 在C# WinForm自动更新程序中,文件上传操作是非常重要的一步。在文件上传操作中,我们需要将本地文件上传到服务器上,以便进行版本比较和更新操作。在本文中,我们将详细讲解如何实现文件上传操作。 实现步骤 以下是在C# WinForm自动更新程序中实现文件上…

    云计算 2023年5月16日
    00
  • 华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

    摘要:本文介绍了华为云对冷启动优化这一业界难题的探索之路,创新提出了基于进程级快照的优化方案。 作者信息—— 子游:华为元戎高级工程师 平山:华为云中间件 Serverless 负责人 琪君:华为元戎负责人 Key Takeaways 冷启动 (Cold Start)一直是Serverless领域面临的优化难题之一,华为云创新提出了基于进程级快照的冷启动加速…

    云计算 2023年4月13日
    00
  • 据调查 企业半年之后才考虑升级到Windows 10企业版

    据调查,许多企业在Windows 10发布后仍然使用Windows 7或Windows 8操作系统,甚至需要半年或更长时间才考虑升级到Windows 10企业版。以下是详细的攻略: 1. 了解Windows 10企业版的优势 在考虑升级到Windows 10企业版之前,企业需要了解Windows 10企业版的优势。以下是一些示例说明: 1.1. 安全性 Wi…

    云计算 2023年5月16日
    00
  • OpenCV视频流Python多线程处理方法详细分析

    OpenCV视频流Python多线程处理方法在使用OpenCV处理视频流时,使用多线程可以有效提高视频流的处理速度。具体方法如下: 导入所需模块 import cv2 import threading import time 定义视频流线程类 class VideoStreamThread: def __init__(self, video_path): s…

    云计算 2023年5月18日
    00
  • 基于云边协同架构的五大应用场景革新

    从概念到场景落地,边缘云加速革新,颠覆体验,拟造丰沛生态。 边缘云的概念自明确以来已有四个多年头。 什么是边缘云? 边缘云,即把公共云的能力放在离数据发生端和消费端最近的地方,提升数据的处理效率,承载更多场景,同时降低数据的搬运成本。 在边缘云的演进过程中,阿里云提炼出边缘云技术发展的三大价值驱动力,通过云边协同的方式,推动企业数字化发展,为用户带去更多的可…

    云计算 2023年4月13日
    00
  • 云计算环境下安全关键技术研究

    摘 要 云计算已发展成为大数据应用、跨平台应用的主要解决方案,而虚拟化、大规模、开放性等特征,带来了更多安全威胁和挑战,通过分析云计算安全防御模型架构,分别对云计算安全的技术特征、运行特征、保障模式等方面进行了研究,提出了云计算安全能力软件定义、保障服务化、服务智能化、防御动态化等关键技术,支撑云安全防护灵活部署、高效保障、快速响应,提升云计算环境多样化安全…

    云计算 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部