我有3种不同的服务,使用GraphicsMagick作为依赖,我只是从Docker开始。所以我想知道,我应该为GraphicsMagick(可能使用PHP)制作一个单独的光源API并将其放在一个单独的Docker容器中吗?由于GraphicsMagick只是一个可执行文件。
或者它会很慢,最好的方法是将GraphicsMagick安装为每个服务容器的依赖项?
谢谢!
答案 0 :(得分:1)
正如评论和原始问题所述,这里有两种方法。一种是在基本映像或单个服务映像中安装GraphicsMagick。另一种方法是构建一个特定于GraphicsMagick的单独服务(一种工作或图像操作API)。我想答案将取决于你现在最重要的利弊。
基本图像中的GraphicsMagick具有易于实现的优点。你不需要额外建造一些东西。 GraphicsMagick二进制文件不需要安装太麻烦,可能只会为最终结果图像添加几MB大小。
使用GraphicsMagick构建单独的API服务映像会产生开发时间和服务复杂性的开销。您可能还需要使用此模型实现某种服务发现,以便您的其他服务映像知道如何使用此新API。虽然在未来的道路上,这将是更具可扩展性的模型。根据负载的位置,这可以帮助单独扩展其他服务容器,并且如果需要也可以在单独的主机上运行,尤其是当图像处理可以使用CPU并使其他服务饿死时。
所以我会问自己这些问题:
如果您对所有这些问题的回答都是肯定的,那么您可能会为此建立一个单独的服务。 Docker非常适合面向服务的体系结构,这可能是构建应用程序的更合适的方法。但是,对于那些能够正常工作的东西,可以说很多东西。并且现在花费的时间很少,特别是如果它能在很长一段时间内正常工作。