Refunc:Kubernetes原生Serverless平台

Refunc:Kubernetes原生Serverless平台

refuncCloud Native Function-as-a-Service Platform On Kubernetes.项目地址:https://gitcode.com/gh_mirrors/re/refunc

项目介绍

Refunc是一个基于Kubernetes的Serverless平台,旨在为用户提供一个高效、灵活且易于使用的无服务器计算环境。通过Refunc,开发者可以轻松地将他们的函数部署到Kubernetes集群中,并利用其强大的扩展性和自动化管理功能。

Refunc Architecture

项目技术分析

Refunc的核心技术架构基于Kubernetes,充分利用了Kubernetes的容器编排能力。它通过与AWS Lambda兼容的API和运行时,使得开发者可以无缝地将现有的Lambda函数迁移到Refunc平台上。此外,Refunc还支持多种运行时环境,包括Python、Node.js等,并且可以通过扩展层支持更多的云函数运行时。

在消息传输方面,Refunc采用了基于NATS的消息系统,确保了高吞吐量和低延迟的消息传递。这种设计使得Refunc能够在不同的云环境中轻松部署,并且能够根据负载自动扩展或缩减资源。

项目及技术应用场景

Refunc适用于多种应用场景,特别是在需要快速响应和高并发处理的场景中表现尤为出色。以下是一些典型的应用场景:

  1. 微服务架构:在微服务架构中,Refunc可以作为服务的无服务器后端,提供按需扩展的能力,减少运维负担。
  2. 事件驱动应用:Refunc的事件驱动模型非常适合处理实时数据流和事件触发任务。
  3. DevOps自动化:通过Refunc,DevOps团队可以自动化部署和管理函数,减少手动操作,提高效率。

项目特点

  • 易用性:Refunc提供了与AWS Lambda兼容的API和运行时,使得开发者可以轻松上手,无需学习新的API。
  • 可移植性:由于基于Kubernetes,Refunc可以在任何支持Kubernetes的环境中运行,无论是本地开发环境还是云端。
  • 零到多的自动扩展:Refunc能够根据负载自动从零扩展到多个实例,确保服务的高可用性和性能。
  • 可扩展性:Refunc的运行时兼容层和传输层设计使得它可以支持多种运行时和消息传输协议,满足不同需求。

快速开始

在开始之前,您需要一个Kubernetes集群。您可以使用minikube在本地运行一个最小化的Kubernetes集群,或者在macOS上使用启用了Kubernetes的Docker for Mac

安装Refunc

使用以下命令安装refunc-play,这是一个最小化的Refunc设置:

docker run --rm -it refunc/refunc refunc play gen -n refunc-play | kubectl apply -f -
kubectl create -n refunc-play -f https://github.com/refunc/lambda-python3.7-example/releases/download/v0.0.2/xenv.yaml

使用AWS CLI管理函数

通过端口转发将网关转发到本地:

kubectl port-forward deployment/aws-api-gw 9000:80 -n refunc-play

下载预构建的函数:

cd /tmp
wget https://github.com/refunc/lambda-python3.7-example/releases/download/v0.0.1/lambda.zip

创建并调用函数:

aws --endpoint-url=http://127.0.0.1:9000 \
lambda create-function --function-name localtest \
--handler lambda_function.lambda_handler \
--zip-file fileb:///tmp/lambda.zip \
--runtime python3.7 \
--role arn:aws:iam::XXXXXXXXXXXXX:role/your_lambda_execution_role

aws --endpoint-url=http://127.0.0.1:9000 \
lambda invoke --function-name localtest /tmp/output.json && cat /tmp/output.json

使用Refunc管理函数

创建一个带有HTTP端点的Lambda函数:

kubectl create -n refunc-play -f https://github.com/refunc/lambda-python3.7-example/releases/download/v0.0.2/inone.yaml

将Refunc HTTP网关转发到本地:

kubectl port-forward deployment/refunc-play 7788:7788 -n refunc-play

发送请求到您的函数:

curl -v http://127.0.0.1:7788/refunc-play/python37-function

用户界面

Refunc提供了一个简单的管理UI,基于Rancher UI构建,用户可以通过该界面直观地管理和监控函数。

Functions page

许可证

Refunc基于Apache License 2.0开源,您可以自由使用、修改和分发。


Refunc作为一个Kubernetes原生的Serverless平台,不仅提供了强大的功能和灵活性,还极大地简化了无服务器应用的部署和管理。无论您是开发者还是运维人员,Refunc都将是您在云原生应用开发中的得力助手。

refuncCloud Native Function-as-a-Service Platform On Kubernetes.项目地址:https://gitcode.com/gh_mirrors/re/refunc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娄佳淑Floyd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值