Вход | Регистрация

  1  2   

Эффективно и быстро программный сервер (не 1С)

Эффективно и быстро программный сервер (не 1С)
Я
   pavig
 
04.09.18 - 09:16
Есть потребность предприятия на своих удаленных точках, связь с которыми очень нестабильна, запустить мини-сервера.

Сервер, в общих чертах, умеет:

1. Сам стучаться на облачный сервер и запрашивать и передавать необходимые данные
2. У себя в базёнке хранить текущие данные. Грубо - сутки.
3. Пользователи через веб-интерфейс (то есть придется писать еще фронтенд) считывают и вносят какую-то информацию. Веб-интерфейс должен быть в высокой степени удобным и быстрым. Но функциональность планируется не сложная и не богатая
4. Предоставлять API для офф-лайн мобильного приложения
5. По неким простым алгоритмам обрабатывать текущую внесенную информацию, фиксировать её у себя
6. Сам может "складывать" необходимые файлики на локальный файл-сервер и считывать их оттуда же
7. Количество одновременных пользователей каждого сервачка: 2-3 + одно офф-лайн мобильное приложение
8. Планируется, что тираж этих сервачков составит 200 и более экземпляров (в зависимости от успешности реализации)
9. Объем информации небольшой


Естественно, первым делом напрашивается локальная базёнка на 1С.
Скажу сразу, мы этот вопрос уже прокурили, есть свои как плюсы (быстрая разработка, есть сильная команда разработчиков 1С), так и минусы (ненадежность файловой базы, высокая стоимость серверного варианта, стоимость лицензий и т.п.).

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

Вот тут и возникает вопрос - на чем эффективнее писать подобную забубулину?


Вижу варианты:

1. Метнуться в сторону Metadata.js. Есть у кого реальный опыт?
Плюсы: CouchDB сама очень хорошо умеет в репликацию (не придется писать сервисы), обмен с 1С (основная учетная система) вроде бы есть из коробки.
Минусы: Кому-то придется изучать этот фреймворк. И не факт что он пригодится в будущем. Хотя, имея такой тиражируемый продукт, вроде бы разработчику вполне себе кусок хлеба с икрой (красной) вроде бы обеспечен...
Самый тяжелый минус: мало проектов на этом фреймворке, вообще непонятны трудозатраты. Причем никто не сможет это оценить, пока не начнется разработка. А время - деньги, как говорится. Ну и, естественно, происходит сильная привязка проекта к разработчику. Потом найти замену в случае чего будет ой как непросто.

2. Нанять двух-трех "студентов" на PHP и быстро прототипировать и смотреть что получается.
Плюсы: порог вхождения в PHP вроде бы пониже чем на остальных языках, значит, первые версии программы должны выйти подешевле. Это для меня самый жирный плюс. Плюс не придется использовать такой радикально-специфический продукт как Metadata. Разработчик не становится уникальным, снижается зависимость.
Минусы: Нужно будет отдельно заказывать фронтенд.

В общем, задача интересная. Но мало знаний.


Камрады, покритикуйте, предлагая. Кто как решал бы подобную задачу?
 
 
   Остап Сулейманович
 
1 - 04.09.18 - 09:21
Я за php. Никаких проблем нарисовать примитивный(да и не примитивный) фронт с использованием только html и css не вижу.
   pavig
 
2 - 04.09.18 - 09:25
(1)
А бэкенд с озвученными требованиями вообще удобно будет писать? Ну там регламентные задания например...
Может есть какой фреймворк подходящий?
   kzot
 
3 - 04.09.18 - 09:25
имхо, но...
"Беда, коль пироги начнет печи сапожник,
А сапоги тачать пирожник."
   pavig
 
4 - 04.09.18 - 09:27
(3)
Обоснуйте
   Пузан
 
5 - 04.09.18 - 09:32
(4) А чем серверный вариант 1С дорого? Я так понял в вашем случае подойдет версия на пять пользователей, она там чета типа 15т.р. стоит всего.
   Пузан
 
6 - 04.09.18 - 09:33
+(5) А если брать на 200 серверов, то думаю можно договориться на нехилую скидку, процентов так в 25. :)
   piter3
 
