我即将部署一组基于JAVA的微服务。 我很困惑是否:
请告诉我每个实施的利弊,因为如果我使用建议的最佳方法,这将为我节省很多麻烦:)
提前致谢。
答案 0 :(得分:0)
绝对是Docker。使用集装箱化可为您提供最大的灵活性。
在您的第一种方法中,您的jar依赖于Java。无论何时创建新VM,都需要安装一组修复软件来支持您的应用程序。
第二种方法的好处,
首先,一切都将在单个容器中。
您可以在容器中安装所有必需的软件,该容器可以是任何VM中的用户。您可以灵活地为每个微服务使用您选择的Java。只安装docker,一切都会有效。
第二,Dev Prod Parity
如果您非常关注微服务架构和12-factor应用程序。然后docker有助于支持很多因素。 您的Java和其他软件将在您的所有环境中独一无二。这意味着,由于运行时环境的某些版本不匹配,您是否会在QA中工作而不会在Prod中工作,这绝不会令人惊讶。
第三,灵活性
如果你进入微服务架构,那么为什么只有java。您也可以使用GO,Python或其他语言。此时,为每个VM上的每个平台安装运行时环境,在容器中安装微服务是非常有用的。
最后,部署容易
您可以使用docker-compose或docker swarm在单个命令中运行100多个mivroservice。