本篇文章2729字,读完约7分钟
刘星海:云计算时代的服务器开发与验证 乐天在ODCC会议上就阿里巴巴对云计算的探索和部署进行了交流,就服务器、软硬件相关的尝试进行了交流,并分享了在服务器开发、验证和软硬件优化方面遇到的一些问题。他表示,阿里巴巴希望在线产品具有足够的可用性和可靠性,并希望在优化成本的同时继续改善客户应用的实验体验。
乐天:我很高兴有这个机会与大家分享阿里巴巴在服务器、软件和硬件部署过程中的探索和探索。介绍我们在服务器开发、验证和软硬件优化过程中遇到的一些事情。让我们先做一个广告。最新的里程碑事件是,对于阿里云来说,付费用户数量首次超过100万,这对阿里云来说是一件大事。这是亚洲第一家拥有超过100万用户的云计算公司。
简单回顾一下云计算业务的发展以及对基础设施服务器、网络和存储的新要求,我们对这项技术很熟悉。这里给出的一个例子是网站的业务开发过程。一开始,如果我们想建立一个网站,我们只需要有一个或多个服务器作为主机。随着业务规模的扩大,我需要分离我的数据库。同时,如果服务器数量在增加,我可能需要考虑负载平衡。如果数据库的业务是独立的,我还需要考虑缓存以及数据库的安全性和可靠性。如果我的业务数据继续增长,对数据存储就有了新的要求,需要独立的存储技术,包括分布式存储和针对特定应用的结构化存储。随着我的业务规模不断扩大,我可能会扩展到全国,并对网络提出一些新的要求。例如,为了更好的客户体验和降低成本,我需要一个内容分发网络。随着数据的进一步增加,最终需要处理专门的服务。
在业务开发的过程中,不同的应用会对基础服务器提出不同的要求,比如一些对成本特别敏感的服务,对于数据库服务,性能要求是什么,各种灵活存储的服务,可靠性要求是什么,以及在运行和维护中对大型服务器的要求是什么。在我们的设计服务器开发验证过程中,都提出了各种要求。对于服务器的实施,我们将根据具体配置进行不同的具体配置,重点是主频、大输入输出、大容量存储和高内存。近年来,已经开发了许多用于异构计算的新的加速计算。
例如,在计算和存储方面,在信息技术的发展中,计算和存储一直是分离和结合的。当云计算在2007年和2008年左右实施时,当时的一个主要共识或普遍做法是需要本地化。计算资源和存储资源应尽可能接近,以尽可能降低获取数据的成本。在许多情况下,计算和存储将在物理上本地化的资源池或资源盒中完成,而计算和存储能力将尽可能在最大的方向上完成。当时,许多企业的体系结构可以通过大容量存储和高性能计算的单一集群来满足当时许多企业的需求。随着未来几年行业的发展,尤其是北美互联网行业的发展,由于计算技术、存储技术、NVMe技术、网络技术的发展,数据采集的成本大大降低。现在的主流架构是计算和存储的分离。传统的集中式存储位于主机中,并通过共享交换机连接到其他远程服务器。大多数数据处理和备份都是在同一台交换机下完成的。计算资源在物理上集中在特定的机架位置,并通过特定的交换机连接到远程存储资源。在这些结构性变化中,我们将遇到各种各样的问题和挑战。最令人印象深刻的事情之一是,当我们第一次尝试这种架构时,我们将更集中的计算资源放在不同的物理机架位置。当我们部署我们的典型服务时,我们发现存储节点交换机的带宽很容易填满,并且丢包率和重传率非常高。由于我们的企业设计了相同数据的多个副本,在新的体系结构下,在复制过程中失败的副本将比以前多得多,并且副本的重传将被重新启动,这将进一步加剧网络上的带宽浪费,因为更多的数据包将被发送多次,更多的数据包将丢失。
面对这样的问题,我们现在有几种不同的解决方案可以尝试。例如,我可以在交换机端选择端口的缓冲区,较大的交换机可以直接交换硬件。这将带来硬件和成本的变化。在另一种尝试中,我们尝试在同一机架上部署一定比例的存储节点和计算节点。通过与实际应用服务的联合调试,例如,当以四个计算节点对一个存储节点的比例部署时,以八个计算节点对一个存储节点的比例部署时,在不同比例和实际部署服务的情况下,可以逐步降低重传率,提高服务效率。这是优化前和优化后的数据重传率的比较。另一个问题是,在配置了分布式存储之后,我们发现在高压力下写入大文件时,磁盘吞吐量不能满足预期。大量内存回收操作,群内存策略,适可而止,内存策略调整,释放性能和优化成本。因为可以在存储节点中调整内存的上限,所以可以获得系统架构下所需的最大内存的物理值空之间的值。针对特定的存储节点进行内存优化。例如,当我们第一次为某个节点建立系统架构时,选择了512G的内存。经过优化后,发现它可以在没有太多内存的情况下实现原来计划的磁盘的性能。因此,可以节省大量的存储成本。
在某个业务中,我们发现在相同的架构下,在测试IOPS的性能时,我们发现小块的读写性能不能满足预期,约为预期的60%。我们研究了该体系结构中计算节点与存储节点的比率,例如,原始比率为8: 1。每个计算节点写了50个进程,400: 1可以匹配。400: 1的比例相对较小。我们统计了所有IO的分布情况,包括大小和时间,发现大多数读写都是小块读写。我们在计算节点下做了一些优化。计算节点本身有一些小容量固态硬盘。我们已根据具体业务将固态硬盘容量改为NVMe固态硬盘。根据统计的读写特性,我们将大部分小块读写放在本地NVMe的固态硬盘上,将大块读写放在远程IO上。在满足性能的条件下,硬件成本的变化是可以接受的。
目前,当云计算业务高速发展时,我们所做的服务器开发工作与最初大不相同。几年前,我们在行业中做的大部分事情都是循序渐进的。从计划一开始,就有一个相对较长的研发过程。在研发之后,我们的业务适应有一个引入过程。最后,进行了大规模部署。每项业务都需要几个月的时间。但是现在随着业务的快速发展,大部分工作都集中在下面的集成过程中。我们已经开始在研发完成和全面生产未完成之前测试与我们业务的适应性和兼容性。我们实际上可以在线进行一些小规模的部署,并行流程可以更早开始。我在介绍它的时候也做了一些调整。有几个不同的阶段。该实验室,小批量和灰度,旨在适应阿里自己的在线监测业务,监测工具,操作和维护工具和业务操作系统的应用,现在将作出一些适当的削减,甚至更激进的措施。基本上,可以理解的是,我们已经将引入时间缩短了40%,并将商业发布从一个大型项目大大缩短为一个大型项目。
对于新的整合过程,我们的目的还是一样的。我们希望在线产品具有足够的可用性和可靠性。这些目标不会降低。同时,我们希望继续改善客户应用的实验体验,优化成本。项目经理经常谈论快速、优质和廉价的需求。这种事情很难发生。我们大多数人都必须为此做出一些权衡和牺牲。今天的分享结束了。谢谢你。
标题:刘星海:云计算时代的服务器开发与验证
地址:http://www.yunqingbao.cn/yqbxx/1380.html