@nodejs_ru

Страница 57 из 2748
Ҫѐҏӗѫӑ
23.06.2016
16:26:32
flowtyped - грабилка dts из ts

причем довольно глупая

abc
23.06.2016
16:26:49
у меня до этого был проект на тайпскрипте, там тоже бывает не все гладко)

Anton
23.06.2016
16:27:50
Я думаю, что описание интерфейса либы, которую ты используешь, дело не такое уж и затратное

Google
Anton
23.06.2016
16:27:55
Хотя хз конечно

Artur
23.06.2016
16:28:01
у меня до этого был проект на тайпскрипте, там тоже бывает не все гладко)
Бывает. Иногда даже приходится несколько дней потратить на мучения.

Anton
23.06.2016
16:28:06
Тем более, что это скорее всего редкий кейс

Nikolay
23.06.2016
16:28:45
имхо, с TS нужно будет заморочиться в начале, зато потом сплошной профит

Vladimir
23.06.2016
16:30:03
в целом флоу отлавливает больше ошибок и требует меньше исправлений кода

abc
23.06.2016
16:30:15
TS не дает полного контроля все равно, мне например больше в этом плане нравится Dart. хоть он не такой популярный, но релизы выходят регулярно

Anton
23.06.2016
16:30:36
Ну дарт это все же другой язык совсем

abc
23.06.2016
16:31:22
да но результат на выходе один, это js. как и у TS в общем то)

Vladimir
23.06.2016
16:32:28
ну если такими критериям мерять, то куча альтернатив

scala.js, elm, purescript

gwt

emscripten

Typescript имеет свои рантайм-конструкции, но спроектирован чтобы мапиться на js

Google
Vladimir
23.06.2016
16:34:12
Флоу добавляет только синтаксис типов

Dart - это отдельный язык, но изначально спроектирован под компиляцию в js в том числе

Anton
23.06.2016
16:35:16
Алсо, кто пишет сервак на TS - такой вопрос: хочу потрогать руками тайпскрипт в последнее время, есть у ts что-то похожее на babel-node? Гугл намекает на https://github.com/TypeStrong/ts-node - это норм вариант? Или лучше прикурутить что-то типа вебпака с вотчером, что бы он мне все каждый раз при изменениях пересобирал и скалдывал в папочку build, и перезапускал потом?

abc
23.06.2016
16:36:00
лучше вотчер я думаю

Nikolay
23.06.2016
16:36:11
я обычно запускаю tsc -w и просто работаю как с обычным js

Artur
23.06.2016
16:39:29
tsc -w, остальное не нужно (ну и supervisor/nodemon и т.п.)

Nikolay
23.06.2016
16:39:45
типа того

Anton
23.06.2016
16:40:19
Окс, спасибо, попробую

Котяй Негодяй
23.06.2016
17:15:22
Что использовать для запуска node на продакшне?

Eugene
23.06.2016
17:16:41
мы юзаем https://github.com/foreverjs/forever

Котяй Негодяй
23.06.2016
17:16:45
В смысле для демонизации на продакшне.

мы юзаем https://github.com/foreverjs/forever
Многие с умным видом говорят, что nodemon и forever для продакшна — некошерно.

Vladimir
23.06.2016
17:17:35
и правы

Котяй Негодяй
23.06.2016
17:17:56
Я отчасти догадываюсь, почему, но хотелось бы услышать осмысленные аргументы.

Ибо сам только начал разбираться в вопросе.

и правы
Почему?

Vladimir
23.06.2016
17:19:46
много мелочей

например, нет graceful restart по умолчанию

Anton
23.06.2016
17:23:13
pm2/инит скрипты

Google
Vladimir
23.06.2016
17:23:44
docker

Anton
23.06.2016
17:24:48
Ну внутри докера что-то же должно запускать процесс, правильно?

Vladimir
23.06.2016
17:25:01
нет

Vladimir
23.06.2016
17:25:18
супервайзер не нужен

Vitaly
23.06.2016
17:25:20
как вариант чтобы права убить

и заменить процесс под pid

но да, в докере процесс под pid 1 пока живой - жив контейнер

Никита
23.06.2016
17:27:12
@bigslycat Не надо forever в продакшне.

Котяй Негодяй
23.06.2016
17:27:37
как вариант чтобы права убить
Планируется использование докера. Так что, с правами всё ок.

