对于接收各种加密和/或压缩文件、提取并操作这些文件的流程,Azure是否是一个合适/可行的平台?
例如,我目前有一个进程使用SSIS下载上面描述的平面文件,并将它们加载到数据库中。然后提取新文件并使用gzip或PGP加密并使用FTP导出。
如果我要将此流程迁移到Azure+SQL Azure,最好的方法是什么?我有一个前端,可以将文件发布到blob存储中——我该何去何从?VM角色?工人角色?
我认为Azure非常适合这种情况。
由于您已经有了一个前端,我会对它进行一个小的更改,这样当它将文件存储在blob存储区时,它会向队列中写入一条消息,其中包含要处理的文件的路径以及关于它是如何加密的信息(若您有这些信息,它会使后面的处理更容易)。
我会写一个类,它能够监视这个队列的传入工作。它从队列中取出消息(您需要确保在将消息从队列中移出时设置的可见性超时足够,以便您可以在消息过期之前完成此处理),执行您已经指定的工作,然后删除队列消息,表示它已经完成了这项工作。
在基本设置中,编写一个使用上面类的辅助角色。如果您能够在一个实例上同时处理多个文件,请让worker角色在启动时在其自己的线程上创建此类的多个实例。
如果您需要更多的处理能力,请部署更多的工作实例。
knightpfhor的回答中还有一个补充:工作人员角色几乎可以满足您的所有需求,因为您可以使用管理权限运行启动任务。很少有情况需要VM角色:
- 启动/设置需要很长时间。这有点主观,但一个好的经验法则是大约5分钟
- 启动/设置任务不可靠,第一次运行时并不总是有效
- 需要人与人之间的互动