LINUX.ORG.RU

Вопрос хипстерам в программировании

 


0

2

Последнее время заметил тенденцию, что типовые вещи стали выносить в отдельные сервисы, использовать новомодные микросервисные архитектуры и т.д.

Так вот захотел я сделать парочку пет-проектов для себя ну и потыкать все это дело, один из них школа английского.

Раньше бы я сделал фронт (или попросил бы сделать front-end программера), написал бы POST\GET\WebSocket методов и обменивался бы информацией с бекендом + хранил бы данные в PostgreSQL. Соответственно, аутентификация была бы закостылина в код.

А сейчас я так понимаю, что модно взять и поставить k8s, внутри развернуть поды с сервисом, который отвечает за функционал, отдельный сервис за аутентификацию, отдельный сервис за хранение данных, все связать очередью типа RabbitMQ, поставить сервис API Gateway и все это скрыть за NGINX?

★★★★
Ответ на: комментарий от anonymous

Гы, я в этих статьях на вики ни одной правки не сделал. Если у тебя свое личное мнение о том, что такое лендинг - окей. Я лишь скинул ссылки на вики :)

anonymous
()
Ответ на: комментарий от anonymous

Лендинг - это и есть магазин ОДНОГО товара. Его цель, собрать ЛИДОВ
основной задачей которой является сбор контактных данных целевой аудитории
Какой же ты ущербный.

Если ты один и тот же анон - то весело, т.к. лид (которые ты хочешь собирать) это и есть сбор данных.

anonymous
()
Ответ на: комментарий от dimuska139

Возьми docker-compose Ansible и Podman да и всё.

Починил.

commagray ★★★★★
()

Вот пока тебе не прищучило, что куски надо обособлять на отдельные ноды - вот и не парься.

Когда прищучит - ты сам поймёшь зачем так делать.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от AntonyRF

Как минимум для общего развития полезно. Акторы местами реально удобны.

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

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

Ну запили мне index.html-лендинг, без сервер-сайд логики. Он должен собирать контакты лидов для обратной связи, аккуратно складывая в базу.

Это ты интернет магазин придумал сейчас, поздравляю. Очень радует, когда их путают с лендингами.

Таблетки выпей, шиз.

anonymous
()
Ответ на: комментарий от no-such-file

Это как? Изучи сперва k8s, чтобы развернуть сервис в AWS? Кто бы ими пользовался тогда? (Говоря обо всей этой интерактивщине с web-интерфейсом). Оно же для того и существует, что порог вхождения минимальный и мощности большие. А кому действительно k8s нужен во всех тонкостях, такие вопросы не станет задавать.

Stack77
()
Последнее исправление: Stack77 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Так ты против сбора данных с лендинга или что? У лендинга задача одна, я писал об этом выше и привел ссылки на определения этого термина в Вики (ру и не ру). JS-ом данные отправить дальше с лендинга куда угодно (бекенд или что-то ещё) проблем не составляет. С чем ты споришь?

anonymous
()
Ответ на: комментарий от Stack77

Изучи сперва k8s, чтобы развернуть сервис в AWS

ЛОЛ да. Если не k8s, то Lambda какой-нибудь и т.п. Если ты облаком хочешь пользоваться не как тупым vps. А иначе туда и лезть не стоит. Можно на DO сидеть и в хер не дуть. Правда в DO тоже уже притащили k8s… ну ты понял.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Если я правильно поняла, ноды в эрланге соединяются через одно единственное tcp соединение. А это значит, что он нихрена не маштабируется на больших объемах.

anonymous
()

А сейчас я так понимаю, что модно взять и поставить k8s, внутри развернуть поды с сервисом, который отвечает за функционал, отдельный сервис за аутентификацию, отдельный сервис за хранение данных, все связать очередью типа RabbitMQ, поставить сервис API Gateway и все это скрыть за NGINX

Даже menangen со мной согласен в том, что микросервисы делать сложнее, чем монолиты. Реальные плюсы микросервисы начинают давать где-то так от десятка серверов, поскольку ниже уже можно поспорить что проще.

Тру стори: прихожу к девопсу, спрашиваю «мне тут нужно статичную страницу захостить», он спрашивает «статичная страница? Ее как-то нужно компилировать? У нее тесты есть?», отвечаю «нет, просто статичная страница» — «ну хорошо, выделю тебе площадку». Вот такие пироги, уже под статику получи отдельный под и распишись.

аутентификация была бы закостылина в код

Тебя никто не заставляет аутентификацию приколачивать. Авторизацию — да, но аутентификация сама по себе довольно независимая сущность.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

уже под статику получи отдельный под и распишись

И в чём трагедия-то? Ты хотел не отдельный под, а чей-то? Ты хотел vm? Ты хотел под свою статику bare-metal сервер?

Под в k8s - это такой же хостинг как любой другой.

alpha ★★★★★
()

Роди в себе инженера на день и сделай так как это будет наиболее оптимально для твоего случая. Хватит смотреть по сторонам в поисках «лучших» практик, подходов и прочего бреда.

