0

第一次,我正在编写一个 Web 服务,它将调用外部程序来批量处理请求。前端将接受文件上传,然后将它们放入队列中。后端的工作人员将获取该文件,通过 ffmpeg 和我的管道的其余部分运行它,并在该过程完成时发送一封电子邮件。

我的后端进程在我的计算机上运行(Ubuntu 10.04)。问题是:我是否应该尝试使用从头开始编译的二进制文件重新创建该管道?或者apt在真实世界中配置时可以使用吗?

并非所有托管服务都使用 Ubuntu,也不是所有托管服务都给我 root 访问权限。(我还没有选择主机。)但是,他们会让我上传二进制文件来执行,而且很多都给我 shell 访问权限gcc

通常这将是一个明智的选择,我会从头开始编译它。但这样做 - 更不用说试图弄清楚如何创建一个独立于平台的 .tar.gz 二进制文件 - 将是一项艰巨的任务,最终并不能真正帮助我发布我的产品。

您对设置我的堆栈的最佳方式有什么想法,这样我就不会被绑定到特定的托管服务提供商?我是否应该尝试创建自己的 .deb,其中包含 Ubuntu 版本的 ffmpeg(和其他工具)以及我需要的配置?

缺少我管理自己的服务器/虚拟机的设置(这很可能是我必须做的),我该如何完成呢?

4

1 回答 1

1

问题是:我是否应该尝试使用从头开始编译的二进制文件重新创建该管道?或者在 The Real World 中配置时可以使用 apt 吗?

它是相反的:在现实世界恕我直言,不打包部署是不行的

并不是所有人都给我root访问权限

您将如何部署没有 root 访问权限的 .deb。Chroot监狱?

但这样做 - 更不用说试图弄清楚如何创建一个独立于平台的 .tar.gz 二进制文件 - 将是一项艰巨的任务,最终并不能真正帮助我发布我的产品。

+1您回答自己的问题。除非万不得已,否则不要插手。

您对设置我的堆栈的最佳方式有什么想法,这样我就不会被绑定到特定的托管服务提供商?

仅依赖于打包好的标准库(例如 ffmpeg)。否则,将它们包含在您自己的部署中。几十年来,对于成千上万个 Linux 应用程序来说,这个问题并不太难解决,所以它对你来说可能也是可行的。


盒子外面:

查看 rightscale 和其他具有专门的图像/工具链的云提供商/代理,尤其是用于视频编码。

一个“常规”VPS 提供商(使用 Xen 或 Virtuozzo)通常不会对这些类型的工作负载感到满意,但 EC2、Rackspace 和他们的很多东西绝对可以接受。一般来说,我不相信不授予 root 访问权限的云基础设施提供商将允许计算密集型工作负载。0.02 美元

于 2011-04-27T23:48:24.860 回答