7 - 04.09.18 - 09:33
высокая стоимость серверного варианта, стоимость лицензий
Это сколько дорого?А разработка своего велика не дороже будет?
   piter3
 
8 - 04.09.18 - 09:35
А поддержка и допилы сколько буду стоить.Что-то тут не понятно
   Serg_1960
 
9 - 04.09.18 - 09:36
А я так вообще не понял зачем нужен "мини-сервер" и почему не файловый вариант РИБ?
   pavig
 
10 - 04.09.18 - 09:40
(5)
15 тыр на сервер
+ 4 тыщи на каждый сеанс
в итоге при 2х активных пользователях получаем 23 тыщи на каждую точку - и это только за лицензии. 23000 * 200 = 4 с половиной лимона. Лучше б на разработку и премии эту сумму потратить.
Плюс тяжеловесность самой 1С, скорость интерфейса, удобность интерфейса. Как ни крути, веб-интерфейс можно гораздо тоньше напилить, чем формы 1С.
Ну и плюс в (0) не указал - на точках железо не очень хорошее.

(9)
ненадежность файловой 1С, опять же лицензии. (8 тыщи минимум на точку = полтора лимона). Может быть, нам дадут скидку как в (6), пусть будет лимон. Это тоже не мало.
 
 Рекламное место пустует
   Serg_1960
 
11 - 04.09.18 - 09:45
Ах, да, конечно же эта преславутая "ненадежность файловой базы"(0). Мда... слухи о "ненадёжности" файлового варианта несколько преувеличены. Только не надо мне доказывать, что я не прав - семь лет практики РИБ с файловыми вариантами подчинённых узлов как бы доказывают что вполне можно работать.

Я не настаиваю (ваше право, хозяин-барин), просто удивляюсь.
   ptiz
 
12 - 04.09.18 - 09:45
(10) Еще большой минус 1С - гемор с программными лицензиями, которые надо будет переустанавливать при изменении железа.
С другой стороны, постоянная поддержка велосипеда "не на 1С" может обойтись еще дороже - надо считать.
   ptiz
 
13 - 04.09.18 - 09:45
(11) У ТС явно мелкие точки, где может и уборщица шнур выдернуть.
   1000110111100101
 
14 - 04.09.18 - 09:46
Я бы написал на https://github.com/gobuffalo/buffalo

1. Планировщик заданий там есть, стучаться во внешние сервисы - не проблема
2. Базёнка подключается любая, в зависимости от количества данных - от sqlite до postgresql
3. CRUD интерфейс по структуре базы создаётся автоматически, на него сразу натягивается bootstrap. То что надо для "простого и удобного" интерфейса. Немного логику допилить и всё
4. Создать json/xml api легче лёгкого. Главное описать структуру данных
5. Тоже не проблема
6. Ищем библиотеку go для работы с smb/ftp/nfs/что-там-у-вас, подключаем
7. Пфф
8. И?
9. Точно sqlite

Всё это счастье потом собирается в один исполняемый файл под любую платформу, не требующий гемороя в виде апача и поставляется заказчику.

Язык Go сам по себе достаточно простой и производительный.
   pavig
 
15 - 04.09.18 - 09:46
(11)
Даже если мы с Вами не будет говорить про надежность файлового варианта, то стоимость лицензий всё равно остается важнейшим фактором...
   pavig
 
16 - 04.09.18 - 09:48
(12) Да, это еще один гвоздь.
(13) Верно.
   pavig
 
17 - 04.09.18 - 09:50
(7)
Вот мы и изучаем этот вопрос...
1С ведь тоже надо допиливать и поддерживать... Тут не думаю что поддержка как-то сильно будет отличаться от поддержки 1С.
Стоимость допилки - да, может быть, повыше. Насколько - это вопрос хороший.
   piter3
 
18 - 04.09.18 - 09:52
(17) Не знаю,что решите,но можно тестовых сделать два варианта и погонять.Опять же если так важно решение то и денег не пожалеют.
   Serg_1960
 
