Добавление файлов для приложения для использования в Cloud Foundry
Для приложения, которое я конвертирую на платформу Cloud Foundry, у меня есть пара файлов шаблонов. Это в основном шаблоны для документов, которые будут конвертированы в PDF. Какие есть варианты, когда они доступны для моего приложения? Постоянных системных дисков нет, поэтому я не могу просто загрузить их. Cloud Foundry предлагает вам сохранить их на чем-то вроде Amazon S3, Dropbox или Box, или просто поместить их в базу данных в виде BLOB-объектов, но это выглядит как очень любопытный обходной путь.
Эти шаблоны будут меняться отдельно от файлов приложения, поэтому я не собираюсь размещать их в приложении Jar.
1 ответ
Cloud Foundry предлагает вам сохранить их на чем-то вроде Amazon S3, Dropbox или Box, или просто поместить их в базу данных в виде BLOB-объектов, но это выглядит как очень любопытный обходной путь.
Почему вы считаете это любопытным решением проблемы?
Одним из основных преимуществ Cloud Foundry является эластичная масштабируемость. Как только ваше приложение будет запущено на CF, вы сможете легко увеличивать и уменьшать его по требованию. По мере масштабирования новые копии приложения запускаются в свежих контейнерах. По мере сокращения контейнеры приложения уничтожаются. Только файлы, которые являются частью исходного приложения, помещаются в новый контейнер.
Если у вас есть файлы, подобные этим шаблонам, которые меняются с течением времени, и вы храните их в файловой системе контейнера, вам необходимо убедиться, что все экземпляры приложения всегда имеют одинаковые копии файла шаблона во время масштабирования и вниз. Когда вы загружаете новые шаблоны, вам необходимо убедиться, что они распространяются на все экземпляры, а не только на один экземпляр, обрабатывающий загрузку. По мере того, как новые экземпляры приложений создаются в увеличенном масштабе, вам необходимо убедиться, что они имеют самые последние версии шаблонов.
Еще одним преимуществом CF является управление здоровьем приложений. Если экземпляр вашего приложения по какой-либо причине дает сбой, CF обнаружит это и запустит новый экземпляр в новом контейнере. Опять же, только файлы, которые были частью исходного приложения, будут добавлены в новый контейнер. Вам нужно убедиться, что последняя версия файлов шаблонов была добавлена в контейнер после запуска.
Хранение таких файлов, жизненный цикл которых отделен от приложения в постоянном хранилище за пределами контейнера приложения, решает все эти проблемы и гарантирует, что все экземпляры приложения получат одинаковые версии файлов при масштабировании экземпляров вверх или вниз или как разбившиеся экземпляры воскрешены.