0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4 个场景揭秘,如何低成本让容器化应用 Serverless 化

电子设计 来源: 电子设计 作者: 电子设计 2020-12-15 00:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 | changshuai

FaaS 的门槛

Serverless 形态的云服务帮助开发者承担了大量复杂的扩缩容、运维、容量规划、云产品打通集成等责任,使得开发者可以专注业务逻辑、提高交付速度 (Time-to-market) ,持续优化成本。Function-as-a-Service (FaaS) 作为云上最早也是应用最广泛的 Serverless 计算形态,在几年的时间内吸引了大批开发者,逐渐建立了 Serverless 优先的选型逻辑。然而从传统应用迁移到 FaaS 在开发者体验上还面临诸多挑战:

环境不统一:各厂商定义的交付物格式,运行环境兼容性、丰富度都不尽相同,需要开发者适配,甚至重新编译;

学习成本:打包依赖库、构建成压缩代码包和熟悉的开发部署方式不同;

服务限制:如代码包限制在百 MB 级别,迫使交付物代码依赖分离,加大管理和发布难度;

交付物缺乏版本管理:格式不标准,最佳实践不统一,需要开发者自行负责;

生态不成熟:缺少流行开源工具(如 CI/CD 流水线)的支持和集成。

另一方面,容器在可移植性和交付敏捷性上实现了颠覆式创新。围绕容器的生态沉淀非常丰富且成熟,被广泛接受使用,应用容器化正在快速成为开发和部署的事实标准。然而容器本身并没有减轻运维、扩缩容、闲置成本、和云服务集成等难题。

函数计算支持容器镜像

阿里云 FaaS 函数计算支持容器镜像作为函数交付物,将容器优秀的开发、部署、生态(上线前)结合函数计算自身免运维、零闲置成本、云服务集成等特性(上线后),全面升级开发者体验:

简化应用 Serverless 化:无需修改代码或是重新编译二进制、共享对象(*.so),本地调试,保持开发和线上环境一致;

更大函数代码限制:解压前镜像最大支持 1 GB(相比代码包最大解压前 50MB),避免代码和依赖分离,简化分发和部署;

容器镜像分层缓存:增量代码上传和拉取,提高开发效率和降低冷启动延迟;

镜像分享、复用:逻辑可以移植、减少重复开发建设;

混合部署:同一应用 Serverfull (ECS, 容器 ACK)、Serverless (FC, ASK, SAE),不同应用混合部署或同一应用不同服务间切流,达到性能一致、资源刚性交付、快速扩容、运维最小化的平衡;

CI/CD:持续构建、集成测试、代码上传、存储和标准的版本管理,丰富的开源生态 CI/CD 工具可以复用。

典型客户场景

1. 事件驱动音视频处理

音视频处理有流量波动较大、对计算资源弹性要求高、监听视频上传事件以及依赖工作流和队列等服务的特性,使得 FaaS 成为自建音视频业务上云的首选。然而这类场景中最常用的软件 ffmpeg 往往需要定制编译满足不同的需求。编译的二进制依赖编译环境中的共享对象(*.so)和 glibc 等库,与 FaaS 运行环境不兼容无法运行。重新编译不仅带来了额外工作,不同的依赖和版本也给业务稳定性带来了挑战。

使用已有 Dockerfile 将转码逻辑以及相关依赖保持现有的安装方式和完全隔离的容器沙箱运行环境,极大降低迁移成本,稳定性风险和 FaaS 的开发部署学习成本。

2. Serverless AI/ML 模型预测、推理 serving

AI/ML 推理预测服务同样可以享受 FaaS 免运维、自动伸缩、低成本的好处。然而社区流行的框架如 TensorFlow 都默认以容器镜像的方式分享和复用。不仅官方提供了完整的版本覆盖,基于官方镜像的社区生态也非常活跃。

在离线模型训练阶段以容器镜像部署在 ECS 或 ACK/ASK GPU 集群。在服务推理/预测(serving inference/prediction)阶段,CPU 往往是性价比更高的选择。Serving 的特点是请求量驱动,既需要能快速响应突发(burst)流量,又要在波谷周期释放资源,甚至是缩容至0节省成本。而这些需求天然就是函数计算所擅长的。

