专有网络 VPC_怎么选_云计算技术架构

混合云 虚拟云 浏览

小编:在我的CloudFoundryFun系列的第四篇文章中,我们将深入了解CloudFoundryUniverse并讨论任务。任务是确定性程序,可以手动触发,也可以安排。 关于任务 当我们想到应用程序和服务时,我们

在我的CloudFoundryFun系列的第四篇文章中,我们将深入了解CloudFoundryUniverse并讨论任务。任务是确定性程序,可以手动触发,也可以安排。

关于任务

当我们想到应用程序和服务时,我们通常会想到在理想情况下永远不会终止的进程。大多数时候,他们都呆在原地等待收到的请求。一旦一个请求出现,应用程序服务于该请求,然后返回等待状态。

虽然这当然是云应用程序的主要目的,但是有很多任务需要做一些事情然后终止的好例子。可能的例子有:

迁移数据库发送电子邮件运行批处理作业运行数据处理脚本处理图像优化搜索索引上传数据备份数据

这些任务可能只发生一次,数据存储要求,如数据库迁移,也可能以固定的时间间隔发生,如数据上传。无论哪种方式,云平台都需要一种机制来以资源和成本高效的方式处理任务。

云铸造任务

云铸造有自己的任务概念来解决这些问题。但别担心,这是一个你已经非常熟悉的概念!

Cloud Foundry中的任务是尚未启动且没有任何实例运行的应用程序。您可以使用no start标志来推送应用程序而不启动它。这确保了应用程序不会消耗你的资源,也不会在不运行时花费你任何东西。

任务基本上是一个独立的云铸造应用程序。它可以使用与应用程序相同的服务绑定,并通过消息服务进行通信。

我不想说一种方法优于另一种方法。我认为根据您的个人需求评估这一点很重要。

如果您曾经使用过云应用程序编程模型,那么您已经使用了CF任务。您可能已经注意到您的CAP项目至少包含两个模块:

db模块,用于定义数据模式srv模块,定义服务层

这两个模块的目的是什么,在部署和运行时会发生什么?这是一个非常好的问题,所以让我们在部署MTA存档后看看云驾驶舱:

您可以看到,srv模块开始为传入请求提供服务。另一侧的db模块不再运行。这是有意的,你的应用程序没有崩溃。让我们看看相关的日志

,这样您就可以看到这个模块触发了一个任务来设置DB模式并导入示例数据。Cloud Foundry CLI实际上告诉您这是一个任务(红色框中的[APP/task]),而不是常规应用程序。

现在您了解了什么是任务以及它们是如何在生产场景中使用的。下一步是:如何将它们用于我自己的应用程序?

如你所知,CloudFoundry建立在开放标准之上,而不是重新发明轮子。您可以在计算机上以与本地命令相同的方式运行CF任务。使用正在运行的Cloud Foundry应用程序的名称作为,可以是您选择的任何终端命令。

安排周期性任务通常是有意义的。例如通过电子邮件发送报告或将新数据导入数据库。对于这些场景,SAP在云平台上提供了Job Scheduler服务。您可以使用此服务在一个仪表板中计划和管理所有任务。服务仪表板还允许您查看和下载运行日志。

实践

您知道我的帖子,特别是在本系列中,云磐大数据,始终包含实践部分。让我们进入有趣的部分!

让我们编写一个小应用程序,提供有关德甲最新得分的信息。对于这个任务,我们利用一个免费的API来获取过去的结果。然后,且云服务器,我们将结果保存到绑定到应用程序的MongoDB支持服务。像大多数其他主要的体育联赛一样,德甲的比赛(几乎)总是安排在周末。每天或更频繁地获取最新结果是没有意义的。相反,我们希望每周获取一次最新的结果,并将它们导入我们的数据库。

让我们将我们的迷你应用程序分成以下四个文件:

the持久性.js文件负责数据库连接。它提供了两个功能来读写数据到我们的MongoDB中索引.js文件启动一个简单的基于express的服务器。对该服务器的请求返回所有可用的匹配数据。

最后一个JS文件,获取.js,调用公共API获取最新结果并将其插入数据库。

在生产性场景中,我们希望检查重复数据。但是为了简单起见,云服务器更好,我们把这部分放在这里包.json文件将所有内容绑定在一起并定义npm脚本。当我们部署应用程序时,CloudFoundry将执行npm start来启动服务。

在这里,我们将任务集成到同一个应用程序中,作为我们的服务器。在生产场景中,您可能需要将服务器应用程序与任务分离。

,数据管理平台

当前网址:http://www.vmchk.com/meishi/72711.html

 
你可能喜欢的: