Saphire
Я просто ну очень очень хотела запилить штуку одну
Saphire
Для той самой презентации
Saphire
...в этоге директор фирмы для который это делается "давай выкатывай фичу" и смержили ПР мой. Криков ноль с:
Maxim
А подскажите товарищи. Каким технологиям (языкам , инструментам ) разработки лучше отдать предпочтение при разработке высоконагруженной площадки агреггатора типа marketplace. Аггрегация прайс листов магазинов (от 100000 позиций один прайс лист), представление всего этого дела , а-ля (грубо) ya.market. Инструменты торговли для продовцов и конечных покупателей и вот это вот все. Хочется не сделать фатальную ошибку и понять на чем лучше делать бэкэнд, на чем фронтэнд (исполнители наемные и предлагают разные технологии), чтобы потом затраты на эксплуатацию были поменьше, чтобы технология была не мертвеннорожденная и были специалисты на рынке по вменяемой стоимости, которые смогут это дело сопровождать и допиливать.
Артём Валерич, вам нужно выбирать не языки программирования и не конкретные инструменты для реализации вашего проекта, вам нужно выбрать подход к реализации проекта, другими словами, вам нужно создавать проект таким способом что бы вы не были зависимы от конкретного языка программирования или используемой технологии, эти запчасти обязаны иметь такое свойство как "легко заменить в короткие сроки". Вы можете начинать проект на php, через пол года у вас уже не только php но и python и lua и go и еще какой нибудь зверь которого нужно кормить только южноафриканскими бананами собранными исключительно аборигенами племени "зулу", и в такой ситуации если у вас в зоопарке есть такой зверь которого нельзя заменить то вас ждет та же учесть что и динозавров ;) поэтому будьте открыты всем языкам программирования и всем инструментам для реализации любых идей, даже тех идей что кажутся "фантастическими", если у вас есть механизм "быстрой и горячей замены" - перед вами не стоит вопрос "что лучше?", Перед вами стоит вопрос "где взять еще и определить что лучше?". На нашем проекте мы руководствуемся именно этим подходом и у нас всегда есть на что можно заменить любую запчасть в самые короткие сроки, это позволило завершить основные работы не за три, а за два года, считаю это одним из наглядных показателей что данный подход имеет право на жизнь и даже может дать фору любому конкуренту
Артём
Артём Валерич, вам нужно выбирать не языки программирования и не конкретные инструменты для реализации вашего проекта, вам нужно выбрать подход к реализации проекта, другими словами, вам нужно создавать проект таким способом что бы вы не были зависимы от конкретного языка программирования или используемой технологии, эти запчасти обязаны иметь такое свойство как "легко заменить в короткие сроки". Вы можете начинать проект на php, через пол года у вас уже не только php но и python и lua и go и еще какой нибудь зверь которого нужно кормить только южноафриканскими бананами собранными исключительно аборигенами племени "зулу", и в такой ситуации если у вас в зоопарке есть такой зверь которого нельзя заменить то вас ждет та же учесть что и динозавров ;) поэтому будьте открыты всем языкам программирования и всем инструментам для реализации любых идей, даже тех идей что кажутся "фантастическими", если у вас есть механизм "быстрой и горячей замены" - перед вами не стоит вопрос "что лучше?", Перед вами стоит вопрос "где взять еще и определить что лучше?". На нашем проекте мы руководствуемся именно этим подходом и у нас всегда есть на что можно заменить любую запчасть в самые короткие сроки, это позволило завершить основные работы не за три, а за два года, считаю это одним из наглядных показателей что данный подход имеет право на жизнь и даже может дать фору любому конкуренту
Очень интересно , Максим. Как бы сформулировать этот подход более подробно ? Можете озвучить основные принципы ? Это должна быть какая то модульная (сервисная) архитектура , чтобы можно было прикручивать модули с новым функционалом на любом языке ? Мы сейчас на стадии разработки ТЗ и хотелось бы заложить туда основные идеи этого подхода , потомучто потом исполнители за шаг влево /вправо от прописанного в ТЗ будут просить денег , или еще чего хуже придется все переделывать или поработать на корзину , как вы правильно заметили.
Serezha
Очень интересно , Максим. Как бы сформулировать этот подход более подробно ? Можете озвучить основные принципы ? Это должна быть какая то модульная (сервисная) архитектура , чтобы можно было прикручивать модули с новым функционалом на любом языке ? Мы сейчас на стадии разработки ТЗ и хотелось бы заложить туда основные идеи этого подхода , потомучто потом исполнители за шаг влево /вправо от прописанного в ТЗ будут просить денег , или еще чего хуже придется все переделывать или поработать на корзину , как вы правильно заметили.
Когда в одном абзаце одновременно появляются слова "исполнители", "ТЗ", "архитектура" - сразу думаю что проект будет провальным :) Это как красные флажки что там где то гремучая смесь факторов: заказчик слабо ориентируется в ИТ, не понимает полную стоимость проекта и риски, не может адекватно контролировать его ход, сроки как обычно бывает затянуты, сложность выходит из под контроля, деньги заканчиваются, исполнители спрыгивают и начинается поиск новых на доработку "на 80% готово, осталось пару скриптов прикрутить и полетит" что означает что в этой лапше кода осталось самая сложная 20% часть доведения до стабильного продакшен-состояния, которая и займет следующие 80% времени по закону Парето
Serezha
последний раз с таким столкнулся когда работал в компании по заказной разработке и нам передали в работу код крипто биржи от питерских аутсорсеров - вполне квалифицированных, но после сжигания 50 тыщ долларов на выходе получился не поддерживаемый небольшой командой франкенштейн в который нужно ввалить еще 150 чтобы запустить в продакшен и доверить ему свои и чужие деньги
Александр
Подскажите, как ставить пакеты для lua 5.3 с помощью luarocks на Debian 9? lua-5.3 есть, luarocks-5.3 отсутствует, а обычный luarocks ставит для 5.1 (если я верно понял). Как установить luarocks-5.3?
Serezha
Yuriy
Yuriy
Serezha
Те. Более с 0.
50 000это мало.
Так и я о чем же. Все эти заказчики которые просят на форумах советы ищут дешевы команды и хотят за малые деньги построить Титаник - Титаник и получают
Serezha
И дело даже не в 50К. Я знаю людей которые могли бы сделать биржу в эти деньги. Но они не аутсорсят
Saphire
Это за какие деньги надо работать что бы что-то получилось на такой бюджет?
Anonymous
Когда в одном абзаце одновременно появляются слова "исполнители", "ТЗ", "архитектура" - сразу думаю что проект будет провальным :) Это как красные флажки что там где то гремучая смесь факторов: заказчик слабо ориентируется в ИТ, не понимает полную стоимость проекта и риски, не может адекватно контролировать его ход, сроки как обычно бывает затянуты, сложность выходит из под контроля, деньги заканчиваются, исполнители спрыгивают и начинается поиск новых на доработку "на 80% готово, осталось пару скриптов прикрутить и полетит" что означает что в этой лапше кода осталось самая сложная 20% часть доведения до стабильного продакшен-состояния, которая и займет следующие 80% времени по закону Парето
Есть конечно истина в ваших словах, и много таких начинаний погорело, только не нужно причиной неудачи ставить некомпетентность заказчика. Ровно то, что вы применили к Заказчику одинаково применимо и к исполнителям : не могут оценить трудозатраты, высока вероятность ошибки при построении архитектуры, не способны довести проект до конца не отступая от бюджета и сроков, не имеют в штате собственных специалистов , имеют сомнительную юридическую историю , не имеют оборотных средств на балансе ,для компенсации рисков невыполнения проектов и прочее прочее. Почему все эти риски должен вдруг брать на себя заказчик и быть компетентным ? Это вопрос риторический :)
Anonymous
Anonymous
Ozon сегодня
«С точки зрения технологий тут был каменный век. Сейчас наступил бронзовый, но 21-й наступит скоро», — уверяет новый технический директор компании Анатолий Орлов. По его словам, технологически Ozon был устроен как банк: вертикальное масштабирование, много кода написано внутри хранимых процедур MSSQL. Но ситуация быстро меняется.
Сейчас сайт Ozon.ru из монолита переделывается в систему, состоящую из микросервисов. Чтобы каждый микросервис можно было поправить и развернуть независимо от другого. Для этого разработчики используют фреймворк Kubernetes и Docker — ПО, которое автоматически разворачивает микросервисы в частном облаке. В качестве языков программирования выбраны Go и .net Core, которая обладает способностью работать на Linux. В качестве протокола обмена данных выбран протокол gRPC, с помощью которого микросервисы на разных языках могут прозрачно вызывать друг друга.
Serezha
Serezha
это как сап р3
Serezha
условно 20 лет назад написали екоммерс движок отладили потом он пошел в другие проекты - обычно что то успешное так и работает - с нуля редко пишут - выкупают рабочее решение и модернизируют
Serezha
ну и надо понимать что год назад Озону инвесторы подкинули 5 ярдов а в этом году еще 10 ярдов - которые успешно осваиваются
Serezha
а спец который нормально вкурит грпц и кубернетес стоит фирме условые 400000 рублей в месяц до налогов и полдня пьет кофе и ходит на груминги
Anonymous
Saphire
Serezha
Жуть :)
https://vc.ru/ozon/45542-go
Serezha
Serezha
Плюс НДФЛ, страховки, рабочее место в офисе класса А на Москва Сити, обслуга в виде бухгалтерии эйчаров итд
Serezha
и вот они 400К точно набежали
Anonymous
Александр
Serezha
Serezha
вот отсюда если начать? https://hub.docker.com/r/openresty/openresty/dockerfile
Александр
с докером практически не работал, но попробую посмотреть
Александр
а альтернативные пакетные менеджеры - фигня идея?
Serezha
Александр
я уже гуглил и натыкался на разное: https://github.com/diegonehab/luasocket/issues/200
Александр
будто никто не юзает 32-битные пакеты под х64
Serezha
Александр
соответственно пишешь require "socket" и получаешь /usr/local/lib/lua/5.3/socket/core.so: wrong ELF class: ELFCLASS64
Serezha
Yuriy
И инфраструктуру они отчаянно переписывает и переделываю.эт
Serezha
Serezha
вики говорит что основатель Авито в 2006 продал свой прошлый проект за 48 лямов зелени а в 2007 запустил авито
Yuriy
у Авито всегда были огромные деньги как я знаю :)
Так же они инвесторов привлекали и улучшали сервис. Они бы сидели ровно если бы у них не шло. Авито изначально была практически бесплатной площадкой. Они хотели зарабатывать на ускорителя продаж. Но это не пошло так как планировалось. Сейчас у них почти нет бесплатных направлений. И люди платят. Маркетинг хороший. Площадка ропулрная
Serezha
Serezha
https://www.vedomosti.ru/business/articles/2019/04/28/800418-ozon-poluchil-aktsionerov
Yuriy
Я просто это все к тому, что архитектурой на старте можно пренебречь. Все равно переписывать придётся.
Serezha
Yuriy
Я просто по своему опыту в скольких проектах участвовал - могу сказать что 90% проектов которые были написаны на коленке и с минимальным функционалом - взлетели. А те где строили архитектуру и годами пилили суперкиллермазафакавсехебеев - даже до бетты не дожили. Ибо дорого и долго пилить сразу правильно и много)
Serezha
Yuriy
Yuriy
Но да. Понторезов которые кроме как нести чушь, не имеющую отношения к реальности - полно
Snusmumriken
Вот теперь мне кажется что те спамеры были правы, и тут действительно "бизнес-чат" ))
Yuriy
Ну раз уж тронули какашку - дайте повонять)
Anonymous
Snusmumriken
Та не, просто пилите как пилится поначалу. Сначала можно не шибко производительно и не особо "мегапродуманно", главное чтобы работало. А то помнишь твои love2d-проекты с ecs, где ты продумывал сразу всё одновременно, вместо того чтобы делать игру?
Snusmumriken
Ну вот это не особо жизнеспособная модель разработки в реальных условиях. Очень желательно видеть работающий результат как можно быстрее. Прикладывая голову, разумеется, и собственный опыт разработки чего-то аналогичного. Ну, то есть балансируем, не скатываясь в "вечную разработку" и в "супер-кошмарный код".
Anonymous
Maxim
Maxim
Ага. Ну я все равно очень рад , что получил тут обратную связь. Это дорогого стоит
Артём Валерич, все просто, те кто говорят что все сложно - просто ни разу не делали и не решали подобных задач. На любом языке можно написать, главное понимать принцип. Например, вам нужно 1000 прайсов спарсить, пишется один парсер на любом языке, ваще на любом, главное чтоб парсил как нада, для того что бы спарсить 1000 прайсов вам нужно запустить 1000 экземпляров парсера с разными параметрами. Те кто парсят в один поток пусть дальше кусают логти
Snusmumriken
Артём Валерич, все просто, те кто говорят что все сложно - просто ни разу не делали и не решали подобных задач. На любом языке можно написать, главное понимать принцип. Например, вам нужно 1000 прайсов спарсить, пишется один парсер на любом языке, ваще на любом, главное чтоб парсил как нада, для того что бы спарсить 1000 прайсов вам нужно запустить 1000 экземпляров парсера с разными параметрами. Те кто парсят в один поток пусть дальше кусают логти
(именно с парсингом могут быть проблемы в виде куков и сессий, например. а ещё, при подобном ддосе, плюс владелец сайта может обидеться и влепить капчу, вдовесок к сессиям, придётся проксить и рукапчить, я на этом трёх собак схавал)
Maxim
Мы дальше пошли, мы запускаем на каждый раздел в тысяче свой парсер имея всего один сценарий
fgntfg
Pavel
fgntfg
fgntfg
И что хай для одного железа, то идл для другого
Pavel
На самом деле ремарка про Китай была в том, что только там из за специфики рынка можно запустить сервис....
И через пол часа после запуска словить 100к рпс
А все из за того что сарафанным радио разнесло ссылку
Pavel
И это частая проблема у них насколько я знаю.
Pavel
А в классических запусках в России и Европе - нагрузка растёт достаточно медленно, чтобы успевать за ней.