19 - 04.09.18 - 09:56
(15) Ещё раз: я не спорю и не оспариваю ваш выбор. Просто "Я мзду не беру, мне за державу обидно"(с). С одной стороны, 28 тысяч за USB-ключ на 5 рабочих мест - небольшая цена, но если их потребуется 200 штук... наверное я бы тоже стал искать альтернативу :)
   pavig
 
20 - 04.09.18 - 09:57
(14)
Круто! Спасибо, покурю!
   Garikk
 
21 - 04.09.18 - 09:57
(0) тут важно понять что срок реализации такого проекта, минимум полгода. а учитывая ценники программеров на PHP и т.п.  раздуют бюджет мероприятия огого
   Garikk
 
22 - 04.09.18 - 09:58
и  полгода это очень оптимистично
   pavig
 
23 - 04.09.18 - 10:01
(22)
Неужели на PHP это настолько трудозатратно? А если опустить веб-интерфейс?
У меня такое ощущение, что ожидаемый функционал не такой уж прямо богатый и тяжелый. Ну, по крайней мере, для 1С...
   Fragster
 
24 - 04.09.18 - 10:05
nodejs + vuejs
   Garikk
 
25 - 04.09.18 - 10:06
(23) не трудозатратно, а то чтобы с первого раза написать нормально, надо брать человека с опытом, а это уже чумовая зарплата
список хотелок уже очень приличный для сроков, и уже отдельный человек на мобильное приложение.

брать студентов - это моментально нарватся на то, на что я например нарвался и тут на форуме проскакивало. стучатся в базу через фреймворк-ORM, который как "оказывается" на сколько нибудь серьезных нагрузках и объемах начинает просто невообразимо тормозить...и таких подводных камней всплывет огромное количество
а если это 200серверов надо синхронизировать то это еще веселее
   Fragster
 
26 - 04.09.18 - 10:06
ну или laravel + опционально vue (если хочется spa а не сайт)
   pavig
 
27 - 04.09.18 - 10:06
(24)
По трудозатратам какая вилка получается?
   pavig
 
28 - 04.09.18 - 10:13
(25)
"отдельный человек на мобильное приложение"
Мобилку в расчет вообще не берем - она уже есть, её успешно сейчас тиражируем (с облачным сервером), это не суть. Я упоминал про мобилку в контексте нагрузки.

"200серверов надо синхронизировать"
облачную часть тоже в расчет не берем, там отдельная песня.
   Fragster
 
29 - 04.09.18 - 10:19
(27) если отбросить обучение? пару недель на прототип
   Fragster
 
30 - 04.09.18 - 10:19
и до бесконечности
   Вафель
 
31 - 04.09.18 - 10:19
(0) вместо 3х пхпшников - наймите 1 сеньора jsника
   Вафель
 
32 - 04.09.18 - 10:20
Написать свою НОРМАЛЬНУЮ систему синхронизации силами джуниоров/мидлов не получится
   Вафель
 
33 - 04.09.18 - 10:24
если нет потребности синхронизации с 1с можно метадату не брать, а просто кауч-пауч юзать
 
 
   arsik
 
34 - 04.09.18 - 10:24
Интересно, что будете делать с 200 точками, если логику работы приложения придется изменить?
Я бы наверно все таки в сторону решений типа метадаты смотрел.
   Garikk
 
35 - 04.09.18 - 10:24
(32) +1 но бабла и времени уйдёт адовое количество на попытки "да все получится!!"
   Вафель
 
36 - 04.09.18 - 10:25
(34) так вебинтерфейс же планируется в любом случае
   arsik
 
37 - 04.09.18 - 10:27
(36) Ну и чего? Я так полагаю логика и база хранятся локально на каждой точке в случае базы + php.
   Вафель
 
38 - 04.09.18 - 10:28
(37) ты вообще не понимаешь что такое веб приложение?
   pavig
 
39 - 04.09.18 - 10:29
(37)
Да, логика и база хранятся локально на каждой точке.
На каждой точке поднят какой-нибудь апач или иис.
   pavig
 
40 - 04.09.18 - 10:32
(34)
Да, это вопрос серьезный, но его решение вроде не сильно отличается от одинэсного - по сути всё сводится к регламентной операции, которая будет в определенное время запрашивать файл обновлений из облака и устанавливать его локально (исполняемые файлы там, библиотеки, страницы и т.п.)
   Вафель
 
