如何在Rancher上运行无服务器应用程序

简介:

最近,系统设计中较新颖的概念之一要属“无服务器架构”理念。毫无疑问, 这有点夸张, 因为确实有服务器参与其中, 但这意味着我们可以以不同的方式看待服务器。


无服务器的潜在上升空间


想象一下,一个简单的基于Web的应用程序,处理来自HTTP客户端的请求。而不是让一些程序运行时等待请求到达,然后调用一个函数来处理它们,如果我们可以按需启动运行每个函数,然后将其丢弃,那会怎样?我们不需要担心可以接受连接的运行的服务器数量,或者在伸缩时处理复杂的配置管理系统以构建应用程序的新实例。此外,我们还将减少诸如内存泄漏、分段错误等状态管理的常见问题。

 

或许最重要的一点是,这种按需调用函数的方法将允许我们伸缩每个函数,以匹配请求数并对它们并行处理。每个“客户”都将获得一个专门的流程来处理他们的请求,而流程数只会受到您处理的计算能力的限制。当与一个大型云提供商耦合,其可用的计算大大超过您的使用量,此时无服务器就有可能移除大量的复杂性,从而伸缩应用程序。


潜在的缺点


诚然, 在为每个请求构建进程时, 仍存在增加的滞后时间的挑战。无服务器永远不会像预先分配的进程和内存那样样快;然而,问题不在于它是否更快, 而在于它是否足够快。从理论上讲, 我们会接受无服务器的延迟, 因为我们会得到回报。然而, 这一权衡需建立在对手头的情况进行仔细评估的基础上。


使用Rancher和开源工具实现无服务器


Docker为我们提供了很多工具来实现这个无服务器的概念,并在最近的DockerCon上给出了很好的演示。Rancher将这些能力最大化了。因为我们的平台承担您的容器基础架构的管理,所以只需操作一个API即可添加和删除计算容量。通过软件定义栈的这部分能力,支持用户实现全面的应用程序自动化。


栈中的下一层即为无服务器系统编写代码的可用框架。您可以自己编写、或者扩展一些中间件来处理这个问题,但有很多开源项目提供了工具来简化这一过程。其中一个项目是Iron.io的Iron功能。我在Rancher上做了一个快速的POC,发现它很容易使用。使用这些compose文件可以在Rancher中快速启动该设置。


要使用这些文件,请将repo中的docker-compose.yml和rancher-compose.yml文件复制并粘贴到Rancher UI的“Add Stack(添加栈)”部分。或者从Rancher CLI中,简单地运行“rancher up”(确保设置以下环境变量:RANCHER_URL,RANCHER_ACCESS_KEY,RANCHER_SECRET_KEY)。


栈启动时,您应该可以在Rancher UI中看到。此外,您可以通过单击栈中第一个项目(“API - lb”)旁边的“i”图标,查找 Iron Functions API端点和UI的URL。


wKiom1kjx1WwvgYsAAGE29YjGWs026.png


部署完成后运行无服务器栈


wKioL1kjx2_SonuAAAEBSCrPAPA338.png


找到您的IronFunctions端点的URL


一旦您运行栈,请按照Iron.io的Github repo上的“Write a Function(编写一个函数)”的说明进行操作。您可能需要一些时间来适应,因为这需要您在编写应用程序时稍作改变。将不会有任何共享的状态供您的函数引用,而库之类的东西利用起来可能会又困难又昂贵。在我的例子中,我从Iron.io中选择了一个简单的golang函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package  main
import  (
"encoding/json"
"fmt"
"os"
)
type Person struct {
Name string
}
func main() {
p := &Person{Name:  "World" }
json.NewDecoder(os.Stdin).Decode(p)
fmt.Printf( "Hello %v!" , p.Name)
}

下一步是将函数部署到我们在Rancher中设置的Iron函数的实例中。为了使这更容易尝试,我编写了一个为您执行所有步骤的脚本。参照这个repo中的README。一旦部署了函数,您应该能够在UI中看到它,然后就可以试着用它了:


wKiom1kjx7SAVk-LAADHFDjrtqw528.png


IronFunctions的Dashboard


wKioL1kjx86AEG5BAAC_aJ6gzTM914.png


的正在执行的函数的结果


从Rancher内部,您可以根据您的需求扩张或缩减员工人数。Rancher会把它们放在一个主机上,并将它们连接到一个负载均衡器上。根据最佳实践指南,您可以简单地根据“wait_time”度量,从而使伸缩操作相对简单。


