虽然新冠肺炎大流行仍在对社区生活和经济形成不利影响,可是在另外一方面,在电子商务、物流、在线学习、送餐、在线商业协做等领域,用户对许多公司的产品和服务的需求都出现了大幅飙升。对于这些公司中的许多公司来讲,就地避难所和禁闭令形成了用户需求、以及交易和支付方式的改变,从而使一些公司的业务激增。这些激增使应用程序的使用量迅速飙升,从而可能会致使业务延迟和中断,这会让用户感到沮丧。数据库
若是你所在的企业的业务和应用程序负载急剧增长,你会作些什么?你如何才能快速提升应用程序的性能和可扩展性,以确保良好的客户体验呢?如下是以正确方式快速扩展应用程序的6条经验。后端
了解所有挑战缓存
只解决部分问题可能达不到预期的效果,必定要考虑如下全部的因素。服务器
技术问题:负载下的应用程序性能(以及最终的用户体验)由延迟和并发之间的相互做用决定。延迟是特定操做所需的时间,例如网站响应用户请求所需的时间。并发性是指系统能够同时处理的请求数。当并发性不可伸缩时,需求的显著增长可能会致使延迟的增长,由于系统不能在接收到全部请求时当即响应它们。这可能会致使糟糕的客户体验,由于响应时间从几分之一秒增长到几秒,甚至更长,以致于可能致使没法响应全部请求。所以,虽然确保单个请求的低延迟可能很重要,但它自己可能没法解决并发激增带来的挑战。所以,必须找到一种方法来扩展并发用户数,同时保持所需的响应时间。此外,应用程序必须可以在多个云提供商和内部部署服务器的混合环境中无缝扩展。网络
计时:一个须要数年时间才能实现的策略,好比从头开始从新设计应用程序,对于解决眼前的需求没有什么帮助。采用的解决方案应该可以在几周或几个月内开始扩展。架构
成本:不多有公司在没有预算限制的状况下应对这一挑战,所以将前期投资降至最低并将增长的运营成本降至最低的战略相当重要。并发
作好短时间和长期计划机器学习
即便解决了在下降延迟的同时增长并发性的挑战,也不要仓促进行可能付出高昂代价的短时间修复。若是应用程序的彻底从新设计不是有计划的,那么能够采用一种策略,使现有的基础设施可以根据需求进行大规模扩展。分布式
选择正确的技术ide
事实证实,开源内存计算解决方案是在保持或下降延迟的同时快速扩展系统并发性的最具成本效益的方法。例如,Apache Ignite是部署在商用服务器集群上的分布式内存计算解决方案。它将集群的可用CPU和RAM池化,并将数据和计算分发到各个节点。Ignite部署在本地、公共云、私有云或混合环境中,能够将其插入现有应用程序和数据层之间的内存数据网格,而无需对其中任何一个进行重大修改。IGNITE还支持ANSI-99 SQL和ACID事务。
Apache Ignite内存数据网格就位后,数据库中的相关数据将“缓存”在计算集群的RAM中,而且可用于处理,而不会因正常读写基于磁盘的数据存储而致使延迟。Ignite IMDG使用MapReduce方法,并在集群节点上运行应用程序代码,以便在整个集群上执行大规模并行处理,同时最大限度地减小网络上的数据移动。这种内存中的数据缓存、将计算发送到集群节点和MPP的组合显著提升了并发性并下降了延迟,与基于磁盘的数据库构建的应用程序相比,应用程序性能提升了1,000倍。
Ignite的分布式体系结构只需添加新节点就能够增长集群的计算能力和RAM。IGNITE会自动检测额外的节点,并跨集群中的全部节点从新分配数据,从而确保CPU和RAM组合的最佳使用。轻松将节点添加到集群的能力还可实现巨大的可扩展性,觉得业务快速增加提供支持。最后,IMDG经过将应用层对IMDG中的数据所作的更改写回源数据存储来确保数据一致性。
Apache Ignite还能够经过支持两个日益重要的战略来验证基础设施的将来。
数字集成集线器(DIH):DIH架构能够支持须要360度数据视图的实时业务流程。它提供了一个通用数据访问层,用于聚合和处理来自数据流以及内部和基于云的源(包括内部和云数据库、数据湖、数据仓库和SaaS应用)的数据。而后,多个面向客户的业务应用程序能够访问聚合数据并之内存中的速度处理数据,而无需经过网络移动数据。DIH自动将消费应用程序对数据所作的更改同步到后端数据存储,同时减小或消除对这些数据源的API调用的须要。
混合事务/分析处理(HTAP):HTAP是对事务和分析的相同内存数据集的高速处理。这样就不须要耗时的提取、转换和加载(ETL)过程来按期将数据从联机事务处理(OLTP)系统复制到单独的联机分析处理(OLAP)系统。HTAP由内存计算平台提供支持,可在不影响总体系统性能的状况下对运营数据运行预约义的分析查询。
考虑开放源码堆栈
要继续建立经济高效、可快速扩展的基础设施,请考虑如下其余通过验证的开源解决方案:
Apache Kafka或Apache Flink,用于构建实时数据管道,用于将数据从股票行情或物联网设备等流来源传送到Apache Ignite内存数据网格。
Kubernetes用于自动部署和管理已在Docker或其余容器解决方案中集成的应用程序。将应用程序放入容器中并使其管理自动化,这是在分布式、混合、多云世界中成功构建实时、端到端业务流程的关键。
Apache Spark,用于处理和分析大量分布式数据。Spark利用Ignite内存计算平台,利用经过Kafka或Flink流传输管道获取的海量数据,更有效地训练机器学习模型。
正确构建、部署和维护
因为但愿在更快的时间内部署这些解决方案,同时延迟的后果可能很是高,所以必须对项目可用的内部资源进行现实的评估。若是缺少专业知识或可用性,请坚决果断地咨询第三方专家。能够根据合同轻松得到对全部这些开放源码解决方案的支持,从而有可能得到所需的专业知识,而无需花费时间来扩大内部团队。
了解更多信息
许多在线资源能够帮助你快速掌握这些技术,并肯定哪些策略可能适合你的组织。
不管你的目标是在业务活动激增的状况下确保最佳的客户体验,仍是为大流行后的经济复苏作准备,由内存计算提供支持的开源基础设施堆栈都是将史无前例的速度与巨大的可扩展性相结合以实现实时业务流程的经济高效的途径。
【责任编辑:赵宁宁 TEL:(010)68476606】