在没有容器镜像支持之前,想要将一个 TensoflowFlow serving 的示例部署在函数计算上并不容易。TensorFlow 本身的库大小远超过代码包 50MB 的限制,将依赖打包进 NAS 可以绕过这个问题,然而却增大了上手和迁移的难度。不规范的依赖和版本管理也为变更引入稳定性风险。而使用容器镜像以及函数计算 HTTP server 的编程模型,简单的几行 Dockerfile 就可以在 FC 跑起来 Tensorflow Serving 的示例:

函数计算支持容器镜像帮助 AI/ML 场景平滑地混合部署容器和函数,统一 CICD 工具、流程和最佳实践。函数计算免运维、高并发、百毫秒级别的实例扩容和 100% 资源利用率进一步优化了服务质量和成本。

3. 传统 Web 单体 HTTP 应用 Serverless 演进

传统 Web 单体 (monolithic) 应用现代化有三个主要的诉求:责任拆分、减轻运维压力(资源规划、系统升级、安全补丁等运维负担)以及成本优化。虽然采用职责单一的函数是一种最佳实践,但是进行职责拆分往往需要更长时间的设计和重构。借助函数计算的镜像支持能力,单体应用可以很容易的迁移至 FaaS 服务以满足免运维,弹性水平扩展和100%成本效率的诉求。

传统 Web 应用由于历史原因或者业务复杂度,运行环境(容器镜像)和业务逻辑往往高度耦合且解耦代价较高。为了 Serverless 化改造有时不得不升级操作系统及依赖库版本,在 FaaS 厂商提供的环境中重新编译。迁移至 Serverless 架构有时间成本和稳定性风险。函数计算对容器镜像的支持帮助传统容器化 Web 应用无改造,更快地享受 Serverless 的价值,将时间和精力专注于业务逻辑创新和迭代而非重复枯燥的环境、依赖版本管理、升级维护和容量规划和伸缩。

4. 云上云下,跨云厂商混合部署

企业上云的节奏在不断加快,然而由于业务特性,私有云和公共云混合的运行方式将是未来相当长一段时间内作为常态。企业甚至需要多云厂商来保证迁移、容灾、资源刚性交付的需求。容器镜像是云上、云下的软件交付物统一的默认选择。

函数计算自定义 runtime 选择 HTTP server 标准的交互方式,函数代码编程方式不与厂商绑定,减轻企业对云厂商锁定(vendor-lockin)的顾虑,在云上可以运行的函数,在云下甚至其他云厂商同样可以作为独立的 HTTP Web 应用单独部署,服务请求。容器打包的函数可以运行在其他云服务的容器服务或 IaaS 自建服务,实现多云的容灾、弹性资源保障。

冷启动最佳实践

容器镜像地址推荐使用与函数计算同地域的 VPC 镜像地址,例如 registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1, 以获得最优的镜像拉取延时和稳定性;

镜像最小化,使用类似 docker-slim 工具仅保存必要的依赖和代码,避免不需要的文档、数据或其他文件造成的额外延迟;

在资源允许和线程安全的情况下,搭配单实例多并发一同使用,可避免不必要的冷启动,同时降低成本;

容器镜像配合预留实例一起使用,消除冷启动。

DevOps/GitOps 最佳实践

容器镜像的支持标准化了构建步骤和函数交付产物,让复用 CI/CD 工具成为可能。函数计算与阿里云云效DevOps 服务集成,推出了 CI/CD 流水线。

当有新的代码被 push 进入代码仓库(Github/Gitlab) master 分支, 构建流水线任务被开启,按照代码中指定的 Dockerfile, 容器镜像会被构建并推送至阿里云容器镜像服务。流水线的最后一个步骤会部署发布新版本的函数,完成一次自动化的发布。

除了云效 DevOps 完整自动化的持续集成交付体验,阿里云容器镜像服务和自建开源 CICD 流水线也同样可以用方自动化函数发布。函数计算发布方式的标准化使得企业可以用统一的工具持续交付多个不同的服务,降低开发运维人员对部署工具的学习成本,自动化部署提高成功率和交付速度 (time-to-market)。