Vitaly
23.06.2016
17:28:23
Планируется использование докера. Так что, с правами всё ок.
я имею ввиду, что внутри докера под root не нужно гонять приложение, нужно под юзера переводить все-таки конкретного, чтобы лишние потенциальные дыры не открывать

Vladimir
23.06.2016
17:30:44
да ну, внутри докера то че

Котяй Негодяй
23.06.2016
17:30:53
я имею ввиду, что внутри докера под root не нужно гонять приложение, нужно под юзера переводить все-таки конкретного, чтобы лишние потенциальные дыры не открывать
Какие могут быть дыры в данной ситуации? Докер не видит хост-систему, и этого достаточно. Если сам процесс будет скопрометирован, страшно не то, что он может записать что-то в том, а то, что у него есть доступ к БД. А это правами не предотвратишь.

Никита
23.06.2016
17:30:55
Если вы запихаете ваше приложение в forever — что будет, когда упадёт forever?

Vladimir
23.06.2016
17:31:33
Ну так то любой супервизор может упасть

Никита
23.06.2016
17:31:48
Аналогично с pm2 — сам по себе он задачу перезапуска не решает, насколько я знаю.

Котяй Негодяй
23.06.2016
17:31:54
Здесь докер и берёт на себя сложность по части безопасности в контексте системы. Отчасти для этого он и создан.

Google
Никита
23.06.2016
17:32:02
Там куча issue висит у него.

@vkurchatkin Упасть-то да. Но по-хорошему они должны быть построены вверх до ядра и аппаратного таймера.

Котяй Негодяй
23.06.2016
17:32:36
Там куча issue висит у него.
РЕчь о докере или о pm2?

Никита
23.06.2016
17:32:42
О pm2

https://github.com/Unitech/pm2/issues?q=is%3Aissue+is%3Aopen+crash

Vladimir
23.06.2016
17:33:48
Ну баги есть везде

Admin
ERROR: S client not available

Vladimir
23.06.2016
17:33:52
Что ж теперь

Никита
23.06.2016
17:34:22
@vkurchatkin Эта проблема решается цепочкой, которая восходит до аппаратного таймера.

Котяй Негодяй
23.06.2016
17:34:30
То бишь, хотите сказать, что самый надёжный способ — демонизация средствами гостевой системы?

Никита
23.06.2016
17:34:41
А так — да, баги есть везде.

Vladimir
23.06.2016
17:35:03
Ммм, ну вот кто перезапустить штатный супервизор?

upstart какой нибудь

Никита
23.06.2016
17:35:50
Если upstart умрёт?

Vladimir
23.06.2016
17:35:53
ну да

Никита
23.06.2016
17:36:02
Система перегрузиться должна.

Не знаю, хотя, как с конкретно с апстартом.

Он слегка умер, впрочем.

http://0pointer.de/blog/projects/watchdog.html — вот это советую прочитать. Аналогичное должно быть в других системах.

Там, кстати, рассмотрено, что происходит когда дохнет init или ядро.

Google
Никита
23.06.2016
17:38:31
Да и это довольно маловероятно, а вот oom и померший пользовательский вачдог, за которым никто не следит — лично наблюдал.

Vladimir
23.06.2016
17:39:43
само собой

но в норммальной распределенной системе это не так страшно

в целом соглашусь, что как минимум супервизор должен быть скомпилированным бинарником

Никита
23.06.2016
17:41:13
Это да. Да и внешний мониторинг покажет, если что-то померло.

По поводу upstart — даже в Ubuntu Server LTS уже systemd.

abc
23.06.2016
18:30:35
да вот буквально сегодня. упало все 8 инстансов приложения. крутились через pm2

pm2 вел себя вооьще не адекватно

постоянно делал spawn себя

думаю перейти на systemd или че там модно после upstart

Oleg
23.06.2016
19:13:26
Может проблема была в приложении?)

Tommy
23.06.2016
21:15:12
/stat@comstatbot

Andrey
23.06.2016
22:31:26
.

Igor
24.06.2016
07:35:39
А кто-нибудь использует в наше время json-rpc?

Vadim
24.06.2016
08:07:44
Да

dmitri
24.06.2016
12:08:17
@abc а почему не используете кластеризацию nodejs ?

KlonD90
24.06.2016
14:04:44
потому что она упирается в то что утилизируется одно ядро и очень грустно становится работать. 1 ядро > 4 и дальше по-моему не растет особо.

Vladimir
24.06.2016
14:11:01
да нет, сколько ядер, столько и растет

Страница 57 из 2748