微服务部署---简单的jar与docker容器

时间:2017-12-30 02:14:56

标签: java docker war microservices continuous-deployment

我即将部署一组基于JAVA的微服务。 我很困惑是否:

  1. 通过" java -jar [JAR_NAME]"
  2. 将它们作为简单的罐子运行
  3. 在基于JAVA的docker容器中运行它们。
  4. 将它们当作战争来运行。
  5. 请告诉我每个实施的利弊,因为如果我使用建议的最佳方法,这将为我节省很多麻烦:)

    提前致谢。

1 个答案:

答案 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。