Этот пост был изначально написан Хо Мин Ли.
Посмотрим правде в глаза, будут ошибки … в моих приложениях и ваших. От отладки println / echo до использования полнофункциональных отладчиков, разработчик, несомненно, потратит часть своего времени на отладку приложений. К настоящему времени большинство разработчиков знакомы с различными инструментами отладки в своей локальной среде разработки, но, как они переходят к облачным развертываниям, как они могут достичь того же? Возможна ли удаленная отладка даже в облаке? Ну, конечно.
Ранее мы видели, как отлаживать приложения Java в Stackato с помощью службы Harbour . Недавно я спросил, можем ли мы отлаживать приложения Node.js в Stackato, и поэтому я взглянул на инспектор узлов .
Прямо из файла README проекта: «Node Inspector — это интерфейс отладчика для node.js, использующий Blink Developer Tools (бывший WebKit Web Inspector)».
Без лишних слов, вот шаги для настройки инспектора узла для отладки приложения Node.js. Мы будем использовать haste-сервер в качестве примера.
Примечание. Команды в этой статье предназначены для Stackato версии 2.10.6 (на основе Cloud Foundry v1). Некоторые команды и настройки приложения будут немного отличаться при использовании Stackato 3.0 .
-
Убедитесь, что вы включили инспектор узлов в ваш package.json:
"dependencies": { "winston": "0.6.2", "connect": "1.9.2", "redis-url": "0.1.0", "redis": "0.8.1", "uglify-js": "1.3.3", "node-inspector": "0.5.0" },
-
Измените файл конфигурации stackato.yml по умолчанию, чтобы добавить службу порта Harbor и
--debug
флаг для команды, используемой для запуска сервера:name: hastebin mem: 128M services: file-backing: redis debug-port: harbor processes: web: node --debug server.js
-
Выберите клиент, выполните аутентификацию, затем нажмите код приложения и настройте:
$ stackato target api.stackato-demo.local ... $ stackato login ... $ stackato push -n
-
Как только приложение запустится, вставьте SSH в контейнер приложения и запустите узел-инспектор с номером порта, возвращаемым $ STACKATO_HARBOR:
$ stackato ssh hastebin hastebin.stackato-demo.local:~$ node-inspector --web-host 0.0.0.0 --web-port $STACKATO_HARBOR Node Inspector v0.5.0 info - socket.io started Visit http://0.0.0.0:4100/debug?port=5858 to start debugging.
-
С локальной машины узнайте внешний порт Harbor:
$ stackato service debug-port | grep port debug-port | - port | 39023 | - tags | harbor harbor-1.0 {Persistent external ports service} |
-
Откройте браузер и перейдите по адресу http: // <app url>: <ext-harbour-port> / debug? Port = 5858
С помощью службы портов Harbor, доступной в Stackato, теперь вы можете легко отлаживать приложение Node.js, работающее в облаке, с помощью инспектора узлов. Однако, как и любая другая потрясающая функция, она не лишена своих предостережений. Чтобы запустить узел-инспектор, будьте готовы увеличить лимит памяти для приложения как накладные расходы для отладчика. Кроме того, этот подход предназначен для отладки приложения Node.js с одним экземпляром — когда масштабируется до нескольких экземпляров, все может стать немного сложнее.
Если вы являетесь разработчиком приложения Node.js, которое хотите перенести в облако, загрузите микроколд Stackato и попробуйте.