我第一次写了一个Web服务,它将调用外部程序来批量处理请求。前端将接受文件上载,然后将它们放入队列中。后端的工作人员将获取该文件,通过ffmpeg和我的其他管道运行它,并在流程完成时发送电子邮件。
我的后端进程正在我的计算机上运行(Ubuntu 10.04)。问题是:我应该尝试使用从头编译的二进制文件重新创建该管道吗?或者在真实世界中进行配置时可以使用apt
吗?
并非所有托管服务都使用Ubuntu,并非所有托管服务都使用root访问权限。 (我还没有选择主持人。)但是,他们会让我上传二进制文件来执行,很多人都给我gcc
的shell访问权限。
通常这将是一个没有脑子的人,我会从头开始编译。但这样做 - 更不用说试图弄清楚如何创建一个独立于平台的.tar.gz二进制文件 - 将是一项非常重要的任务,最终无法帮助我运送我的产品。
您是否有任何关于设置堆栈的最佳方法的想法,以便我不依赖于特定的托管服务提供商?我应该尝试使用我需要的配置创建自己的.deb,其中包含Ubuntu版本的ffmpeg(以及其他工具)吗?
如果我没有管理自己的服务器/虚拟机(这可能就是我必须做的事情),我怎么能实现这个目标?
答案 0 :(得分:1)
问题是:我是否应该尝试使用从头编译的二进制文件重新创建该管道?或者在真实世界中配置时是否可以使用apt?
反过来说:在真实世界恕我直言中部署无包装是不可取的
而不是所有人都给我root权限
如何在没有root访问权限的情况下部署.deb。 Chroot监狱?
但这样做 - 更不用说试图弄清楚如何创建一个独立于平台的.tar.gz二进制文件 - 将是一项非常重要的任务,最终无法帮助我运送我的产品。
+1你回答你自己的问题。除非必须,否则不要插手。
您是否对设置堆栈的最佳方式有任何想法,以便我不会与特定的托管服务提供商绑定?
仅依赖于包装良好的标准库(例如ffmpeg)。否则将它们包含在您自己的部署中。几十年来,这个问题对于10万个Linux应用程序来说并不太难解决,所以对你来说也许是可行的。
开箱即用:
查看权利规模和其他具有专门图像/工具链的云提供商/代理商,尤其是视频编码。
“常规”VPS提供商(使用Xen或Virtuozzo)通常不会对这些工作负载感到满意,但EC2,Rackspace及其批次将完全没问题。 总的来说,我不相信不授予root访问权限的云基础架构提供商将允许计算密集型工作负载。 $ 0.02