Наилучшей практики для развертывания веб-приложений на Java с минимальным временем простоя?



при развертывании большого Java webapp (>100 МБ .война) в настоящее время я использую следующий процесс развертывания:




  • приложение .файл war развертывается локально на машине разработки.

  • расширенное приложение rsync:ed от машины разработки до живой среды.

  • сервер приложений в реальной среде будет перезапущен после того, как rsync. Этот шаг не является строго необходимым, но я обнаружил, что перезапуск сервера приложений на развертывание избегает "Ява.ленг.OutOfMemoryError: PermGen space " из-за частой загрузки класса.


хорошие вещи об этом подходе:




  • rsync минимизирует объем данных, отправленных с компьютера разработки в живую среду. Загрузка всего .файл war занимает более десяти минут, в то время как rsync занимает пару секунд.


плохие вещи об этом подходе:




  • В то время как rsync работает контекст приложения перезапускается с момента обновления файлов. В идеале перезапуск должен произойти после завершения rsync, а не когда он все еще работает.

  • перезапуск сервера приложений вызывает примерно две минуты простоя.


Я хотел бы найти процесс развертывания со следующими свойствами:




  • минимальное время простоя во время процесса развертывания.

  • минимальное время передачи данных.

  • Если процесс развертывания конкретный сервер приложений, сервер приложений должен быть с открытым исходным кодом.


вопрос:




  • учитывая заявленные требования, каков оптимальный процесс развертывания?

627   0  

Comments

    Ничего не найдено.