Стратегия развертывания версионных ресурсов (для ресурсов приложения PHP в Amazon S3)

В настоящее время я разворачиваю статические активы приложения PHP, используя s3cmd.

Если ресурс для Amazon S3 изменился (например, скрипт JavaScript), я переименую его вручную, чтобы новая версия синхронизировалась и обслуживалась Amazon Cloudfront.

Существуют ли документированные способы развертывания статических ресурсов приложения PHP в Amazon S3? Я видел, что сайты используют хэш для ссылки на определенную версию своих ресурсов. Мне интересно, как веб-приложение ссылается на этот хеш (например, на git commit SHA?).

Подход, который я видел в работе, — это запись в автономный файл конфигурации, который содержит текущий SHA, и чтение из него для развертывания.

Обновление 1 с текущим процессом

Я хочу сделать развертывание активов более автоматизированным:

  • Внесите изменения в JavaScript приложения
  • Переименовать скрипт из app.23.js в app.24.js
  • Измените HTML-шаблон заголовка сайта, чтобы он ссылался на app.24.js
  • Зафиксируйте все изменения в git
  • Объединить develop разветвляться в master
  • Пометьте коммит новым номером версии
  • Нажмите код для BitBucket
  • Используйте s3cmd для синхронизации нового скрипта с Amazon S3 (и, следовательно, Cloudfront CDN)
  • SSH на сервер, и вытащить последнее дерево мерзавца. Производственный сервер обслуживает master ветка.

0

Решение

Я хотел бы думать, что нет конкретного ответа на этот вопрос, но вот несколько вещей.

  1. Если вы хотите автоматизировать только ручную работу, которую вы выполняете, возможно, стоит взглянуть на несколько инструментов развертывания. Capistrano и Magallanes — это два имени, которые мне приходят в голову, но вы можете зайти в Google, и я уверен, что вы найдете много вариантов.

  2. Платформа Rails была основана на философии, что есть лучший способ сделать что-то. Он также использует хэши для создания версий статических ресурсов и делает все это из коробки на лету. Вы можете посмотреть на реализацию хеширования в вашем случае.

  3. Grunt — еще один инструмент автоматизации, на который вы можете посмотреть. Я нашел этот модуль, который может пригодиться https://github.com/theasta/grunt-assets-versioning

Я бы сказал, что 2,3,4 являются проблемными областями в вашем рабочем процессе. Переименование вручную и обновление кода каждый раз не слишком приятно. Как вы указали, GIT-хэши уникальны, поэтому, возможно, добавьте GIT-хэш к вашим ресурсам во время развертывания и синхронизируйте их с S3 / Cloudfront?

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]