作者 | 张俊宝
一份来自 Flexera 的调查报告显示,92%的受访企业平均使用 2.6 朵云。IDC 预测,到 2022 年,默认情况下,全球大多数 (90%) 企业将混合使用内部部署、专用云和外部、公共和私有云。“多云”俨然成为 2021 年技术行业的重要关键词之一。
什么是多云?一个通俗的说法是同时使用两个或者更多云服务,比如分别使用亚马逊云和 Azure 为不同业务类型、不同地区的企业提供服务,甚至可以根据技术产品的不同进行拆分。相较于单一云服务,多云在商业上最直接的好处就是避免被供应商锁定,在技术层面,也是可以提高应用服务质量,比如增加灵活性、可拓展性以及稳定性。
多云策略最近三年来在国内企业的应用也越来越多,以阿里云、腾讯云为代表的主流厂商顺应这一趋势为企业提供多云技术解决方案。字节跳动一直以来就采用多云架构,使用公有云厂商提供的技术服务,磨练自身的多云技术。
随着企业规模越来越大,字节跳动的技术能力在繁多业务的锤炼中,沉淀出了一套技术解决方案,于 2020 年 6 月上线企业技术服务平台“火山引擎”,从 SaaS、PaaS 层在企业落地“外溢”的技术能力。2021 年 12 月 2 日,火山引擎正式推出公有云产品,从 IaaS 层开始为企业提供云服务,提供多云时代的技术支持。
字节跳动 5 年云原生之路
火山引擎的多云技术解决方案的推出,和字节跳动5年来云原生技术发展的关系密不可分。作为多云融合的关键技术引擎,Kubernetes 成为衡量云厂商技术能力的指标之一。字节跳动开始尝试实践 Docker & Kubernetes 的时间在 2016 年,从 Kubernetes 1.4 版本启动了上线工作,同时不断建设周边基础设施,基于 Consul 实现服务发现等能力。
直至 2018 年,字节跳动实现了业务全面微服务化,并在之后的两年中,基于微服务的成果,逐步开启核心业务云原生化实践,先后实现了:基于容器化调度平台,将离线业务统一管理和调度,将容器平台作为业务统一入口,大范围提高资源利用率;完成了业务 Mesh 化的全覆盖,对于非 Mesh 业务,也能够通过服务框架的形式共存;实现函数计算全面上量,支持大规模消费类场景,覆盖新兴场景的云边一体化等。
2021 年,字节跳动所有业务实现全面云原生化,并基于云原生基础设施和业务也成功支持春晚活动,验证了系统的稳定性和弹性。为了优化存储的运维效率,字节跳动同时释放计算资源,开启数据库、缓存等中间件的改造,系统全面走向了整合化。深度地向智能化、实时化、分离化等方向全面演进是字节跳动目前对云原生的发展规划。
火山引擎对外推出的云原生解决方案,也是基于字节跳动本身的技术能力,目前重点围绕5个方向:云原生系统、开发态、交付态、运行态,以及安全运维。具体而言:
云原生系统:包含基础的容器服务和镜像仓库,提供应用托管、稳定性、高性能、自运维等能力;开发、交付和运行态:包含代码仓库、应用平台、CloudIDE 等产品以支撑应用的快速开发,持续交付、制品仓库等产品提升敏捷化和统一交付能力,服务网格、应用观测、应用韧性等产品从流量、监控、演练等方面保障业务平稳运行;安全运维:重点构建云堡垒机和云命令行为主的安全运维通道,以及以 IaC 为核心的自动化运维能力。
狭义地看,云原生指的是一套云原生的技术,包括 DevOps、微服务等,围绕这个事情可以给出一些解决方案;广义地看,云原生不局限在这些技术,更大的意义在于当基础架构从服务器变成云,从 IaaS 变成 PaaS 之后,业务设计可以基于这些逻辑,对新的设施重新设计,真正把云的弹性、存储分离等特性用好,让业务变好。据悉,火山引擎云产品支持同源架构上 Kubernetes 100% 的兼容,通过同一套基础底座和同一套产品能力,让已经使用 Kubernetes 的用户可以实现无缝迁移。
从云用户到云厂商的改变
在云原生技术上的沉淀,支撑了字节跳动如今体量业务的运转。同时,作为多年多云架构的使用方,字节跳动也积攒了大量观察和经验。火山引擎总经理谭待告诉 InfoQ,火山引擎有两个重要的理念,数据驱动和敏捷迭代,两者相辅相成。通过数据驱动,企业可以作出正确的判断,通过敏捷,企业能够让每个环节运转更快,两者叠加的效果就是可以让企业保持在正确的方向上,走得越来越快。
火山引擎云产品是字节跳动“敏捷开发”技术实践的对外输出。字节跳动副总裁杨震原认为,敏捷是企业在移动互联网时代的重要竞争力。字节跳动以敏捷为核心目标构建了云原生架构,支撑着公司业务快速创新、快速迭代。为了实现敏捷,字节跳动以容器化部署和微服务构建云。容器被称为代码“集装箱”,负责代码部署、隔离、资源分配等任务,微服务则是将复杂的应用拆分为微小的服务单元,每个服务单元都可以快速变更、在不同系统中灵活组合,也有利于多人并行开发,从而实现快速交付和迭代。
目前,字节跳动容器实例数达到上千万级别,在线微服务数量超过十万,每日线上变更超过两万次。此外,字节跳动内部每天新增 1500 组左右的 AB 实验,数据量很大。数据处理和分析都需要实时,所以底层需要非常强大的实时 OLAP 引擎来支持实时的数据仓库。字节跳动因此自研了 ByteHouse 数仓,实现所有业务的数据分析,包括实验分析,业务数据分析等,都跑在 ByteHouse 的集群上,整个字节跳动的业务也是基于这样的技术底座之上的。考虑到不同企业的 IT 环境复杂,ByteHouse 并没有和火山引擎云产品唯一绑定,而是采取云中立的方式,让它也可以跑在别的云上。
云时代下的互联互通不是一家企业的事情,云能力也有很大的挖掘空间,所以,字节跳动在市场逻辑上,希望从应用层到技术层输出技术能力,为企业多云策略提供多一种选择。“云本身是一件高门槛的事情,不仅仅是产品,还有基础设施等都需要做好。”谭待表示。目前,云产品已经从“基础设施的资源平台”成为“企业应用的创新平台”,火山引擎推出了云 + 体验(内容和交互的创新)、云 + 数据(数据驱动科学决策)、云 + 智能(AI 是数字经济的生产力工具)等场景化解决方案。
当云用户流量或者业务负载来的时候,企业按照多云的策略把业务负载放在不同的云上,需要有一套好的技术来支持。目前业内比较容易做到的,是将无状态的计算服务多云化,按照负载均衡,而字节跳动的实践有独到之处。举例而言,“字节做的事情,不仅可以将无状态的计算做到多元化,也可以将有状态的存储多元化比如数据库,在 Redis 层面做一些改造,让有状态的服务也可以在多云上。这样就可以做到负载的灵活调度。”谭待谈道,如果把有状态和无状态的服务都可以做到多云,那对于业务来说就非常灵活,因为底层可以通过 PaaS 屏蔽。
涉及有状态和无状态两种类型问题的优化,企业对存储引擎、底层网络互联互通的布局等情况都需要重新设计,也需要通过多余的管理平台来做好这件事情。基于这种情况,火山引擎除了发布了前文提到的 ByteHouse,还发布了 veCompass。未来,火山引擎计划开放更多工具服务,帮助客户提供多云咨询或者服务。
很多公司做云的时候都是新搭建一套体系,然后再把内部业务迁移过来,这也是主流的做法。但是火山引擎采取了另一条路,不同于腾讯云和阿里云,从根本上就要求统一,在内部采用一套技术设施部署,这套同源架构的做法,确保了火山引擎云服务的稳定和性能。
多云趋势下,火山引擎是否还有被选择的理由?
“多云一定是未来的主要方式。”谭待表示。火山引擎收到了来自客户和社区的一些声音,一类是能否兼容和支持各类研发环境和软硬件环境;一类是对于灵活性的诉求,比如想要实现实时计费等基于不同企业的商业模式和业务规模提供高性价比的服务;还有涉及从 IDC 上迁移到云上,从其他云搬到火山引擎上,是否有相应对接迁移的工具和服务等。据谭待介绍,这些需求火山引擎都在满足。
据他观察,目前业内还有一些没有解决好的问题。例如,超大型客户的“十万台的魔咒”未被破解。所谓“十万台魔咒”指的是当客户体量大到一定程度,往往会认为自建云服务更便宜,就会离开云厂商。十万台是大型客户认为自建性价比更高的临界点,这也是云产业没有充分发展的一个表现。
“毕竟,传统的云计算会对 IaaS、PaaS 分层次做稳定性等工作,由此带来很多额外的开销。而字节跳动的实践是 IaaS 和 PaaS 联动解决稳定性、敏捷等问题,这样可以把重复的工作合并起来。”谭待强调,“我们希望和客户共同实践端到端的性能优化,提供更高性价比的云服务,这是非常有意义的。”
"极致性价比"也是火山引擎云产品在多云时代下的支撑之一。谭待表示,“极致性价比不是商业策略,更不是打价格战,而是通过技术驱动和资源共享,追求每个 GB 存储、每一次计算的最优配置”。据悉,火山引擎提供了从基础硬件到业务场景的端到端性能优化,定制化数据中心平均 PUE(总能耗 /IT 设备能耗)仅为 1.16,远低于全球大规模数据中心 1.59 的 PUE 均值。对于“极致”的度量,在不同企业都需要、也都有不同的标准,比如字节跳动关注敏捷,不同类型行业企业都有不同的侧重点。
作为后发者,谭待认为火山引擎云产品有三方面的优势,第一是云原生的技术储备;第二是结合业务场景如体验、营销、数据等,将字节跳动内部的实践方法和技术工具打包,能够给企业的业务带来直接的帮助;第三是面对多云的开放性。“我们更愿意帮客户构建好的多云战略、新的多云战略。”谭待强调。
截至目前,火山引擎服务的行业,从早期的互联网和手机行业,扩展到金融、汽车、先进制造、新消费、新零售、文旅、数字化服务等领域,头部客户包括招行、建行、泰康保险、银河证券、华林证券、吉利亿咖通、长安汽车、上汽大通、蔚来、海尔、创维、美的、安克创新、蓝河乳业、陕旅集团等企业。不过,抖音依然是火山引擎的最大客户。谭待告诉 InfoQ,在正式对外前的一年内,火山引擎一直在和外部客户共同打磨能力,未来也期待与渠道伙伴、服务伙伴、咨询伙伴一起推动开放共享的多云生态。