Pull to refresh
30
0.1
Денис Гуков @fiftin

Разработчик Semaphore UI

Send message
Я имел в виду что я не участвовал в разработке веб-приложения, которое можно было бы реализовать монолитным (UPDATE: правильнее сказать, целесообразно, потому что если сильно захотеть, можно в посмос улетель). Мне приходит в голову только онлайн-магазин, сайт на wordpress и что-то в этом роде. Более-менее сложное веб-приложение требует разделения на несколько независимых приложений.
Мне вот интересно, такие умные комментаторы дейстиветельно делали что-то серьёзное или только в теории всё знают?

Понятное дело, что блог, онлайн магазин, форум, нет смысла делить на части. Если сложнее этого вы ничего не делали, то спор действительно бесполезен.
Не пойму почему все приводят приложение Slack как пример насколько Electron плох. Скачайте приложение Discord, оно очень крутое, сделано на том же Electron.
Можете скинуть ссылку на ваше приложение? Хотел бы оценить насколько крут UI написанный на MFC.
На картинках я привел пример использования расширения для nginx (resumable_upload) которое работает с файловой системой. Т.е. в этом случае для него нужен сетевой диск. Сетевой диск — это отдельный геморрой. Сколько раз приходилось использовать, столькоже раз потом отказывться.
Очевидно что это нужно сделать сразу. Иначе у вас не будет возможности дорасти, потому что у вас вашего приложения не будет пользователей.
Или, аналогично. Пользователь загружает 3D модель, для неё нужно срендерить превьюшки. Ну не будете же вы это делать в томже приложении?
Ну вот например, пользователь загружает видео файл. Его нужно сконвертировать в другой формат, другое разрешение. Тут очевидно, что эту задачу нужно выделить в отдельный сервис.
Вот именно «недостатки монолита по сравнению с микросервисами», а получается наоборт, что у него монолита одни плюсы. Но это неправда
tcp handshake: не обязательно создавать TCP подлючение на каждый запрос.
кучу промежуточных роутеров, фаерволов: например в AWS/Azure есть опция (Accelerated Networking) которая отрубает фаервол.
Он там и подразумевается, только вот если балансировщик будет случайно выбирать сервер, то закачка будет начинаться каждый раз с 0 с вероятностью 1 / кол-во_серверов.
Выше, товарищь приводил аргумент с сетевыми задержками как один из ключевых недостатков микросервисов перед монолитом. Другой товарищь приводит в подтвержение этого аргумента сетевую задержку между Калифорнией и Нидерландами. Ну очевидно что она будет большая. А какова эта задержка будет между серверами внутри одного датацентра? Пренебрежимо мала
Вы про это:
Send packet CA->Netherlands->CA 150,000,000 ns 150,000 us 150 ms


Между Калифорнией и Нидерландами 150ms. А точто такое же внутри одного датацентра?
Ответы на ваши вопросы, нет, не делает.
Конечно же, использование сторонней БД не делает приложение не монолитным. Но если значительная часть логики приложения отдана на откуп сторонним сервисам, то, я считаю, его уже нельзя назвать монолитным.
Если впихивать невпихуемое в 1 монолитное приложение, то код приложения превратится в говнокод. Архитектура помогает этого избежать.
В этом случае мастер и воркеры разные приложения. А спор в том, возможно ли это сделать 1 монолитным приложеним копии которго запущена на 2 серверах
Я где-то сказал про микросервисы? Я просто привожу пример где проще разделить 1 приложение на несколько.
Сервисов можно наплодить хоть сколько, при этом иметь 1 сервер для закачки файлов.
Микросервисы:


Монолит (resumable upload не прокатит):

Ок, восстанавливаемая загрузка (upload) больших файлов.

Update: да, тоже можно через общую фс. Пойду спать)

Information

Rating
3,082-nd
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Senior
JavaScript
SASS
React
Vue.js
Node.js
WordPress
Golang
Docker
SQL
MongoDB