dzz: Dizzy の冬 (Default)
[personal profile] dzz
И никогда, вы слышите, никогда не доверяйте web-разработчикам проектирование архитектуры промышленных систем!

Задачка - относительно простая система управления видеоконтентом для андроидных экранчиков. Архитектура - 6 виртуальных серверов на реальных IP (2 базы, бэк, storage, фронт, nginx-маршрутизатор) + CI/CD с гитлабом для всего этого великолепия. Декомпозиция по учебнику :)

Товарищ уволился три месяца назад, проект передали в мой отдел.

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

Мораль: не переусложняйте.

P.S. Автор хотел написать систему, масштабируемую на 100500 клиентов. Но само приложение разработано так, что каждому клиенту нужен свой экземпляр системы. Sic.

:(

Date: 2023-01-26 02:35 pm (UTC)
de_nada: (Default)
From: [personal profile] de_nada


Блин, коллега, вот щщаз прям наотмашь и по живому врезали...

Я тут перед НГ в дружественном журнале уже плакался комментарием на подобную тему:

===
Нам сейчас усиленно впаривают одно ЭДО-подобное поделие отечественной(?) разработки... вот где адок-то самоходный на пердячем паре! :((

Начать с того, что базовая бизнес-модель у них — предоставление услуг ЭДО в своём "облаке" (да пребудет над всеми админами "безоблачное" небо во веки веков).
Когда мы возмутились, то они выкатили, мол, есть у нас и т.н."онпремизная" инсталляция... мля-а-а-аа, лучше бы я этого никогда не видел!

Эта "онпремизная" представляет из себя докер(!)-сборку, в контейнерах которой базируются компоненты системы.

Ладно, что докер, вроде, депрекейтед уже или вот-вот — меня это никогда не парило и в других вариантах софта. Но, сцуко, он же дырявый насквозь, "понятный" как клубок спагетти в плане конфигов (ага, устриц ел!), а самое главное — нахуа!
Ну сделайте вы апплайенсы — ща куда ни плюнь, на "физике" уже мало кто работает, даже у "малышей" (если это не хайлоад какой-то).

Нет, они запихнули в контейнеры докера:

— сам сервер приложения (ЭДО)
— БД PostgreSQL
— Nginx
— Zookeeper
— Kafka

При этом остаётся требование совместной работы этого поделия с их "облаком" (там ещё пяток "сервисов" вынесено), а так же:

------------------------------
Требования к окружению и инфраструктуре

1. С машины должен быть открыт доступ к адресам:

https://license.vendor.ru

https://docker.vendor.ru

https://host.vendor.ru

https://host2.vendor.ru

https://domain.ru

https://integration.ext_service.ru

https://ext_service.vendor.ru

2. Приложение должно принимать запросы на 443 порт, со следующих адресов

x.y.z.36-x.y.z.62/27

a.b.c.d

e.f.g.h

i.j.k.l

---

У меня волосы на жопе шеволятся от ужаса при чтении их "документации", вот честно.
Сцуко, когда — не если! — их "облако" подломят, я хз какая тварь от них заползёт ко мне в сеть через вот это вот всё.

И самое печальное, что лавка наша не очень большая (как говорится, "маленькая, да удаленькая") и ей эта хтонь будет сущим оверкиллом (причём во всех смыслах).
И я НЕ ХОЧУ админить и траблшутить это дерьмо, ну разве что за миллион мелкими купюрами и заправленный вертолёт. :)

фуф...
===

Вот как-то так.

С уважением.


Date: 2023-01-26 02:50 pm (UTC)
From: [identity profile] dzz.livejournal.com

Вот прямо очень понимаю. Очень.

У меня такое впечатление, что сейчас так народ учат, главное — не задачу решить в условиях ограничений, а продемонстрировать владение архитектурными паттернами. То, что паттерны были придуманы в помощь при решении определённых классов задач, людям в голову не приходит.

P.S. Встречал ещё у молодых программеров возмущённое "мы что, монолит разрабатывать будем?". Немодно же, сейчас никто такое не носит :)))

Edited Date: 2023-01-26 03:00 pm (UTC)

Date: 2023-01-26 08:08 pm (UTC)
From: [identity profile] mike-mihalych.livejournal.com

Не народ так учат, а просто разрабов стало больше и, соответственно, процент умных людей, понимающих зачем и отчего, снизился и они стали реже тебе попадаться.

Date: 2023-01-27 08:40 am (UTC)
From: [identity profile] dzz.livejournal.com

Прямо таки, классическое "Сумма разума на планете — величина постоянная. А население растёт" :)

Скорее всего, это издержки низкого порога вхождения в профессию по сравнению с тем, что было лет 20 назад.