41 - 04.09.18 - 10:35
А зачем тебе 200 серверов? делай SaaS
   AquaMan
 
42 - 04.09.18 - 10:36
Нанимать знающего человека, либо аутсорс компанию на этот проект. На студентов, которые на php напишут что-то толковое, я бы не рассчитывал, они могут только типовые задачи делать. Python или ASP.Net напрашивается под эти задачи.
   pavig
 
43 - 04.09.18 - 10:37
(41)
Подробнее плиз....
У меня на точках канала толком может не быть. Но приложение работать в это время ДОЛЖНО.
   Fragster
 
44 - 04.09.18 - 10:37
(41) не все готовы свои данные отдавать кому-то
   ansh15
 
45 - 04.09.18 - 10:38
(0) >>удаленных точках, связь с которыми очень нестабильна
Улучшать качество связи не планируется? Это будет сильно дороже 200 мини серверов или разработки чего-то своего?
   Garikk
 
46 - 04.09.18 - 10:39
(40) ага, только в теории все просто
а потом начнется интересное. поменяли структуру базы например и надо её  на 200 серверов реплицировать... а потом оп и ошибка и все 200 упали...поднимать вручную? бекап?
   APXi
 
47 - 04.09.18 - 10:40
(0) Вы же там не ERP будет ставить, а как понимаю самописную конфу, интерфейс будет летать, если правильно сделаете.
   Garikk
 
48 - 04.09.18 - 10:40
или половина обновилась, половина нет, приложение с одним апи, некоторые сервера со старым...надо их поддерживать паралельно
   pavig
 
49 - 04.09.18 - 10:41
(42)
У нас в команде есть чувак который был аналитиком в одном крупном уникальном и очень успешном проекте на питоне.
Он озвучил минусы питонцев:
1. Дорого
2. Внеконтекстное выполнение. "Не вникают в то что делают". Нужен высокий уровень формализации задания.
3. Дефицитно

Он больше топит за PHP на эту задачу в угоду доступности специалистов.
 
 Рекламное место пустует
   pavig
 
50 - 04.09.18 - 10:44
(45)
К сожалению, не везде это возможно. Поэтому думаем о локальном сервере "сам с усам".
Мы сейчас используем (упоминал выше) мобильное приложение на всех этих точках, так что все проблемы со связью мы уже собрали и проблему знаем очень хорошо и прямо в лицо, а не сбоку.
   AquaMan
 
51 - 04.09.18 - 10:46
(49) На волне хайпа нейронных сетей и машинного обучения питон сейчас стал очень популярным языком. Может конечно от города зависит. Но мне показалось средний уровень разработчика на php очень низкий, сделать что-то без использования CMS нереальная проблема для большинства. Хотя вам проще самим проверить, пообщавшись с потенциальными исполнителями.
   Garikk
 
52 - 04.09.18 - 10:47
(49) в PHP доступность не специалистов, а джунов которые код пишут внутри html как "по старинке"

а "Внеконтекстное выполнение. "Не вникают в то что делают" -- так и должно быть на самом деле
другой подход это получится мешанина из самодеятельности и костылей которую невозможно будет поддерживать
   pavig
 
53 - 04.09.18 - 10:48
(46) (48)
Риски, согласен.
Есть какая-то альтернатива?
   pavig
 
54 - 04.09.18 - 10:50
(52)
"другой подход это получится мешанина из самодеятельности и костылей которую невозможно будет поддерживать"
То есть так, как это происходит у нас в 1С?)
   Garikk
 
55 - 04.09.18 - 10:53
(54) именно, в 1С как раз подход "сам себе архитектор, программер и РП" потому что "денег нет"
   Вафель
 
56 - 04.09.18 - 10:54
кстати есть минисерверы 1с на 5 пользователей. вполне по деньгам наверно
   Вафель
 
57 - 04.09.18 - 10:54
в вашем случае лучше писать на 1с, ибо не на 1с вы запорете обязательно
   Garikk
 
58 - 04.09.18 - 10:55
(53) дело не в альтернативе, а в том что это сложнее чем кажется, не "бац бац и работает"
   Сияющий в темноте
 
