Yandex打开云。 新平台的架构

图片

今天,Yandex.Cloud 已对所有人可用 。 现在,任何用户都可以访问云并部署所需的资源,从而获得对Yandex技术的访问权限。 例如,进行机器翻译以及语音识别和合成。

今天,我想向您介绍Yandex.Cloud,并告诉您它在内部的排列方式。 切入您将了解有关我们平台的历史,团队和架构的一些信息。

一点历史


尽管不久之前就首次公开展示了Yandex云平台,但该项目已经在公司内部开发了很长时间,并且设法在多个阶段中幸存下来,而构成其基础的许多技术已经在Yandex的内部基础架构中经过了时间的考验。 开发于去年开始,首批外部用户于2018年4月开始测试该平台。 这是一种封闭模式,约有100家公司参与其中-各种规模的Web服务,SaaS开发人员和公司。 在9月,我们开放了一个公共站点,但是您只能通过等待列表进入Cloud本身,现在,在12月,所有人都可以使用该访问权。

在最初制定产品开发计划时,有必要就云应具有的特征以及应基于哪些技术做出几项战略决策:建议使用哪种开源解决方案,这些解决方案可从Yandex Yandex内部技术堆栈中获取,以及必须针对公共平台专门开发的内容。 最重要的问题之一与OpenStack有关。



到此时,已经有数千台主机的OpenStack集群成功在Yandex中运行了几年。 一种可能的解决方案是使用这项技术来创建云,尤其是因为它将大大加快平台进入市场的速度。 但是,经过多次讨论和激烈辩论,我们决定做出有利于我们自身发展的决定。 表达了利弊,但以下论点具有决定性。

首先,OpenStack是私有单租户云的解决方案。 从历史上看,它并不是旨在构建可扩展的多租户平台。 第二点:这项技​​术与超融合架构的兼容性很差(当所有硬件资源形成一个大的池,并且已经在其上构建了虚拟基础架构时)。 好了,第三点-我们经历了在集群运行期间发现的有关OpenStack支持和修改的所有困难,并且不想冒未来用户的客户体验的风险。 当然,我们提出的问题没有明确的答案,但必须作出明智的决定。 做出选择后,平台按照自己的方式行事。

值得注意的是,伴随的体系结构方法也是在一开始就提出来的。 使用统一硬件资源的单个池是基本决定之一。 这种方法使您可以轻松扩展平台并毫不费力地增加可用资源量。 此外,我们确定该平台将建立在自我托管的原则上。 也就是说,所有云服务,包括服务云服务,都必须“生活”在单个超融合基础架构之上。 这意味着Yandex.Cloud没有专用的管理服务器。 所有平台服务都与外部用户部署在同一虚拟机上。



自托管使您可以非常灵活地管理云的结构,并以最小的成本自动连接其他基础架构-从一台服务器到具有数千台计算机的整个数据中心。 此外,我们在与用户相同的条件下工作,这意味着我们可以体验整个客户体验。

平台的第三个原理:所有服务的元数据和系统信息的单个存储库的可用性。 为此,使用了内部开发-Yandex数据库(YDB,不要与ClickHouse混淆),它使您可以非常可靠,高效和灵活地放置数据。 因此,元数据存储库已成为所有其他Yandex.Cloud服务的基本内部服务。

您可能已经注意到,平台组织的基本原理彼此紧密相关,并在很大程度上决定了体系结构和许多后续的技术解决方案。 这为我们提供了创建可扩展平台的机会,该平台将使我们能够长期规划所有现有和将来的云服务的开发。

建筑学


通常,该架构如下所示:



云的核心是已经提到的共享元数据存储(存储层)。 YDB使用特殊的复制机制覆盖了云可用的所有硬件存储。 类似的机制适用于网络块存储(NBS)。 它们与YDB一起构成了一个通用的数据存储系统,供云中的所有其他服务使用。



Yandex Compute Cloud服务构建在商店的顶部。 它使您可以管理由外部用户和平台内部组件使用的虚拟机。 系统管理程序是KVM ,仿真器是QEMU 。 结果,选择了VirtIO驱动程序进行设备虚拟化。 调度程序是虚拟机和硬件基础结构结合的重要组成部分。 由他决定将下一个虚拟机部署在哪台物理服务器上。



这些组件共同构成了平台的IaaS部分,还包括Yandex虚拟私有云服务 。 网络服务基于开源的OpenContrail项目。

此级别的另一个重要组件是快照机制。 它允许您拍摄照片和磁盘图像



更高级别的是平台服务,大部分Yandex.Cloud用户都可以访问。 这些是用于管理云中数据库的服务,其群集已部署在虚拟机上(ClickHouse,用于MongoDB的托管数据库和PostgreSQL); S3兼容对象存储 以及翻译合成以及语音识别服务。

还有另外两个覆盖云所有层的重要服务。 这些是计费身份和访问管理 (IAM)。 第一个负责计费和支付已消耗资源的所有操作。 第二种实现基于角色的访问控制: 对资源的访问: 可以为每个用户分配一个或另一个描述所允许操作的角色。 例如,编辑者角色允许您创建,删除和编辑资源,但不允许您控制对资源的访问。

这是对Yandex.Cloud设备的相当笼统的描述,但是它使您能够了解大型平台的各个部分之间如何交互。 如果您想更深入地了解平台的结构,建议您查看about:云会议录制 。 在此事件中,特别关注了网络和Yandex数据库。

团队


最后-关于团队的几句话。 在过去的一年中,它显着增加并且继续增长 。 现在,它已经由150多人组成,这还不包括不是Yandex.Cloud直接组成部分的大量小组,但他们的成就也已在平台中使用。 当然,很大一部分专家是开发人员。 它们分为朝着一个或另一个方向参与的单元:虚拟机,云数据库,计费,网络等。还有一个单独的小组专门研究云安全​​问题以及其中存储的所有内容。 好了,当然还有支持,可以迅速回答用户提出的问题。

这就是我的全部。 在不久的将来,我们将发布有关如何使用我们平台的不同服务的详细信息的几篇文章。 同时,您可以免费了解 Yandex.Cloud。 每个新用户将获得4000卢布,以熟悉该平台。 这个数量足以在一个标准LAMP捆绑包(目标文件存储为1 TB)的基础上,在一个月内将一个中型Web项目放置在Cloud中; 或通过将机器翻译连接到您的移动应用程序或网站来翻译大于900万个字符的数据数组。

Source: https://habr.com/ru/post/zh-CN432042/


All Articles