RE: :(

Date: 2023-01-26 06:36 pm (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

Да, докер это такое. У нас когда-то была заведена сборка в джекнисе в докер контейнерах под полсотни разных дистрибутивов (с учетом версий). Вчера деплоили новый сервер, я за час там развернул полтора десятка lxc-контейнеров для тестов и поставил их под продакшн нагрузку. Потом коллега стал ставить докер. Поставил и ба-бах все мои конейнеры перестали по dhcp с внешнего сервера IP-адреса получать. НУ вот блин какое докеру до Lxc дело? У него свой бридж, у lxc- свой (вернее, мой, руками отсетапленный). Ан нет, надо насоздавать по умолчанию таких правил файрволла, чтобы никому другому на этой машине не жилось. Прям кукушонок какой-то в гнезде, а не софтина.

Хммм...

Date: 2023-01-26 08:39 pm (UTC)
de_nada: (Default)
From: [personal profile] de_nada


В смысле? Не понял вопроса... :(

С недоумением.

RE: Хммм...

Date: 2023-01-26 08:49 pm (UTC)
From: [identity profile] mike-mihalych.livejournal.com

Я про название компании-производителя?
Впрочем, по ответу понял, что нет, не угадал. 8о)

?

Date: 2023-01-26 09:13 pm (UTC)
de_nada: (Default)
From: [personal profile] de_nada


У меня VK ассоциируется только с Втентакликом.

В контексте моего комментария — что это ЭДО — у мну вообще никак не смыкается Ваше предположение и моё истолкование оного. Где соцсеть и где ЭДОшка?

С уважением.

RE: ?

Date: 2023-01-27 08:38 am (UTC)
From: [identity profile] dzz.livejournal.com

Соцсеть, ориентированная на электронный документооборот, и другие кошмары :)

Хммм...

Date: 2023-01-27 02:58 pm (UTC)
de_nada: (Default)
From: [personal profile] de_nada


Поглядел — да, не соцсеть. Но и не ЭДО (так что непонятно, откуда возникла ассоциация моего исходного комментария с ними).
Ну, такое себе — таких "корпорашек-коммуникашек" ща "пучок пятачок" чуть ли не в каждой подворотне.
Не впечатлило. :)

С уважением.

Date: 2023-01-26 03:23 pm (UTC)
From: [identity profile] parakhod.livejournal.com
Ну, для побеждения подобных несуразиц сейчас и пользуются всяким добром типа k8s. Хоть на кластере на стопицот нодов запускай, хоть локально на полудохлых машинке в докере (у нас умеет бегать на виртуалке на ms surface даже).

А вот такие захардкоженные конструкции — это уже лет 5-7 назад было совсем не комильфо. Самый треш что мне попадался — десяток дроплетов на DigitalOcean, на каждом вручную запущенный докер, в каждом по одному (!) контейнеру, и в каждом контейнере айпишники и секреты прописанные вручную, разумеется. Типа двойное резервирование всего (зачем-то), зеркалящаяся mongo, но даже докер сам при перезагрузке не запускался, не говоря уж о контейнерах. Не говоря уж о процессах в контейнерах — node там падал быстро и фатально.

Date: 2023-01-26 03:35 pm (UTC)
From: [identity profile] dzz.livejournal.com

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


А в описанном случае контейнеризация тоже была бы избыточна, т.к. в приложении нет механизма балансировки нагрузки. Достаточно было раскидать сервисы по портам, а дальше хочешь — пакуй в докеры, хочешь — собирай всё на одной железке.


Edited Date: 2023-01-26 03:39 pm (UTC)

Date: 2023-01-26 03:46 pm (UTC)
From: [identity profile] parakhod.livejournal.com
Ну так такие вещи грумятся большим количеством народа и не один день, и даже не один год бывает.

Ну и да, разумеется контейнеры и вообще микросервисная архитектура — вещь хитрая, и не всегда оптимальная. Подобные реализации — это обычно когда люди услышали про принцип где-то, но сути так и не поняли.

!

Date: 2023-01-26 04:13 pm (UTC)
de_nada: (Default)
From: [personal profile] de_nada


Вы правы.
Я тут первым комментарием обрыдался с подобного подхода — "все (и всё) по контейнерам!".

Так ладно описываемые упыри суют туда Кафки с Зукиперами — но и в более простых вещах такое чудят, что на голову не натянешь!

Вчерась завёл у себя в периметре "локальный/онпремизный "тимвьювер"" на базе РустДеска, так слегонца ошалел от документации по развёртыванию.

