Перейти до

NiTr0

Сitizens
  • Всього повідомлень

    3 383
  • Приєднався

  • Останній візит

  • Дней в лидерах

    29

Все, що було написано NiTr0

  1. NiTr0

    Помогите выбрать биллинг

    Микбилл, писаный на пхп. Абиллс (который весьма недавно обзавелся транзакциями, и то - лишь местами, а foreign ключи до сих пор то ли в todo, то ли в "нафиг нужно"). Думал, вы угадаете продукт из описаных "особенностей реализации". Вы какбы сами впряглись, я вас не тянул и ваш биллинг вообще не упоминал. А раз зацепило - очевидно, есть на то причина. Я вашего проекта какбы не видел (и не присматривался к нему), и конкретно о нем не говорил. Я говорил о других околосетевых проектах. Как опенсорсных, так и платных (в т.ч. довольно дорогих типа ned2).
  2. SATA винт легко вытягивает до 200 иопс на БД порядка гига объемом. При 40-50 иопс винт гуляет. А это, при грамотном тюнинге, порядка 40 операций insert/update в секунду. Или же, при интервале аккаунтинга в 1 минуту, порядка 1500 сессий онлайн. Т.е. абонбаза порядка 3к. Т.е., до 150 иопс можно не напрягаться, тазик с парой десктопных 7200 об/мин винтов вытянет 10к абонбазу легко, и не скукожится во время репликации. Далее, при репликации выгребается один кусок бинлога, блоком максимального размера (сколько там - 2к секторов? или больше?), и даже если будет 20 конкурирующих запросов со средним размером блока в 5-7 секторов, бинлог будет вытягиваться весьма шустро. С какой такой радости? Размер нашей БД биллинга за 5 лет работы всего 2.7 гига. База естественным образом поднимается в кеш, и из кеша работает. Оперативные данные, типа детализированного аккаунтинга сессий, ессно, периодически удаляются. Если же у вас база намного больше оперативной памяти - flashcache в помощь. Из допущения, что дисковая подсистема должна быть всенепременно загружена на 101%, делается вывод о неприспособленности СУБД к отказоустойчивой работе. Занятно...
  3. NiTr0

    Помогите выбрать биллинг

    Скажите, адекватный разработчик будет писать биллинг, включая резидентное ядро, на php, у которого кривой сборщик мусора, а утечки памяти - нормальное явление? А может, биллинг без foreign ключей в БД и без транзакций (ну подумаешь, деньги снялись а услуга забыла активироваться т.к. СУБД лагонула) - это нормально? Не, оно работает, почти без проблем, но... Ну я к примеру почти всегда вижу в своих проектах спустя год-другой (не говоря уже о большем времени), что можно было сделать иначе, немного (или намного) лучше. И если проект актуальный - не стесняюсь уделять время на рефакторинг. Банально потому, что не бывает идеального кода. И да, требования к функционалу никоим образом не могут однозначно определять архитектуру системы. От того - сдается мне, что вы сильно лукавите... Ну что ж, мериться так мериться. Да, мой опыт несколько поменьше вашего, всего каких-то лет 15, но за это время писал на разных языках (это и асм, включая х86, 8051, AVR, и паскаль/делфи, и С/С++ включая Qt framework, голое WinAPI, RTOS, эксперименты с драйверами ядра и модулями нетфильтра linux, и перл, и питон, и чуток тикля, и яваскрипт, ну и шеллскрипт ессно - не тянуть же в embedded перл/питон), начиная от небольших утилит/библиотек оканчивая скада-системами. И да, чем дальше, тем больше я убеждаюсь, что лучший код - не написанный. Т.е., чем больше юзается адекватных популярных библиотек/фреймворков на замену собственноручно писаным велосипедам, тем легче поддержка кода в итоге, и легче разработка. Особенно - если к разработке придется привлекать еще кого-то. И да, если из кода без комментариев на высокоуровневом языке стороннему человеку непонятно, что сей код делает хотя бы в общих чертах - значит, код написан плохо. А если при попытке понять логику салата вскипает мозг - тогда появляется лютое желание плюнуть и написать все с нуля, пусть и убив несколько месяцев.
  4. NiTr0

    Помогите выбрать биллинг

    Мы здесь не мериться собрались какбы. О вашем опыте программирвания мне судить сложно, но, думаю, не от хорошего качества кода и грамотного проектирования системы в нодени кое-кто из присутствующих перепиливал ядро наполовину... Темплейт энжины обычно обладают обратной совместимостью... Вы пробовали переделать ЛК под конкретный скин? Не-не, не сменить стиль текущего ЛК, а изрядно его перелопатить, слив часть пунктов меню на одну страничку, часть - исключив, часть - урезав наполовину? Когда часть кода генерится темплейт энжином, часть - хранится в темплейтах (в порядке вывода которых черт ногу сломит), часть - вообще генерится в смеси логики с выводом (index.cgi + modules/*/webinterface)? Я вам привел пример того как по-хорошему должен выглядеть код. Отдельно - работа с БД (с некоторым ф-ями логики, которые невозможно отделить от скл), отдельно - логика (разбитая на минимальные самодостаточные ф-и вместо полотен кода), дергающая ф-и работы с БД и полностью абстрагированная от скл бэкэнда, отдельно - веб-интерфейс, чья задача лишь дернуть вызов некой ф-и, и отрисовать на шаблоне возвращенный результат. Рассказал и о прифите этого, в виде более быстрой разработки, уменьшения дублирования кода и т.п. Причесал до подобного вида даже набросок биллинга для сети хотспотов и выложил в качестве примера. То, что вашу систему нужно будет наполовину переписывать, убирая мешанину кода бизнес-логики и генерации веб-странички, писаную в лучших традициях php-салата - само собой разумеется. Что это займет немало ресурсов - тоже понятно. Стоит это того или не стоит - решать вам. Но в текущей системе, по-моему, даже вы уже теряете контроль над кодом...
  5. NiTr0

    Гуртожиток. Боротьба з роутерами

    Открою ОГРОМНЫЙ секрет. Включение отдельно стоящей общаги обойдется значительно дороже 1-2к грн. Если, ессно, не медью/вафлемостом включать, и не б/у мыльницы ставить. Потому не надо баек о долгом отбивании дополнительных 1-2к грн - на фоне 10-20к грн затрат это не так и много. И да, 1-2к грн комменданту с головой покроются первым же взносом новоподключенных. А по поводу "5 роутеров на 5 этажей" - прекращайте рассказывать сказки. Роутеры не умеют балансировать скорость, в итоге качок Вася никак не уживется с геймером Петей на одном роутере.
  6. NiTr0

    Помогите выбрать биллинг

    Проблема в том, что вышеперечисленные требования - это требования к фронт-энду и общим характеристикам. Я же говорю о том, что под капотом. А там зачастую творится ад и погибель. О своих нескучных шаблонизаторах скл запросов и темплейт энжинах, а также прочих велосипедах, которые обычно не дотягивают до уже написаных аналогов, при этом - не документированы, порой - с горкой багов, и требующие в нестандартных ситуациях очень шершавого напильника, помолчу... А вообще - основная проблема многих биллингов (да и, если честно, не только биллингов - это относится ко многим системам автоматизации), пожалуй, в том, что их либо пишут админы, которые знают 1-2 языка программирования на среднем уровне и не имеют особого опыта написания сколь-либо крупных проектов, либо - наоборот, программисты, которые не особо представляют целевую область использования. А уж когда и первые, и вторые бросаются с головой, скажем, в картографию, или складской учет (ессно, без предварительного изучения области) - все становится еще печальнее...
  7. NiTr0

    Помогите выбрать биллинг

    Не брезговать проектированием и обдумыванием структуры вместо разработки "снизу вверх" (проект, вырастающий "сам собой" из кнопки - конечно, просто и интересно, но в какую сторону он вырастет и что с ним спустя пару лет делать - вопрос), и не стесняться рефакторинга вместо налепливания костылей. Код надо писать понятно и без грязных хаков в погоне за 0.5% производительности в редких ситуациях. И по максимуму использовать готовые наработки вместо изобретения велосипедов. Готовые решения весьма часто имеют неправильную архитектуру базы, и порой весьма неочевидные костыли и подпорки в реализации некоторых фич, которые уже успели укорениться и пустить уйму свежих ростков - так что выдирать их эквивалентно переписыванию половины кода биллинга. Отнюдь. Самописный биллинг - точно знаешь, что под капотом и кому давать по рукам за говнокод. Покупной/опенсорсный - тот самый кот в мешке. Оно вроде есть и вроде работает, но где вылезет баг - неведомо, а как захочется прикрутить что-то свое, но тесно завязанное с основным функционалом (ну, например, коэффициенты стоимости для групп пользователей, дабы ограничиться десятком базовых тарифов вместо 100500 тарифов из 100500 групп, да или хотя бы банально разделить учетную запись доступа и персональный счет клиента, для возможности гибкого управления сервисами, не превращая одинокого клиента в корпорацию) - так и наступит горькое прозрение... Впрочем, это освсем не значит что сразу же надо бросаться с шашкой наголо на написание биллинга. Гораздо полезнее будет наесться кактусов на каком-то готовом решении. В противном случае - результат скорее всего будет грустным и печальным, с той же горой костылей и врожденными уродствами дизайна, несовместимыми с полноценной жизнью за пределами строго очерченных в момент разработки реалий.
  8. NiTr0

    Гуртожиток. Боротьба з роутерами

    Присмотрелся конкурент к общаге. Увидел всю идиотичность запретов (которые аццки драконят пользователей), отлистал комменданту скажем 1к-2к грн с уговором листать столько же сколько и действующий пров ежемесячно, сделал акцию "подключись и получи в подарок роутер" - и за месяц ВСЯ общага стала его. Тихо, мирно и без шума. А по части пионернетов - если сильно страшно, делайте лимитированные тарифы. Посмотрите потребление среднего юзера, умножьте на 1.5, и поставьте лимит. Либо - пакеты 100 мбит с лимитом по трафику, от 10 гигов до 1 ТБ, с разными расценками. И будет счастье всем - и студентам, и прову.
  9. NiTr0

    Помогите выбрать биллинг

    В таком случае - либо тянуть свой форк, либо таки плюнуть и написать свой биллинг. На том же джанго это будет довольно быстро, и по потреблению ресурсов достаточно гуманно (во всяком случае, какой-то i5 думаю вполне вытянет порядка сотни-другой запросов в секунду на радиус/морду без особого напряга). А натягивать морду/реализовывать аякс либо RPC через джанго - одно удовольствие, никаких страшных велосипедов, все искаропки. Да и, если честно, синтаксис питона поприятнее, чем перла (сложнее ошибку сделать, да и легче дебажить ошибки)...
  10. Транзакции лежат бинлогом, одним куском на диске. И вычитываются быстро... Да, еще есть кеш. Где собссно и лежит бОльшая часть данных... А если база дергает при селектах винт - на сервере однозначно надо добавлять памяти...
  11. Почему же. С мастера на слэйв перешлются только бинлоги. Слэйв же их потом накатывает на свою базу.
  12. NiTr0

    Помогите выбрать биллинг

    Идеальных биллингов нет. Каждый имеет минусы. Мы юзаем абиллс. Вроде как работает. Основные фичи - без особых проблем. По доп. фичам - баги вылазят, стоит подготовиться к тестированию и накатыванию апдейтов. По части допиливания функционала - абиллс относительно печально пилить, ибо многие вещи делались костылями/хаками. Подвижки к лучшему есть, но только местами. Но топикстартеру это, судя по всему, не грозит.
  13. NiTr0

    Какой билинг такое умеет ?

    Да какбы написать не проблема. Не так уж и сложно должно быть. Если не осилите сами - могу помочь (ЛС).
  14. NiTr0

    Какой билинг такое умеет ?

    Если бы мой пров ввел такую "услугу" и сделал ее неотключаемой - я бы его нахрен сменил бы...
  15. В общем - да, но гораздо спокойнее если железки 3. Причем третья - какая угодно, чисто для кворума. Вообще-то есть полусинхронная. semi-synchronous. В рамках кластера из 2 мускул нод - разницы по сравнению с синхронной не будет. В рамках кластера из N нод - да, придется по отвалу мастера делать выборы слэйва. Зато быстро, мастер не тупит в сторонке пока самый неторопливый слэйв подтянет транзакцию... С какой радости? Посмотрите перкону, вроде как все автоматически делает. И старый мастер, вернувшийся в строй, синхронизирует со слэйвом, и т.д... Единственные грабли, которые могут всплыть - это если мастер работал, потом умер, потом слэйв встал мастером, работал, потом умер, потом подняли обе ноды - и старый мастер стал новым мастером, и все данные с момента его останова похерились... Но это - редкий форс-мажор. Софтовый рэйд к кластеризации никакого отношения не имеет. Да и бекапы - тоже конечно полезно, но не заменят кластер. Как и кластер не заменит бэкапы.
  16. Вот та вот китайская коробочка и есть самый что ни на есть NAS. То вы с SAN попутали. Да затем, чтобы на втором тазике была актуальная комия БД, а не недельной давности. И точная, а не приблизительная. Угу, а сдохнет хранилище (или вы считаете, что там БП качественнее, чем в сервере?) - ляжет все... Не занимайтесь техноонанизмом, включите мозг и почитайте о отказоустойчивых кластерах и репликации. У мускула с этим все вообще прекрасно (percona replication manager для heartbeat к примеру годная вещь), у постгри - похуже, но в принципе жить можно.
  17. NiTr0

    Собираем Билинг-сервер

    Насколько хорошо? Уже достаточно хорошо для того, чтобы привести хотя бы хендбук в актуальное состояние (там до сих пор natd указан в качестве рекомендованного ната - хотя его еще лет 10 назад надо было бы убить, закопать и забыть то место где закопан), или все еще недостаточно? Или, может, наконец-то запилят какую-никакую виртуализацию (только не надо говорить, что джейлов хватит всем и для всего)? А вообще - поднимать биллинг стоит прежде всего на той системе, которую знает админ. Во вторую очередь - ориентироваться на наличие специалистов по оси в пределах досягаемости (тут у бсд все печально - по большей части присутствуют эникеи с завышенным ЧСВ ввиду нераспространенности бзди). В третью очередь - на мануалы и т.п., ибо поднятие биллинга на бзде отличается от поднятия на линуксе разве что названиями устанавливаемых по зависимостям пакетов, да путями конфигов. И дистрибутивы лучше выбирать более серверные (как по мне - дебиан или центос), не убунту. Благое дело, у привыкшего к убунте не будет проблем с дебианом.
  18. NiTr0

    Traffpro

    Угу, как-то. Как - сравните на одном и том же железе пропускную способность. Разница раз в 20-50 будет на нате скорее всего. А кому оно нужно, кроме мелких домосетей и офисов? Кто в здравом уме Ну так напишите юзер-фриендли биллинг, или упакуйте какой-то опенсорс, делов-то. Задолбаетесь только потом объяснять дипломированным сантехникам, переквалифицировавшимся в сисадмины, объяснять, какую галочку где поставить. У меня, при месячном опыте эксплуатации линукса на домашнем тазике, почему-то хватило знаний прочитать документацию и развернуть абиллс в течение нескольких дней. Если эникей не умеет читать документацию - это его и только его личное горе. Надо будет биллинг - эникей должен либо поставить опенсорс, либо оплатить услуги установки решения. Покупать закрытую, нерасширяемую и немасштабируемую коробку будет разве что камикадзе, не совсем дружащий с мозгом. Ибо шаг влево/шаг вправо от функционала, заложенного автором - или невозможен, или стоит очень дорого. А когда трафик сквозь сию коробку упрется в полку - тут и наступит горе...
  19. NiTr0

    Traffpro

    И получить немасштабируемую, нерезервируемую какашку, пригодную только для эксплуатации в офисе или пионернете на 500 хомяков от силы... Никогда не задумывались, сколько лучей поноса пошлет каждый хомяк горе-админу, поставившему такой комбайн, в случае его падения? А что случится с биллинговой частью, крутящейся в юзерленде, если 100% времени займет ядро с обработкой пакетов (ну, там, новый юторрент вышел с поломанным в очередной раз ютп, или десяток машин в сети заразились червячками и начали масштабный ддос мелкими пакетами через ваш биллинг-роутер-кофеварку)?
  20. Пиленный на коленке мульти-мастер кластер СУБД? А как у него с транзакциями-то? Синхронной-то репликации у вас нет, а асинхронная мастер-мастер - грусть и печаль по части рассинхронизации данных нод. О периодических заданиях - помолчу (на каком из биллингов выполнять их, и как резервировать?). NAS - network attached storage имелось ввиду. Да и странный выбор - дешевая сохо железка... Понимаю, какую-то дисковую полку-SAN скзевую по дешевке взять рекомендвали бы, а так... Репликацию СУБД настроить религия не позволяет?
  21. NiTr0

    Traffpro

    Нет никакой заточенности. Поднимается и работает на чем угодно. Уверен, и под виндой можно при должном желании и упоротости упорности заставить работать - перл и фрирадиус есть. Нет и не надо. Задача биллинга - учет и авторизация. Остальное - задача браса/файрвола/шейпера/прочего. Вы же не требуете от стиральной машины функций кофеварки? В мелких сетях таки правит бал PPPoE/PPTP. Банально потому, что не требует управляемого железа и не требует системы управления тем самым железом. А если руки ровные - то и accel-ppp/реализации isg прикручиваются элементарно, небольшой правкой кода. Причем - полноценный IPoE, с возможностью выдачи белых динамических адресов. А привязка юзер-мак-ип - это уже в общем-то и нафиг никому не нужно. У абиллса проблемы в другом, но среднестатистического юзера они скорее всего не коснутся. Проблемы - под капотом, и касаются в основном тех, кто решает что-то под себя пилить.
  22. Падает сохо нас, скукоживается вся сеть + битая БД бонусом (кеш записи)...
  23. Думается, зион нетбёрстовый, да еще если одноюнитовый, весьма порадует топикстартера интенсивным и звучным охлаждением Для домашнего использования
  24. Да сколько угодно. Температурный режим стабилизируется в течение максимум получаса. Врезал кулер в морду. Там его вообще нет.
  25. А чего ему гореть если он в нормальном режиме свой ток выдает часов 12? Заряднику пофиг, сколько емкости вливать... Другое дело - при разряде угреться могут ключи, но принудительное охлаждение вполне справляется. Сами так BNT600/BNT800 переделывали.
×
×
  • Створити нове...