Как развернуть приложение nodejs в Google cloud?

Я пытаюсь развернуть приложение nodejs в Google cloud, я опубликовал несколько вопросов SO об ошибках, которые я получаю, и как их исправить. Позвольте мне проиллюстрировать мои усилия...

1) Я попытался следовать учебник, развертывание приложения hello world. Когда я ввел команду на развертывание,

$ gcloud preview app deploy app.yaml --set-default

это дало мне ошибку, сказав, что управляемые vms недоступны для региона вашего приложения. Я связался с кем-то из Google, представитель технической поддержки от google, сказал, что его зовут Линг, и он сказал, что "не знал, что управляемые vms не поддерживаются в Индии", и он хотел, чтобы я указал, где я нашел эту информацию. Поэтому я послал его этой, обратите внимание на один из ответов. ЛАДНО.....

2) Итак, я застрял,не знал, что делать. Поиск "как развернуть приложение nodejs в Google cloud" и нашел видео в котором разработчик google сообщил мне что есть "два основных способа для запуска приложения в облаке, инфраструктура как услуга и платформа как услуга". Запуск его на app engine был платформой как сервисом, и это было вне списка, поэтому я пошел с моим единственным оставшимся вариантом. Существует учебник,приложение Книжная полка учебник, также google, и последняя часть описывает, как запустить приложение на вычислительном движке. Я попытался пройти учебник, но когда я вошел в команда

git push cloud 7-gce:master

чтобы подтолкнуть мой код в репозиторий, он просит у меня логин и пароль, он никогда не упоминал, что в учебнике, я не знаю, что вводить. Я нашел этот вопрос но я не уверен, что это относится к моей ситуации. Итак, затем я прошел через некоторые уроки, предложенные Закари Ньюманом, и я не смог следовать учебник где они используют ubuntu, потому что, когда они говорят вам привет.файл js, это действительно странно, потому что мне пришлось ssh в образ ubuntu vm, который я создал, и все было очень медленно, я не знаком с командами на linux, поэтому мне пришлось искать, как "сохранить и выйти" после создания hello.файл js. Я получил" веб-сервер "для запуска, это обратный прокси-сервер nginx, но поскольку я не знаю, что такое APP_PRIVATE_IP_ADDRESS, когда я получил доступ к странице, я мог видеть страницу nginx, но не сообщение" hello world", которое должно отображаться. См. раздел предварительные условия, чтобы узнать, что такое учебник пытается научить меня. ЛАДНО....

3) на консоли разработчиков google, после входа в систему, есть раздел навигации слева, есть ссылка на"Cloud Launcher". Там я нашел ссылку для создания виртуальной машины с установленным nodejs, она создана Bitnami. Я щелкнул его, и моя виртуальная машина работала, я пошел на внешний ip-адрес и увидел поздравления (тьфу...) страницу об. Я действительно не знал, что делать оттуда, поэтому я опубликовал еще один вопрос. Разработчик bitnami сказал мне, что мне "нужно скопировать ваши файлы в удаленный репозиторий, создать файлы конфигурации, и после этого вы должны включить эту конфигурацию в конфигурацию Apache для обслуживания приложения". Как?!?! Он только что опубликовал ссылку, а также bitnami вики-страницы. Я использовал filezilla для подключения к виртуальной машине, и я пытался загрузить мои файлы на виртуальную машину. Я смог загрузить все, кроме модулей узла (они занимали слишком много времени для загрузки и по какой-то причине ftp-клиент продолжал терять соединение с сервером после 10 минут или около того загрузки). Поэтому я подумал, что просто ssh в экземпляр и попытаюсь установить свои зависимости npm. Но это дало мне больше ошибок...

4) Я не знаю, почему этот пост был заморожен, но я нашел этой. Я не могу найти точную страницу прямо сейчас, но я читал где-то в документах google, что мы не можем ssh в экземпляр как root / administrator по дизайну, и что мы должны выполнить некоторую расширенную конфигурацию, чтобы иметь возможность сделать это. Проблема в том, что я не могу установить зависимости, если я ssh в качестве администратора....: '(Поэтому я просто загрузил свои модули узлов с filezilla. Все выглядит хорошо, я ssh в свой экземпляр и я cd в свой каталог приложений и введите команду

node app.js

и почти как бы насмехаясь надо мной, он выходит из консоли "подключен к монго...."и" прослушивание порт 3000.....". Я так волнуюсь, думаю, это работает.....

4) сервер никогда не запускался, я думаю, он не смог подключиться к базе данных mongodb (другой экземпляр), которую я запускал, это была команда для подключения к экземпляру mongodb в моем приложении.файл JS

mongoose.connect('mongodb://****/myappdatabase');

где * * * * указывает внешний IP-адрес моих экземпляров mongodb. Примерно через 5 минут я получаю сообщение об ошибке в браузере ssh

Error: connect ETIMEDOUT ****:27017

но У КОГО ЕСТЬ ВРЕМЯ ВСЕ ЭТО ПРОЧИТАТЬ?

