开发人员请注意!应对流量激增,你只需启用Qlik Core!

众所周知,凭借用户友好的可视化界面和简单易用的操作体验,Qlik向不具备IT知识的运营团队交付了令人满意的易用性,使其能够轻松地分析数据并获得明智的洞察。

众所周知,凭借用户友好的可视化界面和简单易用的操作体验,Qlik向不具备IT知识的运营团队交付了令人满意的易用性,使其能够轻松地分析数据并获得明智的洞察。而我们不常提及的是,针对庞大的开发人员群体,Qlik也从未在交付卓越解决方案的道路上有过丝毫懈怠。

根据美国劳工统计局 (U.S. Bureau of Labor Statistics) 的预测,由于市场对软件解决方案的需求量大幅增加,从2016年到2026年,软件开发从业人数将上涨24%,相比之下,所有职业的平均增长率仅为7%。而在中国,这一趋势也同样显著。由中国专业IT 区CSDN 发布的《2018-2019中国开发者调查 告》显示,目前中国30岁以下的年轻软件开发者占总从业人数的比重超过了7成,这意味着正不断地有大批年轻人加入软件开发者的队伍。

因此,为了向越来越多的开发人员朋友提供支持,Qlik团队正在努力交付更丰富、更强大、更易用的解决方案以及打造更蓬勃的开发人员 区。那么接下来,我们将介绍一项专为开发人员打造的创新成果——Qlik Core,并通过两个用例来展示其在构建数据驱动的解决方案方面所具备的深度与广度。

关于Qlik Core

Qlik Core是一个为开发人员提供的分析开发平台,它基于Qlik的强大关联引擎和Qlik授权的开源代码库而构建,用以构建、扩展和部署快速的、交互式的数据驱动应用,并能够在任何云环境中大规模交付以下功能,从而提高用户采纳、参与度和客户满意度:

  • 吸收合并不同的数据源,无论其体量有多大

  • 自动索引数据关系以支持数据探索、非层次搜索/过滤以及更多功能

  • 获得闪电般迅速的数据处理和分析计算

  • 使应用可以与状态管理进行交互您的下一款应用也许会大获成功,但在开发过程中,对所有数据进行编排和扩展将花费您大量精力。而如果您在云中使用Qlik Core,就可以自由地开发功能强大的应用,并在处理大量数据时避免编排和扩展性方面的困扰。由此,您将能够轻松部署该应用,且在它需要升级的时候轻松完成升级。

Qlik Core能够基于您选择的云平台和容器架构工作,包括Docker Swarm和Kubernetes等。这意味着您可以专注于应用的开发,并在现有的开发运营基础设施中快速构建它们。

用例1 : 非洲城市化应用

假设您正在开发一个需要自动扩展以处理不可预测的流量激增的交互式 站。

在这个用例中,我们创建了一个基于web的交互式可视化界面,以美观的用户界面展示了世界银行和联合国关于非洲经济增长的数据。

现在,我们假设某位领导人发现这个 站很有用,并把它分享给自己数百万的关注者。不过片刻,我们的 站就出现在了知名门户 站的首页上,流量急剧增加。那么,我们该如何做,才能保证在站点在面临突发的、不可预测的页面加载和站点交互时依旧能向客户交付一个积极良好的体验呢/span>

这就是我们为何需要Qlik Core!通过Qlik Core实现自动扩展,您将可以更轻松地使用数据撬动更大的的价值!

在本例中,我们使用 GKE (Google Kubernetes Engine) 在谷歌云上部署了一个交互式的数据可视化 站。而为了应对突发的流量增长情况,我们在Kubernetes中应用了Qlik关联引擎Pod的水平自动扩展

水平自动扩展是如何工作的/strong>

Qlik关联引擎使用了一个自定义度量 来监测每个引擎Pod中活动的会话数量 (请注意,您的项目也许会有所不同)。开源的监测工具Grafana负责监测,同时您可以使用Prometheus来监测和微调您的自动扩展度量。

当Pod需要更多的容量,新节点就会被自动添加到集群之中。而当集群存在多余的容量时,节点就可以被删除。在本例中,Pod水平自动扩展 (HPA) 的配置为在一个引擎上最多放置20个会话——虽然这是一个比较低的设置,但非常适合进行实验。引擎部署配置为每个节点运行一个引擎。

随着活动会话的增加,HPA将向现有节点添加一个新的pod,或者根据需要启动尽可能多的新节点。使用新的引擎Pod启动一个新节点通常需要30秒到5分钟。这一时长取决于云供应商及其创建新节点的速度 (理论上,节点越大,创建新节点所需的时间就越长)。因此,您无需再担心应用的访问量激增,Qlik Core可以帮助您轻松处理这种情况。并且,您还可以享受到云计算的一个关键优势——仅为您所使用的资源付费。

用例2 : 辅助处方应用

接下来,让我们将目光转向另一个用例——我们正在部署一个能够支持多个用户访问相同Qlik关联引擎实例的数据应用,而与此同时,该应用也需要扩展以处理增加的活动。

该医学分析应用以全世界范围内的医生群体为目标,提供了有关药物、治疗和反应方面的先进分析能力。我们通过一个自定义的web用户界面,以单一的Qlik关联引擎文档为多个用户提供了基于Qlik Core的服务。

创建这个多用户应用所面临的关键挑战就是平衡负载。我们的设计有多个Qlik关联引擎实例,它们服务于同一个文档。用户将根据一个简单的循环负载平衡器被分配到各个Qlik关联引擎实例。

虽然我们可以认为这样的应用拥有相对固定的用户量,但是我们也需要为激增的活动进行准备——比如遇到流行病传播期。这很可能将成为云架构和容器编排拯救生命的时刻。

那么,它又是如何工作的/strong>

我们选择使用Docker Swarm将应用托管在AWS上,当然您也可以使用其他容器编排服务将其部署到其他云供应商。Qlik关联引擎运行在单个Docker集群中,拥有一个管理节点和两种工作节点

管理节点使用开源的度量工具Grafana和Prometheus来处理我们的web 关、身份验证、会话管理和监测工作。

每个引擎工作节点负责运行一组最小的服务,以支持单个Qlik关联引擎实例。这些节点非常易于伸缩。

最后,ELK (Elasticsearch、Logstash和Kibana) 工作节点负责运行ELK堆栈以及用于搜索、数据处理和可视化的服务。这个节点卸载了一些可能影响Qlik关联引擎性能的工作。


然后,您可以使用一个单一的脚本在AWS中部署一个运行这些节点的Docker Swarm。默认情况下,它将为每个实例启动两个引擎工作节点。因此,实现扩展变得和添加更多的引擎工作节点一样简单,而这些新的工作节点将自动启动Qlik关联引擎。除此之外,您还可以在有效平衡负载的同时使用标准的监测及日志收集工具。

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月5日
下一篇 2019年7月5日

相关推荐

发表回复

登录后才能评论