【24小时创业】2022年8月18日
06-17
Serverless/FaaS 的现状和未来 当谈到构建云项目时,您会想到什么?复杂的服务器购买流程和配置、各种复制的环境依赖的安装、Docker镜像的打包和构建,或者是麻烦的后期运维……然而,现在你可以随时随地看到一个新项目。每一个有趣的项目都会带来大量的流量,而且看起来并不复杂。
然而,各个平台的某些接口是不兼容的。几经周折,搭建了一个平台,最后发现流量极低。
如果这个时候开发其他平台,那就得不偿失了。如何构建一个有趣的项目,只需一次构建即可在多个平台上调用。
下面请来今天的主角,最近很火的Function as a Service:FaaS!什么是功能即服务 (FaaS)?功能即服务 (FaaS) 是云计算的一种形式,可帮助开发人员更好地工作,而无需他们维护应用程序基础设施。当开发人员利用 FaaS 时,他们使用 FaaS 平台为他们构建、运行和监督应用程序包。
此时,您可能会认为 FaaS 听起来像无服务器计算 - 确实如此。无服务器计算允许开发人员将管理数据库、API 网关、存储、消息传递和其他基础设施外包给第三方提供商。
FaaS 是一种无服务器计算。然而,Serverless 意味着用户在使用 Faas 构建应用时不需要创建服务器,服务提供者的底层仍然是服务器架构。
用户只需输入参数即可构建应用程序,非常方便。 Lighthouse+OpenFaaS轻量级应用服务器 Lighthouse不同于普通的云服务器。
主要面向轻量级应用场景,为用户提供开箱即用的云服务器产品。它将基础云资源打包,为用户提供丰富的应用镜像。
除了底层操作系统外,还封装了各个场景所需的应用软件,用户无需购买普通云服务器。省去了繁琐的应用部署、配置和初始化过程,购买后即可使用。
优惠链接:简介 OpenFaaS 是一个流行的开源 faas 框架。开发人员可以使用 OpenFaaS 将事件驱动的功能和微服务部署到 Kubernetes,而无需编写重复且无聊的样板代码。
只需将代码或现有二进制文件打包到 Docker 映像中,即可获得具有自动扩展和监控指标的高度可扩展端点。OpenFaas的特点 平台无关:OpenFaas是一个开源框架,可以部署在任何云平台上,无需担心平台锁定。
语言无关:任何语言编写的函数都可以打包成Docker镜像并部署和运行。使用简单:内置UI,丰富的CLI命令,一键安装,灵活扩展:高峰时自动扩容,空闲时自动缩容。
社区活跃img功能作为服务服务器的准备。如果想要使用自建的OpenFaaS,首先需要一个轻量级的应用服务器。
镜像直接选择OpenFaaS 1.0.0: image-2购买完成后,进入产品控制台,找到已经创建的实例。你可以在详情页-应用管理中看到如下信息:image-5或者你已经有一个轻量级应用服务器,那么你只需要在安装系统时选择OpenFaaS 1.0.0镜像即可。
此时,在保证服务器正常运行的情况下,您可以通过应用管理页面提供的访问地址访问OpenFaaS 1.0.0管理后台。获取密码请在控制台输入命令: 代码语言:shell copy cat ~lighthouse/credentials.txtimage-6image-3 登录后可以看到官方提供了一些示例功能。
点击部署新功能查看图-4点击部署,等待状态就绪后即可使用。 ,点击invoke进行调用。
该函数用于获取主机信息。image-2 要构建自己的 Function,首先登录服务器并安装 OpenFaaS 提供的命令行工具: 代码语言:shell copy $curl -sSL | sudo shimage-3faas-cli 基本命令代码语言:shell copy # 下载最新模板到本地 faas -cli template pull# 查询openfaas的模板列表 faas-cli new --list# 创建模板功能# 执行以下命令创建一个函数,add为函数名,python为语言类型 faas-cli new qdfaas --lang pythonimage-4 注意:在当前目录下会生成一个名为qdfaas的文件夹和一个名为qdfaas.yml的文件; qdfaas.yml内容如下: image-1进入qdfaas文件夹,看到faas-cli为我们生成的源代码文件处理程序。
py,默认代码: 代码语言:python 代码运行次数:0 复制 Cloud Studio 代码 run def handler(req): """处理对函数的请求 Args: req (str): 请求体 """ return req 即可改成你需要的功能,形成一个服务。我们这里使用一个常用的函数来构建: 代码语言:python 代码运行次数:0 Copy Cloud Studio code run def handle(req): array = req.replace('\n', '').split(',' ) num = 0 for a in array: num -= int(a) return num 构建函数 完成函数后,使用以下命令构建函数。
代码语言:text 复制 faas-cli build -f qdfaas.yml --shrinkwrap 构建成功后,会在目录下看到多一个 build 文件夹。image-6 在本地构建 Docker 镜像之前请记住登录。
博主一直报错,后来发现需要登录:代码语言:shell copy sudo cat /var/lib/faasd/secrets/basic-auth-password | faas- cli login -simage-1 切换到目录: 代码语言:shell copy cd build/openfaas package Docker: 代码语言:shell copy nerdctl build --namespace openfaas-fn -t qdfaas:latest .image-1 检查是否刚刚构建的镜像: 代码语言:shell 复制 nerdctl --namespace openfaas-fn image lsimage-9 部署函数并执行部署命令 faas-cli deploy -f qdfaas.yml。控制台会提示部署成功,并给出URL: 代码语言:shell 复制 faas-cli deploy -f qdfaas.ymlimage-8 此时登录管理页面,可以看到新增的功能,以及也可以在页面 image-9 上验证函数调用是否正常 最后,如果有更多喜欢使用 OpenFaas 的读者,博主会花时间写一篇如何使用 OpenFaaS 函数生成封面的文章图像。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-17
06-17
06-18
06-18
06-06
06-18
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用