#google-app-engine #google-cloud-platform #google-cloud-run
# #google-app-engine #google-облачная платформа #google-cloud-run
Вопрос:
Я новичок в GCP и в настоящее время пытаюсь развернуть все свои приложения на их сервисах.
Для приложения в одном контейнере я использую CloudRun, который мне уже очень нравится.
Теперь я хочу развернуть приложение, которое использует Angular во внешнем интерфейсе и spring во внутреннем интерфейсе и SQL-DB (Postgres). Каждая часть этого находится в отдельном отдельном контейнере.
Должен ли я использовать для этой цели CloudRun или у GCP есть более подходящие сервисы, которые я должен рассмотреть, если я хочу разместить масштабируемое и бессерверное приложение? Итак, существует ли такая вещь, как лучшая практика для приложений с архитектурой внешнего интерфейса на GCP?
Ответ №1:
Я рекомендую вам использовать эти сервисы:
- Облачный SQL для размещения базы данных. Оно управляется для вас и эффективно
- Облачный запуск для бизнес-уровня (приложение spring).
Будьте осторожны, с spring холодный запуск может занять несколько секунд. Я написал статью об этом (статья довольно старая, и производительность теперь лучше при запуске в облаке, но задержка при первом запросе существует (и занимает 5-7 секунд для контейнера hello world)). Добавьте несколько процессоров (4 — хорошее число) для ускорения холодного запуска или используйте для этого параметр —min-instance (или другое решение, которое вы можете найти в одной из моих статей)
- Для интерфейса я рекомендую размещать статические файлы в облачном хранилище.
- Чтобы обслуживать это в Интернете, поместите балансировщик нагрузки перед этим
- Создайте бессерверную группу конечных точек сети (NEG) для облачной службы запуска
- Создайте серверную часть облачного хранилища для обслуживания статических файлов.
- Используйте нужный домен и обслуживайте его в SSL
- При необходимости используйте CDN для кэширования ваших статических файлов.
Ответ №2:
CloudRun запускает контейнеры без состояния. Он не делает различий между интерфейсом и серверной частью или рабочими заданиями.
Вы можете запускать свой интерфейс, серверную часть, базу кода администратора как облачную службу запуска.
Рядом с этим вы настраиваете Cloud SQL для своей операционной базы данных и подключаете облачные службы запуска к Cloud SQL connector, чтобы они могли использоваться для запросов на чтение / запись.