对于我转换到Cloud Foundry平台的应用程序,我有几个模板文件。这些基本上是将转换为PDF的文档模板。在将这些应用程序提供给我的应用程序时,我有哪些选择?没有持久的系统驱动器,所以我似乎不能上传它们。 Cloud Foundry建议你将它们保存在像Amazon S3,Dropbox或Box这样的东西上,或者只是将它们作为blob存放在数据库中,但这似乎是一个非常奇怪的解决方法。
这些模板将与应用程序文件分开更改,因此我不打算将它们放在应用程序Jar中。
答案 0 :(得分:5)
Cloud Foundry建议你将它们保存在像Amazon S3,Dropbox或Box这样的东西上,或者只是将它们作为blob存放在数据库中,但这似乎是一种非常奇怪的解决方法。
为什么你认为这是一个好奇的解决方法?
Cloud Foundry的主要优势之一是弹性可伸缩性。一旦您的应用程序在CF上运行,您就可以轻松地按需扩展它。随着您的扩展,应用程序的新副本将在新容器中启动。缩小规模时,应用程序容器将被销毁。只有属于原始应用程序推送的文件才会被放入一个新容器中。
如果您有这些模板的文件随着时间的推移而发生变化并将它们存储在容器的文件系统中,则需要确保应用程序的所有实例始终具有相同的模板文件副本向上和向下扩展。上传新模板时,您必须确保将它们分发到所有实例,而不仅仅是处理上载的一个实例。由于新的应用实例是在扩展时创建的,因此您需要确保它们具有最新版本的模板。
CF的另一个好处是应用程序健康管理。如果您的应用程序实例因任何原因崩溃,CF将检测到此情况并在新容器中启动新实例。同样,只有属于原始应用程序推送的文件才会被放入新容器中。您需要确保在启动后将最新版本的模板文件添加到容器中。
在应用程序容器外部的持久性存储中存储具有与应用程序分离的生命周期的文件可以解决所有这些问题,并确保应用程序的所有实例在扩展实例时获得相同版本的文件向下或当崩溃的实例复活。