anonymous
()
Ответ на: комментарий от Stack77

Согласен, но я так понимаю, что проблема накатывания ненужного берется часто со стороны бизнеса, когда они умеет считать деньги, но не умеют в разработку. В этом случае красивые рекламные статьи принимаются за чистую правду и мысль - а почему бы мы на нашей галере не может сделать как Амазон не вызывает преград.

AntonyRF ★★★★
() автор топика
Ответ на: комментарий от Dark_SavanT

Внезапно, ну ладно спасибо, гляну

AntonyRF ★★★★
() автор топика
Ответ на: комментарий от crutch_master

Как раз про него помню, еще можно поднять gdb-server в контейнере и настроить удаленную отладку.

AntonyRF ★★★★
() автор топика

Впервые слышу. Видимо, потерял нить трендов. С чем может быть связано? Хз, возможно, с ростом пропускной способности систем передачи данных. Микросервисы ж жручие, они ж постоянно висят в памяти в адресном пространстве В крайний раз я увлекался микросервисами во времена увлечения реальным временем. В ОСРВ всё построено на микросервисах.

anonymous
()
Ответ на: комментарий от anonymous

Макакин привет. Налить борща?

Привет. Я только поел.

byko3y ★★★★
()
Ответ на: комментарий от anonymous

В крайний раз я увлекался микросервисами во времена увлечения реальным временем

Дядька, вылезай из танка. Микросервисы это про Amazon, Netflix, Twitter.

anonymous
()
Ответ на: комментарий от ugoday

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

У меня нескромный вопрос: и как же она упрощает взаимодействие разработчиков? Типа вместо вызова функции, исходный код которой я могу прочитать, я должен вызвать HTTP API по написанным с бодуна докам, и надеяться, что я получу тот ответ, который жду, и этот ответ не поменяется со временем. У меня есть смутное подозрение, что «упрощают» микросервисы разработку только тем, кто чужой код все равно не умеет читать, и кому проще половину рабочего времени сидеть и болтать про архитектуру API вместо того, чтобы наконец написать сотню строк и всунуть их в нужное место.

упростить масштабирование под нагрузкой

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

byko3y ★★★★
()
Ответ на: комментарий от byko3y

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

anonymous
()
Ответ на: комментарий от byko3y

У меня нескромный вопро

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

ugoday ★★★★★
()
Ответ на: комментарий от alpha

И в чём трагедия-то? Ты хотел не отдельный под, а чей-то? Ты хотел vm? Ты хотел под свою статику bare-metal сервер?

Ты каждому человеку для хостинга статичного HTML предлагаешь ставить кубернетес и создавать в нем под? Это же статика, у нее околонулевая нагрузка на систему, можно хоть на андроид ставить сервак и раздавать с него на 10 млн пользователей в сутки.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Ты каждому человеку для хостинга статичного HTML предлагаешь ставить кубернетес и создавать в нем под?

Тебе никто не предлагал ставить kubernetes. Тебе выделили готовый под на уже имеющемся кластере.

Это же статика, у нее околонулевая нагрузка на систему, можно хоть на андроид ставить сервак и раздавать с него на 10 млн пользователей в сутки.

И что теперь? Где лежать-то эта статика должна по твоему? На твоём телефоне?

Ты каждому человеку для хостинга статичного HTML предлагаешь «ставить сервак»?

alpha ★★★★★
()
Ответ на: комментарий от AntonyRF

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

Моя бабуля умеет считать деньги — это ничем не примечательный навык. Как бы весь прикол бизнеса как раз заключается в том, чтобы потратить мало, а получить много. И если бизнес не умеет тратить мало — это плохой бизнес. Грубо говоря, это как домохозяйка, которая купила мерседес и разорилась на его обслуге. Может быть «деньги считать» в прямом смысле она и умеет, но мозгов у нее нету и в итоге денег у нее не стало — хоть считай, хоть не считай.

byko3y ★★★★
()
Ответ на: комментарий от anonymous

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

А как насчет сотен микросервисов, которые нужно изучать для того, чтобы понять, что же происходит в системе и чего ей не хватает? Хотя бы просто чтобы понять: помешает ли новый микросервис кому-то или нет? Нужен ли он или его функции уже кто-то выполняет?

byko3y ★★★★
()
Ответ на: комментарий от ugoday

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

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

byko3y ★★★★
()
Ответ на: комментарий от alpha

Тебе никто не предлагал ставить kubernetes. Тебе выделили готовый под на уже имеющемся кластере
Ты каждому человеку для хостинга статичного HTML предлагаешь «ставить сервак»?

А что такое отдельный под? Это и есть отдельный сервак, на котором хостится мой файлик. И это полнейшая дичь — но только на мой взгляд.

byko3y ★★★★
()

Раньше бы я сделал фронт (или попросил бы сделать front-end программера), написал бы POST\GET\WebSocket методов и обменивался бы информацией с бекендом + хранил бы данные в PostgreSQL. Соответственно, аутентификация была бы закостылина в код.