Я не разработчик, у меня нет большого опыта программирования (на самом деле близко к нулю). Я любитель. Я взял книгу Стивена г. кочан около 5 или 6 месяцев назад, и с тех пор я просто следовал учебникам в интернете, программированию на java book и некоторым справочным материалам. Я хотел создать сайт.

я узнал некоторые html, css, javascript и jQuery от w3schools и прошел через некоторые учебники по созданию базового сервера узлов и обслуживанию некоторых html-страниц, это буквально все, что делает мое приложение. Это все, чего я хочу.

я использовал Express framework для node и mongoose для подключения к моему mongodb, работающему локально. Розетка.io для немного сети. Я создал веб-сайт для удовольствия, и я бы очень хотел разместить его и поделиться им со своими друзьями, я сделал это так далеко, было бы очень неловко уйти теперь, потому что я не могу разместить сайт. Кстати, я прошел через гораздо больше, чем то, что я опубликовал по этому вопросу.

теперь я был бы очень признателен за помощь, даже некоторые рекомендации относительно того, что мне нужно знать, может быть, книги, которые я должен прочитать или документацию, которую я должен пройти, чтобы стать более знакомым с хостингом веб-сайта было бы здорово. Я собираюсь предложить этот вопрос за вознаграждение в 2 дня, но до тех пор, если кто-то прошел через это и хотел бы помочь без личного их собственная выгода, твое спасение моей жизни. Я занимаюсь этим около 4 дней без везения. Спасибо и дайте мне знать, если есть все, что вы хотели бы знать о моем заявлении. Я имею в виду серьезно, как трудно это может быть, я делаю что-то (или все) неправильно.

1 ответов


Вау чувак. Я думал о том, чтобы отметить это, но вы, похоже, действительно хотите научиться программировать и нуждаетесь в помощи. И опытные кодеры, обучающие начинающих кодеров, - это то, о чем этот сайт. Итак, поехали.

прежде всего, Linux-ваш друг. Выучить его. Использовать его. Я не использую Ubuntu, но вы должны. Используйте 14.04, потому что это прощающий дисто и поставляется набитый вещами, которые вам нужны, когда вы только учитесь.

время обратиться к вашему вопросы:

Проблема 1: вы используете gcloud preview продукта. Они потрясающие, но не для новичков, потому что вы не знаете, что делаете. Просто встаньте экземпляр Ubuntu на N1-standard и раскачайте его. Никаких колоколов. Никаких свистков. Изучайте Ubuntu linux с той же страстью, с которой вы научились программировать веб-сайт.

Проблема 2: Не используйте git. Я использую git каждый день, и это потрясающе, но вам предстоит долгий путь, и git чертовски запутан. Возьми свою рабочее пространство, tar / gzip и просто ssh весь shebang в облако. Затем распакуйте его, и у вас будет весь ваш код прямо на вашем сервере. Предостережение: никогда не делайте этого профессионально. Но для того, кто только учится ... маленькие укусы, чувак ... маленькие укусы.

Проблема 3: Не используйте готовые изображения Bitnami. Это лишает вас возможности научиться делать это с нуля, и это бесценный опыт. Вот две команды, которые вы должны выучить:

apt-get update
apt-get install <insert thing you want to install>

вот и все. Не rocket science и вы откроете для себя силу управления пакетами на linux.

Проблема 4: Вы слишком много думаете об этом. По-настоящему, учиться apt-get. Это приведет вас так далеко, вы будете проклинать себя за то, что не использовали его раньше. apt-get узел. apt-get монго. И все это в одном случае. Это то, что я делаю профессионально? Черт, нет. Но это все о детских шагах, когда вы объединяете dev-ops с программированием, и вам нужно предпринять эти шаги.

Errata: вы хотели, чтобы кто-то рекомендовать книгу или веб-сайт или руководство. Все, что вам нужно знать, уже на Ubuntu. Они называются man страницы. Это сокращение от ручного. Вы можете купить все книги в мире с Amazon и смотреть бесконечные страницы youtube. Это не сравнится с просто maning команды. Ты должен мне поверить.

в резюме: просто создайте экземпляр Ubuntu. tar и gzip весь код и scp это к вашему экземпляру. Учись!--2--> и по-настоящему, вы настроены. Вы будете полностью уничтожить свой экземпляр много раз. Так что просто удалите его, воссоздайте и продолжайте начинать сначала. Каждый раз вы будете мудрее и умнее, чем раньше. Я постоянно обучаю начинающих разработчиков. Ты должен начать с малого и пробиться наверх. В конце концов вы поймете, почему вы хотите использовать git. Почему вы хотите масштабировать. Почему LXC удивительно. Почему управляемый экземпляр GCE и VMs-это crazy baller, и почему сценарии вашего развертывания-лучшая практика. Но сначала вы должны понять, как построить экземпляр и получить код там любым возможным способом. Ты вырастешь оттуда. Удачи, приятель.