Там же, сцуко, два — ДВА, Карл! — модуля (сервер и релей), запускаемые с минимальными пар-рами шелл-скриптом посредством rc.local (ладно, можно залудить самопальный "сервис" для systemd, если уж так хочется).
Ан нет: дока по развёртыванию упоминает альт-решение с запуском через pm2 (который сам требует последнего nodejs). Вот что в головах у людей, а?
Так ещё и есть у них вариант с докером — они эту пиписечную поделку по контейнерам распихивают, прикиньте!

К слову — сам по себе продукт бомба.
Сегодня удалённо причинял пользу и наносил добро нашему удалёнщику из Еревана, сидящему на тухлом вайфае.
Начал с AnyDesk, но он чёта еле булькал, пришлось переползти на эту, пилотную, инсталляцию РустДеска.
Млин, небо и земля — легко, быстро, гладко, удобно.

С учётом того, что подключение шифрованное и идёт через мой локальный сервак на крохотной центосёвой виртуалке в периметре, ни о каком MiTM`e, даже потенциальном, речи не идёт, не говоря уже об "уходах с нашего рынка" всех этих тимвьюверов-энидесков (или вспышках их жадности, как у последнего недавно — с прикручиванием халявного использования).

Так что коллегам рекомендую присмотреться к RD — чёткое поделие.

С уважением.

RE: !

Date: 2023-01-26 04:24 pm (UTC)
From: [identity profile] parakhod.livejournal.com

Ну мы-то по другую сторону "железного занавеса" сидим, от нас ничего не уходит.
По счастью нам и самим уходить ниоткуда не приходится, потому что никуда и не приходили (у нас нет on-premises инсталляций нашей платформы восточнее Саксонии).

Ну а нынешняя страсть к контейнерам и микросервизации везде где надо и не надо — это беда, да. Вторая, как по мне — неожиданное признание функционального программирования как спасения ото всех бед и анафема ооп (я и сам не сторонник марксизма в программировании, но это уж слишком, классы сами по себе — не зло, зло программисты на жабе и шарпах что плодят их без меры).

RE: !

Date: 2023-01-27 04:52 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

Классы — не зло. Классы — отсутствие добра (как Дьявол — отсутствие Бога).


Классы и экземпляры это слишком общая абстракция.


Хорошая абстракция имеет ограниченную область применимости и за счет этих ограничений позволяет какие-то эффективные оптимизации.


Вот, например реляционная алгебра.


Беда в том, что для того чтобы придумать хорошую абстракцию нужен гений уровня Кодда или Кнута. (впрочем, если абстракция должна работать не во всем мировм IT, то может и кто попроще сойдет навроде Пола Грэма. Но вот гений который придумал бы хорошую абстракцию для пользовательского интерфейса, хотя бы для распространенных частных случаев, до сих пор не нашелся).


Функциональное программирование кажется привлекательным потому что до сих пор, пока оно не было мейнстримом, с ним справлялись в основном люди с математическим бэкграундом, которые умеют придумывать абстракции. Но вообще -то функциональная парадигма сама по себе — тоже штука слишком общаяя, и когда вместо людей туда набегут дево-псы, будет то же, что и с ООП.

Re: !

Date: 2023-01-27 06:38 am (UTC)
From: [identity profile] dzz.livejournal.com
Классы — это просто инструмент, достаточно удачный для широкого использования. Другое дело, что во всём следует соблюдать меру.

Re: !

Date: 2023-01-27 06:40 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

На мой взгляд, классы крайне неудачный инструмент для ШИРОКОГО пользования. Он дает ощутимые преимущества только при правильном ОО-дизайне. Что, конечно, проще чем придумать целый новый раздел математики, но тем не менее.


RE: Re: !

Date: 2023-01-27 08:35 am (UTC)
From: [identity profile] dzz.livejournal.com

Строго говоря, ЛЮБАЯ технология даёт преимущества только при грамотном её использовании :)

Применительно к ООП, разработка системы классов — основа дизайна программы, поскольку неверно выбранное решение влияет на весь код. Понимание того, какие прикладные классы нужны и нужны ли вообще (и можно обойтись только библиотечными) — показатель квалификации программиста. Ибо единственный универсальный инструмент — это мозг :)))

В тех же контейнерах принципиально нет ничего плохого, для ряда задач они ой как полезны и удобны, но надо понимать, когда как их готовить.


Date: 2023-01-26 06:38 pm (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

Беда в том, что веб-разработчик не думает, а применяет готовые шаблоны. Его так учили — сначала странички рисовать с помощью какой-нибудь template engine, потом клиент-сайд из готовых фреймворков собирать, ну и так далее.

December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 08:36 pm
Powered by Dreamwidth Studios