Вот так и делай. Аутентификация с токенами пишется в 50 строк.

ArkaDOSik ★★
()
Ответ на: комментарий от byko3y

А что такое отдельный под? Это и есть отдельный сервак, на котором хостится мой файлик.

Именно, это «сервак», который уже сделан и готов к употреблению. Включен в мониторинг, в систему доступа, в систему учета и т.п. Его не надо никуда «ставить».

И это полнейшая дичь — но только на мой взгляд.

Но сформулировать почему ты не можешь.

То есть ты пишешь: не хочу под, хочу сервак. Но под - это сервак. Но всё равно не хочу под!

alpha ★★★★★
()
Ответ на: комментарий от byko3y

Фоулер, конечно, мудак

Тоже не большой его фанат, но не видел, чтобы кто-то кроме него рассматривал так много разных паттернов, архитектур и подходов. Можешь посоветовать, кого, или что и где ещё почитать по этой теме?

grazor ★★
()
Ответ на: комментарий от alpha

Именно, это «сервак», который уже сделан и готов к употреблению. Включен в мониторинг, в систему доступа, в систему учета и т.п. Его не надо никуда «ставить»

Ты забыла упомянуть «встроен в систему бэкапов». Потому что как же статичный щитимель не бэкапнуть раз в день по расписанию. Какой мониторинг, какой учет, какая балансировка? Это статика с нулевой нагрузкой, максимум что — это записать «такой пользователь пришел с такого айпи», которое по-хорошему уже должно быть на переднем серваке.

То есть ты пишешь: не хочу под, хочу сервак. Но под - это сервак. Но всё равно не хочу под!

Про виртуальный хостинг в треде уже никто не помнит?

byko3y ★★★★
()
Ответ на: комментарий от grazor

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

Ну на то он и мудак — он должен выглядеть умно и отвечать на все возможные вопросы по теме. Даже если ничего в теме не соображает.

Можешь посоветовать, кого, или что и где ещё почитать по этой теме?

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

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Это статика с нулевой нагрузкой

Ты используешь фразу «нулевая нагрузка» как заклинание. От того что она «нулевая», 404 в 200 не превращаются магически. Наоборот, чем реже используется сервис, тем важнее мониторинг его состояния. Потому что когда в тот единственный раз когда он тебе понадобится, он не сработает, это будет во-первых критично, а во вторых у тебя не окажется вообще никого со сколько нибудь реальным понимаем что это за сервис, откуда он начинается, кто за него отвечает и кто будет его чинить.

Какой мониторинг, какой учет, какая балансировка?

Учет тебя владельцем этой странички.

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

максимум что — это записать «такой пользователь пришел с такого айпи», которое по-хорошему уже должно быть на переднем серваке.

Теперь у нас ещё «передний» сервак появился. Он тоже должен сам собой завестись в чистом поле?

Про виртуальный хостинг в треде уже никто не помнит?

То есть теперь ты каждому человеку для хостинга статичного HTML предлагаешь развернуть платформу для виртуального хостинга?

Всё-таки разработчики жутко наивные ребята когда дело до инфраструктуры доходит.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

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

anonymous
()
Ответ на: комментарий от anonymous

почему единственное tcp соединение не является узким местом?

Для начала обьясни как ты собираешься условные три ноды соединять одним TCP соединением?

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

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

Акторная модель к эрлангу гводзями не прибита есличо. Это один из способ построения взаимодействия между компонентами системы.

Но тут либо у вас препод так себе, либо у тебя с пониманием проблемы. Либо и то и другое вместе.

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

Скажем так, плохому танцору, яйца мешают.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Connections are by default transitive. If a node A connects to node B, and node B has a connection to node C, then node A also tries to connect to node C. This feature can be turned off by using the command-line flag -connect_all false, see the erl(1) manual page in ERTS.

Так, сорян, я забыл что эрланг может пробрасывать сообщения и через ноду тоже.

Что основного посыла не меняет - если не учитывать локальность данных и гонять их постоянно с ноды на ноду - будут проблемы.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

быстро станут bottleneck если постоянно гонять крупные обьёмы данных

Вот это я и хотела сказать. А еще там нужны resource-intensive activities. Я хз что это такое, могу только озвучить вывод - лучший инструмент для разработки микросервисов это go. Эрланг нет.

anonymous
()
Ответ на: комментарий от Dark_SavanT

модель к эрлангу гводзями не прибита есличо

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

anonymous
()
Ответ на: комментарий от anonymous

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

А вот строить распределённую систему на гошечке - ёбу дашься.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

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

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от byko3y

Тру стори: прихожу к девопсу, спрашиваю «мне тут нужно статичную страницу захостить», он спрашивает «статичная страница? Ее как-то нужно компилировать? У нее тесты есть?», отвечаю «нет, просто статичная страница» — «ну хорошо, выделю тебе площадку». Вот такие пироги, уже под статику получи отдельный под и распишись.

Так а что девопс должен был тебе предложить? Расположить страничку на «переднем» серваке?

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.