59 - 04.09.18 - 10:55
php вполне потянет в связке с MySql,это как раз для него задача,ну и запуск обменов по таймеру,и,самое главное,что можно убунту на миникомп вкострячить и будет работать.

Если есть программисты java,то можно нарисовать приложение
   Остап Сулейманович
 
60 - 04.09.18 - 10:55
(56) Какое оно имеет отношение к задаче в (0)?
   Вафель
 
61 - 04.09.18 - 10:56
(60) там 1 из пунктов было - что сервер 1с - это дорого
   Остап Сулейманович
 
62 - 04.09.18 - 10:58
(61) Вы еще кассовый сервер предложите. Ну а че? Слово же сервер есть. И не дорого ))))
   Сияющий в темноте
 
63 - 04.09.18 - 10:58
(58)если описать через обьекты интерфейс к базе,то при изменении структуры мы только меняем описание обьекта.

php вещь замечательная,параллельные потоки,сокеты на низком уровне и т.п.интересные вещи,а главное,что все просто и работает.
   Вафель
 
64 - 04.09.18 - 10:59
(62) а что такого то? ведь предполагаетсяф всего 2-3 пользователя
   Остап Сулейманович
 
65 - 04.09.18 - 10:59
(64)
Что из этого
"1. Сам стучаться на облачный сервер и запрашивать и передавать необходимые данные
2. У себя в базёнке хранить текущие данные. Грубо - сутки.
3. Пользователи через веб-интерфейс (то есть придется писать еще фронтенд) считывают и вносят какую-то информацию. Веб-интерфейс должен быть в высокой степени удобным и быстрым. Но функциональность планируется не сложная и не богатая
4. Предоставлять API для офф-лайн мобильного приложения
"
умеет сервер 1с?
   arsik
 
66 - 04.09.18 - 10:59
(33) Я тоже за такой подход. Не обязательно всю метадату тащить. Можно коуч базу + апи к ней.
   Вафель
 
67 - 04.09.18 - 11:00
(65) абсолютно все это умеет. плюс быстрая разработка и спецы уже есть
   Dmitry1c
 
68 - 04.09.18 - 11:01
(0)

ты: ЛПР, дай бабла
ЛПР: зачем?
ты: сервер купить
ЛПР: зачем?
ты: ну чтобы нормально было
ЛПР: дак итак все работает

тут голова болит у тебя, и это твои проблемы.
   Сияющий в темноте
 
69 - 04.09.18 - 11:01
Если пользователи через браузер,то файловая 1с через хттп сервис вполне пригодна для работы,но,единственный возникающий вопрос-зачем
да и лицензию нужно на каждого пользователя,если читать их правила лицензирования.
   Остап Сулейманович
 
70 - 04.09.18 - 11:04
(67) Сервер 1С это всего лишь прокладка между сервером БД и тонким клиентом. Все.
Нифига он не умеет
"стучаться на облачный сервер" - это клиент
"в базёнке хранить текущие данные" - это сервер БД
"Пользователи ... считывают и вносят какую-то информацию" - это клиент
"Предоставлять API для офф-лайн мобильного приложения" - это клиент.
Ничего из этого не умеет минисервер. Да и "взрослый" сервер приложений 1с тоже.
Понятно, что все выше сказанное относится к экосистеме 1С.
   pavig
 
71 - 04.09.18 - 11:05
(57)
А почему ты считаешь что не на 1С мы запорем обязательно?)
   Остап Сулейманович
 
72 - 04.09.18 - 11:06
(69) "единственный возникающий вопрос-зачем"
ИМХО - от неумения нарисовать HTML форму и обработать запрос от фронта.
   pavig
 
73 - 04.09.18 - 11:06
(56)
Я писал математику в (10)
   Вафель
 
74 - 04.09.18 - 11:06
(71) у вас нет опыта таких проектов. в таком масштабном проекте куча подводных камней будет
   Вафель
 
75 - 04.09.18 - 11:07
(73) что-это за точка что 23 тыщи - это дорого? Что это за холдниг такой, что степлеры в лизинг берет
   Вафель
 
