У меня есть 2 репозитория, расположенных в Bitbucket - Backend (приложение Laravel как API и точка входа) и Frontend (внешний интерфейс основного приложения - приложение VueJs).Моя цель - настроить непрерывное развертывание, чтобы всякий раз, когда что-то выдвигалось в любом из репозиториев в главном (или другом выбранном мной филиале), оно запускало что-то, чтобы все приложение собиралось и достигало сервера AWS EC2.
Я рассмотрел / попробовал следующее:
- AWS CodePipeline и / или CodeDeploy.Это выглядело как отличный вариант, поскольку серверы также находятся в AWS.Однако поддержка Bitbucket из коробки не поддерживается, поэтому необходимо перейти к Bitbucket Pipeline -> AWS Lambda -> AWS S3 -> AWS CodePipeline / CodeDeploy -> AWS EC2.Это кажется очень длительным путешествием, и я не уверен, что это хорошая практика.
- Использование Laravel Forge для развертывания приложения Laravel и добавления дополнительных шагов для сборки приложения VueJS.Это казалось очень простым решением, однако процесс сборки, похоже, завершается сбоем, так как он занимает много времени и завершается сбоем без ошибок (тогда как я могу запустить точно такой же процесс на своей локальной машине или на другом сервере, размещенном в другом месте).Я не уверен, что это связано с тем, как сервер настроен, как Forge запускает сценарий развертывания, или сервер слишком слаб, чтобы его обработать.
Главный мой вопрос:лучшие практики для развертывания приложения таких компонентов?Я прочитал много учебных пособий / статей о развертывании приложения NodeJS или приложения Laravel, но не получил хорошей информации о сценарии, подобном этому.
Было бы лучше создать внешнее приложение локально иконтроль версий встроенного файла JS?Или я должен создать конвейер в Bitbucket, который будет создавать приложение, а затем развертывать его?Или лучше всего просто управлять версиями и развертывать исходные файлы и оставлять весь процесс сборки последним шагом в процессе развертывания, который будет выполнять сервер, на котором размещено само приложение?Также есть несколько статей, в которых предлагается разместить все интерфейсное приложение в корзине S3 - это тоже будет плохая практика?
Цените любую помощь и ресурсы, которые могут помочь!