从容器平台到微服务架构,当当网的云原生之路

从容器平台到微服务架构,当当网的云原生之路

作者:佚名 2021-09-27 16:58:51

云计算

云原生 从当当网的Knative应用案例可见,Knative对于Serverless平台的标准化意义重大。Knative的发展前景广阔,有望成为未来的主流无服务架构平台。同时,Knative还在逐步走向成熟的阶段,大规模应用还需要进一步完善。

当当网是全球知名的综合性网上购物商城,涵盖图书、电子书、听书、服装、百货等品类。在数字化已经成为社会经济发展趋势的背景下,电商行业也在数字化的驱动下加速更新换代,销售内容、社交模式、消费体验全面升级,同时也要支撑应对突发流量、新业务快速上线等需求,一套高可靠性、高可扩展性、性能强大的IT架构就成为了必需。

日前,记者采访了当当网云原生实验室负责人李志伟,对当当网近年来的数字化转型之路做了梳理。

[[426177]]
当当网云原生实验室负责人李志伟

一步跨入Kubernetes,开启云原生之路

前些年,当当网的大多数业务都运行在物理机上,运维自动化水平不高,系统架构多种多样,错综复杂,计算资源的利用率不足 20%。当有突发流量的时候,水平扩展和迁移非常困难。同时,因为历史原因,当当网的老旧服务很多,需要有一个新的平台平滑迁移过去。

根据当时的情况,当当网认为首先应该构建自己的私有云平台,然后一步一步的进行转型。但是在接触到了Kubernetes 平台之后,当当网认为可以直接进入到容器云平台。

Kubernetes是微服务架构最佳的运行平台之一,如果把当当网现有的业务按照微服务架构思想全部改造,大约需要几年的时间。当当网最终决定基于现有的应用基础做平滑迁移,在半年左右的时间把所有业务都迁移过来,第一步就是用 Kubernetes实现一个高可用的、高度自动化的运维平台,一个高效的服务编排平台。

事实证明,Kubernetes真正改造了当当网的研发流程,真正实现了一次构建就可以运行在多个运行环境中。Kubernetes 遵循 Borg 的架构思想,规范了现有的系统架构设计,实现自动化运维。并且,使用 Kubernetes 可以不被云厂商锁定,在不同的服务商之间快速迁移。

Kubernetes虽然有诸多优势,但是开发者使用它的门槛很高,起初,当当网使用Jenkins,Helm, Chart来简化CI/CD流程,但配置及运维管理依然复杂。开发人员不仅要关注容器构建、缩扩容,还要关注流量控制的实现细节,急需一种简单有效的服务编排标准来解决开发与运维管理复杂度问题。此外,Kubernetes本身并没有解决低频使用的服务资源占用问题,依然有大量服务、作业即使很少被使用,但依然占据着CPU和内存资源,导致计算资源的使用率较低。

Knative,把Serverless变得简单易用

在云原生时代,Kubernetes和Istio的引入给微服务的开发和部署提供了完整的解决方案,同时也带来了更高的维护复杂度,Knative作为新一代无服务架构平台提供了一套简洁的方案来解决微服务的管理问题。

Serverless(无服务器架构)指的是由开发者实现的业务逻辑运行在无状态的计算容器中,它由事件触发,完全被第三方管理,其业务层面的状态则被存储在数据库和其他存储资源。Serverless不代表不需要服务器,而是开发者不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的完整流程,允许开发者在服务级别而不是服务器级别来管理应用部署,这大大降低了软件开发的复杂度,使得开发者可以快速迭代,更快速地开发软件。

虽然Serverless拥有无需管理基础设施、按用付费、事件驱动、自动化构建部署等优势。但是当前各厂商的Serverless标准不统一,软件不能跨厂商迁移,客观上存在厂商锁定问题,这是制约Serverless发展的最主要因素。正因为如此,谷歌发起了Knative项目。Knative 是谷歌发起的基于kubernetes平台的Serverless 开源项目, 将Serveless的服务管理,事件驱动,构建部署进行了标准化。它不仅可以以托管服务形式运行在公有云中,也可以部署在企业内部的数据中心,很好地解决了多云部署以及供应商锁定问题。

Kubernetes作为基础设施,解决了应用编排和运行环境问题。Isito作为通信基础设施层,可以保证服务的运行可检测、可配置、可追踪。Knative使用应用模板和统一的运行环境来标准化服务的构建、部署和管理。

Knative 将kubernetes和istio的复杂度进行抽象和隔离,解决了繁琐的构建,部署,服务治理步骤,并且基于开放标准使得服务变得可移植。

Knative作为开源仅两年多的项目,各项特性还在快速发展演进过程中,出于稳妥考虑,当当网选择了相对成熟的Serving组件,应用到业务形态相对独立的单品API服务进行了实践。

单品API服务是当当网基础平台中核心的基础服务之一,由一系列与商品相关的API服务构成,单品API为所有相关上游服务提供高效可靠的底层服务支持。

当当网搭建了一套完整的运行环境:首先编写用户容器对应的dockerfile,然后编写对应的Tekton task及taskrun文件,构建代码打包运行时容器推送到私有镜像仓库,编写Knative的service.yaml 配置文件并完成部署。

在运维工具方面,Knative直接使用了Kubernetes平台上的解决方案,避免了重复建设。

从测试结果来看,对比Kubernetes原生的部署方案,Knative的引入带来了27ms的延迟和10%的TPS损失。

Knative Serving支持缩容到零,极大提高了低频应用的资源占用,为了解决冷启动的问题,当当网采用保留服务最小副本数的方法,在资源占用和服务响应延迟之间进行平衡。对于可预见的高并发场景可以为服务预设预期最小所需副本数,这样避免了突发高并发请求导致大量请求积压;为服务预设最大所需副本数可以避免资源过度分配;为服务的每个POD设置最大并发请求数上限保障每个服务的可用性。

从当当网的Knative应用案例可见,Knative对于Serverless平台的标准化意义重大。Knative的发展前景广阔,有望成为未来的主流无服务架构平台。同时,Knative还在逐步走向成熟的阶段,大规模应用还需要进一步完善。

受访人:李志伟,当当网云原生实验室负责人,《Knative实战》作者。2016年加入当当网,期间担任数字业务产品线技术总监,架构部、云原生实验室负责人。一直致力于推广和实施云原生技术在当当平台的应用。2018年实现了当当云阅读产品线的全面容器化,完成了Kubernetes的平台的整体方案设计和实施工作。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/271516.html<

(0)
运维的头像运维
上一篇2025-05-08 07:53
下一篇 2025-05-08 07:54

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注