如何让Bluemix获得多个运行时?

时间:2016-02-05 16:33:39

标签: deployment runtime ibm-cloud

我的主要应用程序需要Bluemix上的node.js运行时。但是,我的应用程序的其他组件需要Python和Java。当我推送我的应用程序时,如何让Bluemix完成所有3个运行时?

2 个答案:

答案 0 :(得分:1)

如果您需要三个不同的运行时,您的应用程序中很可能有多个组件(在本例中为node,python和java组件)。如果将应用程序分解为许多使用REST来回传递数据的较小应用程序,则可能更容易维护和调试。这需要一些额外的工作,但好处可能是值得的。

如果您确定需要多个构建包,则可以使用GitHub中的heroku-buildpack-multi来引入多个构建包,但这可能需要您维护不稳定的配置,从长远来看可能会导致问题。尽管如此,如果您创建指定其他构建包的.buildpacks(完整URL引用),则可以执行此操作。

答案 1 :(得分:0)

我建议遵循微服务架构,并将三个应用程序中每个应用程序的部署生命周期分开。您可以为每个应用程序提供manifest.yml文件,并在需要更新时推送该应用程序。这允许您单独缩放它们。

如果您确实需要同时推送和更新所有3个应用程序,您可以编写一个简单的脚本,对每个清单执行cf推送。

public class TestGarbage1 {

    public static void main(String args[]) {

        String m = "JAVA";   
        System.out.println(m.hashCode());         
        m = "java";
        System.gc();
        System.out.println(m.hashCode());
        m = "JAVA";
        System.out.println(m.hashCode());
    }
}

您还可以在一个清单文件中定义多个应用程序 https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#multi-apps

cf push -f ./some_directory/application1/
cf push -f ./some_directory/application2/
cf push -f ./some_directory/application3/