和 Custom Runtime 的异同

函数计算在 2019 年推出了的自定义运行时Custom runtime,那么这次发布的自定义容器(custom-container)和已有的运行时有和异同呢?

相同的编程模型和函数计算系统的交互方式:完全相同的 HTTP server 协议,已有的 custom runtime 函数可以直接移植到环境兼容的自定义容器环境中,不需要修改代码;

两个 runtime 有不同的适用场景和取舍:

对于非容器化的应用,您可以持续使用 custom runtime;

对于冷启动延迟容忍度较低的场景,推荐您使用 custom runtime 节省镜像拉取时间;

对于异步离线且已经容器化的任务(job 类型),推荐您使用 cutome-container runtime;

使用函数计算预留实例,且部署环境和业务逻辑耦合紧密的应用可以优先考虑使用 custom-container runtime。

未来规划

随着容器逐渐成为应用交付部署的标准方式,FaaS 会和容器生态做更紧密的融合,帮助容器化的应用以更低的成本 Serverless 化,包括周边配套生态例如声明式的部署方式的融合,同 K8s 相似的应用抽象,云原生可观测性软件集成。基于容器镜像拉取加速,让函数计算能兼顾可移植和快速启动的性能。

容器技术和 Serverless 的初心都是要帮助用户更快地交付(time-to-market)和持续优化成本,消除资源闲置产生的浪费,增加企业竞争力。

