托管一个连续运行的控制台应用程序

时间:2023-01-18 19:27:48

Azure VM, Cloud service or Web job?

Azure VM,云服务还是Web作业?

I have a configurable console application which runs continuosly. Currently it is running on a VM and consumes lot of memory (it is basically doing data mining).

我有一个可配置的控制台应用程序,它可以连续运行。目前它在VM上运行并消耗大量内存(它基本上是在进行数据挖掘)。

The current requirement is to have multiple instances of this application with different set of configuration which can be changed by specific users.

当前的要求是使该应用程序的多个实例具有不同的配置集,这些配置可以由特定用户更改。

So where should I host this application such that the configuration can be modified using some front end which provides access managements(like Sharepoint),ability to stop it/restart (like WCF service) without logging on the VM?

那么我应该在哪里托管这个应用程序,以便可以使用一些前端来修改配置,前端提供访问管理(如Sharepoint),能够在不登录VM的情况下停止/重启(如WCF服务)?

I am open to any suggestions/ideas. Thanks

我对任何建议/想法持开放态度。谢谢

3 个解决方案

#1


0  

I don't think there's any sold answer to this question as there is the preference variable but for what it's worth, if it were up to me I would deploy it against individual azure VM's for each specific set of users. That way if the server resources went up because of config changes the user group made it is isolated to that group, and with azure, will scale automatically to meet the resource demand. Then just build a little .net web app to allow user to authenticate and change configuration settings.

我不认为这个问题有任何卖出的答案,因为有偏好变量,但是对于它的价值,如果由我决定,我将针对每个特定的用户组针对各个azure VM进行部署。这样,如果服务器资源由于配置更改而上升,则用户组使其与该组隔离,并且使用azure,将自动扩展以满足资源需求。然后只需构建一个小的.net Web应用程序,以允许用户进行身份验证和更改配置设置。

#2


0  

You could expose an "admin" endpoint for your service (obviously you need authentication here!) that: 1. can return the current configuration 2. accept new configuration 3. restart the service (if needed). Stopping the service will be harder, since that leaves the question on how to start it again.

您可以为您的服务公开“管理”端点(显然您需要在此处进行身份验证!):1。可以返回当前配置2.接受新配置3.重新启动服务(如果需要)。停止服务将更难,因为这留下了如何再次启动它的问题。

Then you need to write your own (or use a 3-party (like sharepoint or a CMS)) application that will handle your users and under the hood consume your "admin" endpoint.

然后,您需要编写自己的(或使用三方(如sharepoint或CMS))应用程序,该应用程序将处理您的用户并在引擎盖下消耗您的“管理”端点。

Edit: The hosting part: If I understand you correctly your app is just an console application today, and you don't know how to host it? Well, there are many answers to that question. If you have a operations department go talk to them, if you are on your own play around and see what fits you and your environment best!

编辑:托管部分:如果我理解你的应用程序今天只是一个控制台应用程序,你不知道如何托管它?嗯,这个问题有很多答案。如果您有一个运营部门,请与他们交谈,如果您自己玩耍,看看最适合您和您的环境的是什么!

My tip: go for a http/https protocol/interface - just because there are many web host out there, and you can easy find tools for that protocol. if you are on the .NET platform check out Web.API or OWASP

我的提示:去寻找一个http / https协议/接口 - 只是因为那里有很多网络主机,你可以轻松找到该协议的工具。如果您在.NET平台上,请查看Web.API或OWASP

#3


0  

Azure now has Machine learning to process data mining. You should check if it's suit to you.

Azure现在具有机器学习来处理数据挖掘。你应该检查它是否适合你。

Otherwise, you can use Webjob:

否则,您可以使用Webjob:

  • Allow you to have multiple instances of your long time running job (Webjon scaling out).
  • 允许您拥有长时间运行作业的多个实例(Webjon扩展)。

  • AppSettings can be change from the Azure Portal or using the Azure Management API
  • 可以从Azure门户或使用Azure Management API更改AppSettings

#1


0  

I don't think there's any sold answer to this question as there is the preference variable but for what it's worth, if it were up to me I would deploy it against individual azure VM's for each specific set of users. That way if the server resources went up because of config changes the user group made it is isolated to that group, and with azure, will scale automatically to meet the resource demand. Then just build a little .net web app to allow user to authenticate and change configuration settings.

我不认为这个问题有任何卖出的答案,因为有偏好变量,但是对于它的价值,如果由我决定,我将针对每个特定的用户组针对各个azure VM进行部署。这样,如果服务器资源由于配置更改而上升,则用户组使其与该组隔离,并且使用azure,将自动扩展以满足资源需求。然后只需构建一个小的.net Web应用程序,以允许用户进行身份验证和更改配置设置。

#2


0  

You could expose an "admin" endpoint for your service (obviously you need authentication here!) that: 1. can return the current configuration 2. accept new configuration 3. restart the service (if needed). Stopping the service will be harder, since that leaves the question on how to start it again.

您可以为您的服务公开“管理”端点(显然您需要在此处进行身份验证!):1。可以返回当前配置2.接受新配置3.重新启动服务(如果需要)。停止服务将更难,因为这留下了如何再次启动它的问题。

Then you need to write your own (or use a 3-party (like sharepoint or a CMS)) application that will handle your users and under the hood consume your "admin" endpoint.

然后,您需要编写自己的(或使用三方(如sharepoint或CMS))应用程序,该应用程序将处理您的用户并在引擎盖下消耗您的“管理”端点。

Edit: The hosting part: If I understand you correctly your app is just an console application today, and you don't know how to host it? Well, there are many answers to that question. If you have a operations department go talk to them, if you are on your own play around and see what fits you and your environment best!

编辑:托管部分:如果我理解你的应用程序今天只是一个控制台应用程序,你不知道如何托管它?嗯,这个问题有很多答案。如果您有一个运营部门,请与他们交谈,如果您自己玩耍,看看最适合您和您的环境的是什么!

My tip: go for a http/https protocol/interface - just because there are many web host out there, and you can easy find tools for that protocol. if you are on the .NET platform check out Web.API or OWASP

我的提示:去寻找一个http / https协议/接口 - 只是因为那里有很多网络主机,你可以轻松找到该协议的工具。如果您在.NET平台上,请查看Web.API或OWASP

#3


0  

Azure now has Machine learning to process data mining. You should check if it's suit to you.

Azure现在具有机器学习来处理数据挖掘。你应该检查它是否适合你。

Otherwise, you can use Webjob:

否则,您可以使用Webjob:

  • Allow you to have multiple instances of your long time running job (Webjon scaling out).
  • 允许您拥有长时间运行作业的多个实例(Webjon扩展)。

  • AppSettings can be change from the Azure Portal or using the Azure Management API
  • 可以从Azure门户或使用Azure Management API更改AppSettings