若您也想过用这种方式构建应用程序,我觉得本文的教程会是一个很有用的尝试。如果您对此有任何意见或反馈,不要犹豫,联系我们!我们一如既往地期待听到您的反馈!


本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/1928533


相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
10月前
|
机器学习/深度学习 数据库 数据安全/隐私保护
服务器核心组件:CPU 与 GPU 的核心区别、应用场景、协同工作
CPU与GPU在服务器中各司其职:CPU擅长处理复杂逻辑,如订单判断、网页请求;GPU专注批量并行计算,如图像处理、深度学习。二者协同工作,能大幅提升服务器效率,满足多样化计算需求。
3949 39
|
9月前
|
存储 机器学习/深度学习 人工智能
硅谷GPU单节点服务器:技术解析与应用全景
“硅谷GPU单节点服务器”代表了在单个物理机箱内集成强大计算能力,特别是GPU加速能力的高性能计算解决方案。它们并非指代某个特定品牌,而是一类为处理密集型工作负载而设计的服务器范式的统称。
|
开发框架 人工智能 Java
破茧成蝶:阿里云应用服务器让传统 J2EE 应用无缝升级 AI 原生时代
本文详细介绍了阿里云应用服务器如何助力传统J2EE应用实现智能化升级。文章分为三部分:第一部分阐述了传统J2EE应用在智能化转型中的痛点,如协议鸿沟、资源冲突和观测失明;第二部分展示了阿里云应用服务器的解决方案,包括兼容传统EJB容器与微服务架构、支持大模型即插即用及全景可观测性;第三部分则通过具体步骤说明如何基于EDAS开启J2EE应用的智能化进程,确保十年代码无需重写,轻松实现智能化跃迁。
962 42
|
12月前
|
弹性计算 关系型数据库 数据库
阿里云服务器ECS是什么?ECS应用场景、租用流程及使用教程整理
阿里云ECS(弹性计算服务)是性能稳定、弹性扩展的云计算服务,支持多种处理器架构和实例类型,适用于网站托管、开发测试、数据存储、企业服务、游戏多媒体及微服务架构等场景。提供从注册、配置到部署、运维的完整使用流程,助力用户高效上云。
|
存储 分布式计算 安全
阿里云服务器ECS实例选型参考:场景适配、应用推荐
选择阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。对于很多新手用户来说,在初次购买阿里云服务器的时候,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,性能表现更是千差万别。因此,在购买阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。本文将通过一些常见的选型场景推荐,为大家详细介绍阿里云服务器实例选型的最佳实践,便于大家在选择云服务器实例规格时做个参考。
|
9月前
|
机器学习/深度学习 人工智能 弹性计算
2025年阿里云GPU服务器租用价格与应用场景详解
阿里云GPU服务器基于ECS架构,集成NVIDIA A10/V100等顶级GPU与自研神龙架构,提供高达1000 TFLOPS混合精度算力。2025年推出万卡级异构算力平台及Aegaeon池化技术,支持AI训练、推理、科学计算与图形渲染,实现性能与成本最优平衡。
|
11月前
|
域名解析 运维 监控
阿里云轻量服务器的系统镜像和应用镜像的区别
轻量应用服务器是阿里云推出的易用型云服务器,支持一键部署、域名解析、安全管理和运维监控。本文介绍其系统镜像与应用镜像的区别及选择建议,助您根据业务需求和技术能力快速决策,实现高效部署。
|
11月前
|
存储 弹性计算 运维
阿里云服务器全解析:ECS是什么、应用场景、租用流程及优缺点分析
阿里云ECS(Elastic Compute Service)是阿里云提供的高性能、高可用的云计算服务,支持弹性扩展、多样化实例类型和多种计费模式。适用于网站搭建、数据处理、运维测试等多种场景,具备分钟级交付、安全可靠、成本低、易运维等优势,是企业及开发者上云的理想选择。
1192 5
|
11月前
|
运维 监控 Kubernetes
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代
Bitnami 曾为开源应用部署带来革命性体验,但随着 Docker 成熟与战略转向云原生,其单机多应用支持逐渐弱化。面对多应用管理分散、资源冲突、运维工具缺失等痛点,Websoft9 应运而生,提供一键部署、统一管理、智能调度等能力,全面优化单服务器多应用运维体验,成为 Bitnami 的理想继任者。
373 0
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代

热门文章

最新文章