最终云原生的两大技术领域:Serverless 和容器技术的联系将会变得更加紧密,开发部署运维差异不断缩小,让开发者几乎不需要修改业务逻辑即能为不同的工作负载选择合适的技术方案,用开放、标准、统一的云原生技术持续创新,为客户创造更多价值。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    8003

    浏览量

    143100
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261517
  • 大数据
    +关注

    关注

    64

    文章

    9029

    浏览量

    143064
  • serverless
    +关注

    关注

    0

    文章

    65

    浏览量

    4849
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无服务器 vs 容器:一张图帮你选对技术栈!

    在云计算时代,无服务器架构(Serverless)与容器部署(Containerization)已成为企业构建现代应用的两大主流方案。二者均以“降本增效”为核心目标,却在底层逻辑、
    的头像 发表于 09-11 11:06 235次阅读
    无服务器 vs <b class='flag-5'>容器</b>:一张图帮你选对技术栈!

    亚马逊云科技推出Amazon DocumentDB Serverless,简化数据库管理并大幅节省成本

    )的一种全新配置,能够根据应用程序需求自动扩展计算和内存资源。Amazon DocumentDB Serverless简化了数据库管理,无需前期承诺,也不会产生额外成本,与为应对峰值负载而长期预置资源的方式
    的头像 发表于 08-15 13:11 424次阅读

    企业如何用SD-WAN节省50%网络成本揭秘数字转型的网络新基建

    #企业如何用SD-WAN节省50%网络成本揭秘数字转型的网络新基建>一条软件定义的网络高速公路,正在为成千上万企业开辟数字转型的快车道,同时将网络运营
    的头像 发表于 08-13 10:32 1464次阅读
    企业如何用SD-WAN节省50%网络<b class='flag-5'>成本</b>?<b class='flag-5'>揭秘</b>数字<b class='flag-5'>化</b>转型的网络新基建

    中小企业如何低成本、高效率地启动数智转型?

    中小企业数智转型需以“小快轻准”为核心,通过技术轻量化(SaaS/RPA)、政策红利(补贴/试点)、生态协同(平台/集群)三大杠杆,实现低成本破局。关键是从业务痛点出发,避免盲目跟风,逐步构建数据驱动与智能决策能力。
    的头像 发表于 08-07 14:20 539次阅读

    腾视科技大模型一体机解决方案:低成本私有落地,重塑行业智能应用新格局

    当大模型进入 “深水区”,私有低成本已成为企业选型的核心考量。腾视科技大模型一体机解决方案,用技术创新打破 “安全与成本不可兼得” 的困境,各行业都能轻松拥抱智能时代。以
    的头像 发表于 08-07 11:06 1708次阅读
    腾视科技大模型一体机解决方案:<b class='flag-5'>低成本</b>私有<b class='flag-5'>化</b>落地,重塑行业智能应用新格局

    MagicBMS™ 方案重新定义两轮车、电储能系统的成本、安全与智能边界

    揭秘 MagicBMS™ 方案如何重新定义两轮车、电储能系统的成本、安全与智能边界 在电动车、储能系统全面渗透生活的当下,隐藏在电池包背后的“BMS系统”(Battery Management
    的头像 发表于 07-30 16:54 4.6w次阅读
    MagicBMS™ 方案重新定义两轮车、电储能系统的<b class='flag-5'>成本</b>、安全与智能<b class='flag-5'>化</b>边界

    低成本组合导航能实现精准导航定位

    在自动、无人系统和精准农业等领域,高精度导航是核心需求,但传统高端组合导航系统的高成本往往许多用户望而却步。ER-GNSS/MINS-05作为一款低成本组合导航系统,通过技术优化与
    的头像 发表于 07-03 15:16 575次阅读
    <b class='flag-5'>低成本</b>组合导航能实现精准导航定位

    揭秘EtherNet IP转Modbus TCP 网关在工业自动中的工程优化分析

    揭秘EtherNet IP转Modbus TCP 网关在工业自动中的工程优化分析
    的头像 发表于 05-23 19:22 429次阅读
    <b class='flag-5'>揭秘</b>EtherNet IP转Modbus TCP 网关在工业自动<b class='flag-5'>化</b>中的工程优化分析

    HarmonyOS5云服务技术分享--Serverless搭建抽奖

    ✨【实战指南】手把手教你用华为AGC Serverless模板快速搭建抽奖活动✨ 嗨各位开发者小伙伴!今天给大家分享一超实用的技巧——用华为应用市场AGC的Serverless模板三分钟搞定抽奖
    发表于 05-22 20:20

    工业4.0革命利器!明远智睿SSD2351核心板:低成本+高算力,破解产线智能难题

    行业痛点:传统工业设备智能改造面临三大瓶颈——算力不足导致实时性差、接口资源有限难以扩展多设备、进口方案成本高昂且供货不稳定。 核心板方案价值: 明远智睿SSD2351核心板基于SigmaStar
    发表于 03-21 14:22

    800V低成本压缩机控制方案

    目前电动汽车正向智能,高压方向发展,前者在于提升汽车智能性,后者在于改善汽车充电时间等特性.为此,电动汽车正向高压800V平台过渡和演变,本文将简单介绍800V低成本压缩机控制方案。
    的头像 发表于 03-20 09:44 1829次阅读
    800V<b class='flag-5'>低成本</b>压缩机控制方案

    Kubernetes:构建高效的容器应用平台

    Kubernetes 作为容器编排的事实标准,在容器应用部署中发挥着关键作用。 搭建 Kubernetes 集群是应用的基础。可以使用kubeadm工具快速搭建。在主节点执行kubeadm
    的头像 发表于 01-23 15:22 576次阅读

    微服务容器部署好处多吗?

    微服务容器部署好处有很多,包括环境一致性、资源高效利用、快速部署与启动、隔离性与安全性、版本控制与回滚以及持续集成与持续部署。这些优势助力应用可靠稳定运行,提升开发运维效率,是现代软件架构的优质选择。UU云小编认为微服务容器
    的头像 发表于 01-17 10:22 544次阅读

    智能工厂的数字应用场景

    本文探讨了智能工厂中的数字场景,包括设备互联与数据采集、生产计划与排程优化、自动立体仓库和智能物流系统。通过这些数字技术,智能工厂实现了生产效率的提升、资源消耗的降低、决策能力的
    的头像 发表于 12-30 09:32 1477次阅读
    智能工厂的数字<b class='flag-5'>化</b>应用<b class='flag-5'>场景</b>

    低成本解决方案,RK3506的应用场景分析!

    RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景
    的头像 发表于 12-11 15:26 2176次阅读
    <b class='flag-5'>低成本</b>解决方案,RK3506的应用<b class='flag-5'>场景</b>分析!