76 - 04.09.18 - 11:09
вы 2 млн на разработку съедите легко и не подпавитесь и ничего не сделаете
   pavig
 
77 - 04.09.18 - 11:09
(33) (66)
а логику на чем?
Вариант интересный, тоже думал об этом. Но это решит вопрос репликации и хранения, но останеся вопрос логики.
   Вафель
 
78 - 04.09.18 - 11:10
(77) логику на клиенте всю делать: типа реакт-вью или какие спецы есть
   elCust
 
79 - 04.09.18 - 11:11
(0) Уже давно проходили: Краилово ведет к попадалову, т.к не взлетит.
   агент смит
 
80 - 04.09.18 - 11:11
(75) обычный провинциальный колхоз с соотв мышлением бизнеса и ИТ
   Вафель
 
81 - 04.09.18 - 11:12
самая проблема что с вашей стороны нет того кто бы смог оценить качество не 1сного продукта
   агент смит
 
82 - 04.09.18 - 11:15
(81) какого продукта, тут требования внятно тс сформулировать не может
   Вафель
 
83 - 04.09.18 - 11:18
(82) тот, который им напишет приглашенный пхпшник или другой кто
   pavig
 
84 - 04.09.18 - 11:18
(78)
Не эффективнее будет написать прокладку, организующую объектную логику и предоставляющую API?
Чем писать логику сначала на веб-клиенте, потом то же самое на мобилке, потом то же самое на роботах интеграции?
   Вафель
 
85 - 04.09.18 - 11:19
(84) на мобилке тоже можно веб юзать
   Вафель
 
87 - 04.09.18 - 11:24
(86) Это уже совершенно другой вопрос
   Oftan_Idy
 
88 - 04.09.18 - 11:24
(0) Используй классику - "php + mysql + ngnix(apache) + cron" и будет тебе счастье.

Бесплатный софт плюс бац бац и в продакшн
   ptiz
 
89 - 04.09.18 - 11:32
Кстати, а не дешевле выйдет более устойчивую связь наладить в точках? И работать с центром?
   arsik
 
90 - 04.09.18 - 11:34
Кстати наверно через коуч-поуч можно и логику по базам раскидывать, а не только данные.
   Garykom
 
91 - 04.09.18 - 11:35
(0) Не зная точных требований невозможно выбрать на чем реализовывать этот "сервер".

Стоимость/распространенность специалистов по разработке это одно из при выборе.
Выбор из php/C#/java/js/python и т.д. как и какую бд использовать и прочее.

Если у вас уже есть сильная команда 1С-ников то не парьтесь и берите http://oscript.io/docs/page/http
Еще допом наймите С# спеца на постоянку или фри чтобы http://oscript.io/docs/page/libraries дописал требуемые если что.
   pavig
 
92 - 04.09.18 - 11:36
(89)  
см. (50)
Пока - изучаем вопрос о софте.
   pavig
 
93 - 04.09.18 - 11:37
(90)
кстати может быть и да
   Garykom
 
94 - 04.09.18 - 11:39
(90) В продакшен этот CouchDB имеет огромную кучу проблем и основная что оно NoSQL и хреново ложится на обычные реляционные (табличные) данные.
   pavig
 
95 - 04.09.18 - 11:39
(91)
что скажешь про (14)?
   Asmody
 
96 - 04.09.18 - 11:41
(0) Посмотри на https://firebase.google.com/
Если данных действительно немного, может хватить бесплатного плана.
Простенького веб-клиента с аутентификацией и плюшками можно написать за пару часов на vue или react.
   Garykom
 
97 - 04.09.18 - 11:43
(95) Ничего не скажу ибо не знаю Go и эту штуку.
   Garykom
 
98 - 04.09.18 - 11:44
(91)+ В качестве БД можно взять классику в виде Postgres, есть готовые решения по репликации между серверами.
   Garykom
 
99 - 04.09.18 - 11:46
(96) Каким образом оно поможет если ТС требуются распределенные локальные сервера, которые выступают промежуточными "узлами РИБ" между мобильным приложением, веб-клиентами и центральной БД.

У них центральная БД не проблема и засовывать ее в облако нет никакого смысла.
   Asmody
 
100 - 04.09.18 - 11:49
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует