Привет от Gitpod! (установка в Google Cloud + автоматическая настройка разработки)

Краткое обновление, на случай, если это кому-то пригодится — мы успешно развернули Discourse в Google Cloud! :tada: Он работает по адресу https://community.gitpod.io, и нам пока всё очень нравится.

Детали

В основном я следовал инструкции INSTALL-cloud и создал виртуальную машину GCE типа g1-small (1 vCPU, 1.7 ГБ памяти) с дополнительным SSD на 20 ГБ. (Примечание: изначально я рассматривал VM типа n1-standard-1, но для Discourse это показалось излишним).

Что касается выбора региона для VM, то, основываясь на этой статье, мы определили, что gce-us-east4 — лучший вариант, так как большинство пользователей Gitpod находятся в Северной Америке и Европе, но также их много в Азии, поэтому задержки там не должны быть слишком большими.

Для настройки почты мы очень хотели использовать наш аккаунт Google Apps. Мы пытались настроить SMTP-ретранслятор Gmail, но даже после тройной проверки правильности использования всех необходимых протоколов, разрешения их через брандмауэр GCP и добавления нужных IP-адресов в белый список, письма так и не отправлялись. Инструмент Discourse Doctor очень помог, но и он не справился. В итоге мы сдались и использовали SendGrid, так как всё равно хотели протестировать его для других задач. Настройка была очень простой, и всё заработало с первой попытки. К сведению, трафик нашего Discourse растёт, но пока легко укладывается в бесплатный тариф SendGrid (100 писем в день).

Затем мы настроили вход через GitHub OAuth (так же, как для gitpod.io, для удобства) и установили несколько полезных плагинов:

  • discourse-solved — для отметки вопросов как решённых
  • discourse-chat-integration — для уведомлений о новых темах в нашем внутреннем канале поддержки Slack

Также, к слову, я написал быстрый и неидеальный скрипт на Node.js spectrum-to-discourse.js для переноса старых тем из Spectrum в Discourse. Качество не на 100% оптимальное, и в скрипте, возможно, осталось несколько ошибок, но этого хватило, чтобы наполнить наш новый Discourse. Сейчас мы вручную проверяем, исправляем и улучшаем старые темы, когда видим, что они становятся популярными.

Надеюсь, эта информация кому-нибудь пригодится в будущем! :crossed_fingers:

Конечно! Я поделился с тобой более подробной информацией в личных сообщениях. :slight_smile:

Кстати, я уже создал Pull Request по этому поводу: DEV: Add fully-automated dev setup with Gitpod by jankeromnes · Pull Request #9026 · discourse/discourse · GitHub

Надеюсь, вам понравится. :slightly_smiling_face:

Краткое обновление: Google Cloud теперь рекомендует повысить производительность нашего экземпляра Discourse из-за «высокого использования памяти»:

В последнее время на этом экземпляре наблюдалось высокое использование памяти. Рекомендуется переключиться на тип машины: custom (1 vCPU, 2.75 ГБ памяти). Подробнее

Текущий тип машины
g1-small (1 vCPU, 1.7 ГБ памяти)

Новый тип машины
custom (1 vCPU, 2.75 ГБ памяти) Рекомендуется

Однако, поскольку мы сами не заметили никаких проблем с производительностью, пока не выполнили обновление. (Просто решил упомянуть это здесь, так как это может быть полезно.) В дальнейшем мы будем уделять больше внимания использованию памяти, и я обновлю этот пост, если мы всё же решим выполнить рекомендованное обновление.