1. 火山引擎云原生架构设计理念与实践
根据国家“十四五”规划,到 2025 年,国内数字经济占比将达到 GDP 的 10%,企业新增生产级云原生应用在新应用的占比将从 2020 年的10% 增加到 60%。数字经济与实体经济的融合已经成为不可逆转的趋势。
那么,作为近年来增速最快的企业之一,字节跳动的云原生架构体系是如何全面、有机地跟随业务的快速发展的?这离不开我们设计基础架构的核心理念和原则。
- 基础设施:平台化 → 智能化。平台化从另一个角度看即是服务化,当基础设施平台化且有聚集效应时,企业才有足够的体量往下推演;同时随着数据和经验的积累,企业也能进一步衍生出智能化能力,包括智能调度、智能运维等。
- 系统架构:垂直化 → 整合化。基于业务发展的速度,我们针对某些场景,例如推荐广告搜索,实现了相对垂直的管控能力;同时,我们的在线和离线能够整合,批处理和流处理能够一体化,异构资源能够做到统一调度。从垂直到整合,这是一个逐步收拢的过程。
- 基础组件:规模化 → 实时化。规模化推动的是以量取胜、实时化推动的是以质取胜。规模化阶段业务不断上量,资源成倍增加,而实时化的演进迫使我们去做细粒度的优化,例如我们在软硬结合、内存计算方向的探索,在降本提效上都有显著的效果。
- 研发体系:敏捷化 → 现代化。我们不仅提倡敏捷化快速交付的能力,还不断实践现代化应用的构建。所谓现代化,一方面意味着应用构建更深入地走向移动化和低代码化,另一方面则是在应用的容灾和迁移能力上能够更深层地做到无感知。
- 业务触点:中心化 → 分离化。这是一个逐步建设多云、混合云、云端一体化能力的过程,我们所服务的业务遍布各地,这些业务所服务的客户同样遍布各地,我们期望基础架构能够在计算、存储、数据方面都具备分布式的能力,支持业务提供更广泛的服务。
事实证明,云原生为上述理念提供了一条最佳的实践路径。云原生强调自动化、高弹性、可扩展,同时提供了一整套围绕这个思想的工具链和规范。
而作为字节跳动旗下的企业级技术服务平台,火山引擎抽象了字节跳动在硬件、存储、安全、业务、开发、运维等多个场景下的云原生实践思想,推出了包含上层解决方案和中层基础产品服务的云原生全系产品。
2. 火山引擎云原生产品与解决方案
火山引擎云原生产品重点围绕 5 个方向完善产品矩阵,分别是云原生系统、开发态、交付态、运行态以及安全运维。
「云原生系统」 包含最基础的容器服务和镜像仓库两大核心产品,沉淀了字节跳动数年来建设容器平台的经验,除基本应用托管能力外,还提供高稳定、高性能、自运维等能力,旨在为企业提供最坚实的底座。火山引擎的上层产品大多都围绕这两款产品构建,例如函数服务、持续交付、应用观测、湖仓一体的大数据分析服务、机器学习平台。许多内部业务系统,如抖音电商、商业化开放平台,也都基于这款容器产品构建其业务系统。
基于应用生命周期拆解,我们新划分了 「开发、交付和运行态」,其核心是解决应用现代化过程中所遇到的问题。首次发布的产品体系可以支撑企业业务架构升级以及打通重点场景的原子产品,其中既包含代码仓库、应用平台这类可以支撑应用快速开发的产品,也包含持续交付、制品仓库等提升敏捷化和统一交付能力的产品,也有服务网格、应用观测、应用韧性这类可以从流量、监控、演练等方面保障业务平稳运行的产品。
「安全与运维」 层面,火山引擎重点构建了以云堡垒机和云命令行为主的安全运维通道,以及以 IaC 为核心的自动化运维能力,结合应用全生命周期托管能力,提供安全且自动化的云原生体验。
3. 云原生的基础底座:容器
火山引擎推出的云原生容器系统类产品包括容器服务和镜像仓库,提供最基础的容器化平台,主要有四个特点:
- 按需弹性:容器服务底层基于弹性计算和弹性容器两类计算引擎,其中弹性容器主打弹性场景,根据实测数据,它可以支持容器的秒级启动,30 秒满足近万核的扩容需求。
- 性能优化:容器和虚拟机运行时全面基于自研网卡和自研 vSwitch,相比开源方案,火山引擎软硬一体化的方案在PPS、延迟和带宽具有近 2到 3 倍的提升,单机容器密度近千。存储 IO 上采用自研协议栈,深度优化数据拷贝路径,实现用户态协议和全链路零拷贝,性能相对原生IO 提升了 5 倍。
- 安全可靠:VKE 支持同一集群同时运行 runC 和 runV 容器,用户可以按照隔离需求来选择不同的运行时。Kubernetes 完全由平台托管,默认采用 CIS 等安全规范,由平台确保 Kubernetes 的安全和运维,免除用户管理成本。
- 随处可及:在设计之初,我们就意识到了系统可扩展能力的重要性,确定了同源架构的路线。一方面通过同一套基础底座实现随处部署,另外通过同一套产品能力提供无缝的体验。接口上做到 Kubernetes 100% 的兼容,已经使用 Kubernetes 的用户可以实现无缝迁移。