Pull to refresh

Comments 63

Можно узнать, чем не устраивает Яндекс.Почта для домена?
О! Кажется и правда убрали.
Там только надпись «На технологиях Яндекса», свой логотип сверху можно добавить.
Проиндексирует Яндекс служебный ящик — потом поиск и контекстная реклама надолго станут коррелироваться с контентом писем.

Мне такой подход к контенту почты (в принципе ее индексирование — она же вроде как в секрете держится?) не симпатичен.

Плюс (раньше было, теперь поправили ли?) Яндекс часть ящиков в доменах заводил на себя, так что не то что логи посмотреть, но и почту postmaster-а получать было никак… ну и плюс у них иногда, но outage серверов случался (сейчас — не знаю), и толпы юзеров конторы ждали ремонта (помним, что сервис бесплатный — т.е. без гарантий), как маны небесной.
Кстати, а что еще кроме яндекса можно считать достойной альтернативой?
Пробую сейчас для одного из доменов почту outlook.com (http://domains.live.com). 1 месяц — полет нормальный.
Реклама есть, но не больше, чем в гугловой почте. Пользовательский интерфейс очень радует.
У почты live есть свои минусы.
Из того, что помню:
— Ограничение по кол-ву соединений с 1 ip за промежуток времени.
— Необходимость заходить периодически в веб-интерфейс(live.com блокировал ящики и запрещал исходящие письма без этого).
Что будете использовать в качестве антиспама?
spamassassin с его правилами и историей обучения тоже будете дублировать?
Кстати, посмотрите еще в сторону postscreen.
к сожелеинюб когда то давно использовал dbmail, но пришлось потом мигрировать. Сейчас проще, можно настроить например percona muti-master и «радоваться» но думаю до определенных моментов.

Сейчас в голову приходит мысль делать так:

postfix+dovecot в формате dbox + все на glusterfs с nfs.
Возможно можно еще как то кластеризовать, надо погружатся в документацию и общаться с разработчиками.
Glusterfs? Приходилось сталкиватья с автохилом гластера на данных >100гб?
100% iowait, как-то так
Все требует допила и общение с разрабами. Мы пока hadoop для себя стабилизировали, через такие тернии пробирались.
Я не считаю glusterfs,ceph,moosefs, elliptics готовыми из коробки.

Сам лично не поднимал gluster для 100gb, но знаю по крайне мере две фирмы где используется около 1tb пока в тестах, подробностей к сожалению не знаю :/
Да, да — года два назад я постил багрепорты индусским разрабам гластера. В итоге они написали «unsupported configuration» и закрыли тему. С ceph не лучше — «да, не работает, может когда исправим». По elliptics вообще сложные вопросы лучше не задавать. Moosefs с мастерсервером выглядит уныло
Ну скажем так, после приобретения RH gluster и вливание денег в ceph от canonical дела обстоят лучше.
Мне одному кажется что RDBMS излишня для почты? Почтовое сообщение идеально попадает под термин Документ. Можно поподробнее про «какую-либо выделенную кластерную базу данных» для dbmail?
как видите не вам одному :)

>какую-либо выделенную кластерную базу данных
percona — она же mysql
postgres — правда я там не знаю, насколько хорошо делается multimaster. Такой profit у меня только впереди будет :)
multimaster имеет ограничение на количество серверов — против CAP-теоремы не попрешь. А тут еще реляционка… как шардить-то будем?
Шардить можно по доменам буквально из коробки, что мы уже делаем.

Думаю, что можно придумать, как разделить и пользователей.
Думаю, когда вы упретесь в CAP, то вы уже будете в состоянии позволить программистов и написание своих костылей.
С шардингом — то же не вижу диких проблем, все решаемо.
Критикуя.
Получившаяся масштабируемая отказоустойчивая и расширяемая почтовая система имеет серьезные ограничения как по отказоустойчивости, так и по масштабируемости. Начали с профилей трафика (вижу хорошего сисадмина), а надо было со скромного элемента справа на схеме. Попробуйте прикинуть объем хранилища в заявленные 100 терабайт. Вы увидите как этот скромный элемент справа начнет корчиться в муках и, наконец, превратится в прекрасное распределенное хранилище документов аля BigData. Но нам же искать в нем еще быстро надо, верно? Мы же gmail хотим. Бекджек, там, и прочее… Тогда нам понадобится еще одно распределенное хранилище — под индекс!
Предлагай.
Из бесплатного нарисовыватся Hadoop с ElasticSearch поверху. Или Hsearch от наших индийских коллег, там еще и RESTful есть.
Глобальных решений из коробки просто нет. Все пилить и курить надо. Попилил-покурил, опять попилил-покурил…
>Попилил-покурил, опять попилил-покурил…

Костыли, вы забыли костыли :)
Шардинг.
100 терабайт — это в сумме, 100 серверов, каждый держит БД в терабайт.

Насчет быстро искать по содержимому ящиков — это в далеких планах.
Терабайтная база на mysql (myisam?). Оптимистично. 1 домен на сервер максимум. Поиска нет и не будет. Фри-бизи там, сторонние протоколы типа активсинка, наверное и спрашивать не стоит. В заголовке одно слово лишнее. Или два. Черкните, пожалуйста, через годик про Вашу архитектуру. Будет всем интересно. Спасибо.
Очень ждём следующую статью. Я настраивал подобное в гораздо меньших масштабах (просто дублирование и взаимная репликация на три отдельных узла) для корпоративной сети, правда, с dovecot. И всегда интересны именно костыли, ибо теория проста, лаконична и красива, а вот практика… Хотя моя система работает три года вообще без единого вмешательства — сейчас вот только созрел обновить и доделать всяких плюшек а-ля автоответчик и более мощная спамзащита.

Кроме этого — могли бы и немного конфигов повыкладывать с комментами, у вас вполне могут быть интересные и познавательные моменты.
Уже пишем следующую часть :-)
Что SQL будет делать когда ящик одного пользователя перестанет вмещаться в память а он будет интенсивно его читать/писать?
Это надо?
Spamassasin НЕРЕАЛЬНО тормознутая штука даже со скомпилёнными правилами, железа на сколь-нибудь серьезный трафик не напасётесь
А какое антиспам-решение Вы можете порекомендовать?
Сам ищу.
Могу поругать KAS. Старый кривой софт, на порядок меньше находит чем spamassassin. Но быстрее на тот же порядок.
попробуйте dspam.
Dspam надо учить. Учить каждому пользователю персонально — что одному спам, то другому личная переписка. Персональные данные надо хранить — проблемы с масштабированием.
Так это наоборот хорошо.

с масштабированием? а какие там проблемы?

DSPAM — It is intended to be a SCALABLE, content-based spam filter for large multi-user systems :)
Как я понимаю приходилось в своих проектах использовать? Если да, то как впечатления?
Хорошие. Правда мы используем не общие обучение, а для каждого пользоватля отдельно.
Мне лично он нравится больше чем spamassassin.
Являясь разработчиком аналогичного почтового сервиса который скоро планирую опубликовать, приведенная схема выше имеет много не достатков.
Буду благодарен за более детальный ответ.
Для начала не понятно как будет происходить фильтрация СПАМа? Такой же вопрос я себе ставил при создании своей системы. Единственная фича dbmail использование базы данных плюс это теоретически еще и не достаток. Любой сбой в базе приведет к разного рода проблем, а это дополнительная точка отказа. Во вторых postfix может и лег в настройке но увы создать такие acl как позволяет exim ему не удасться. Сам же веб-интерфейс roundcube поначалу мне нравился но решил отказаться в пользу взлома платного продукта который был найден на просторах интернет. В моем проекте используется exim в который пришлось дописать парочку собственных патчей и dovecot. Фильтрацию СПАМА производит некий спрей-фильтр созданный мною на основе многолетнего опыта работы с почтой. Так же присутствует spamassasin но он срабатывает в крайне редких случаях, в скором времени от него совсем можно отказаться.
Можно узнать, какой веб-интерфейс Вы выбрали? Если нельзя указывать в публичном доступе, буду благодарен за ссылку в личку.
Если захотите хорошее коробочное решение с весьма похожей архитектурой (nginx, postfix, openldap, mysql, memcached, amavisd, spamassassin, opendkim) и, качестве основных плюшек, продвинутый веб клиент, календарь с задачами, листы рассылок, некоторая работа с доками — наша Zimbra вполне подошла бы. Есть Foss редакция, есть лицензия с поддержкой. Веб админка и cli прилагаются. Мультидоменность опять же из коробки.
А там тоже есть free open source edition? С Расширяемостью и настраивоимостью nginix + posfix?
А что в google apps или yandex — это уже появилось?
Или в yahoo?
Эм… вы же, кажется, в противовес Zimbra тут вспомнили об Exchange, нет? Да и я писал ориентируясь на изначальную постановку вопроса — «Раньше мы настраивали им Google Apps, но после 6 декабря, изучив предлагаемые на рынке решения, решили, что настала пора строить собственную почтовую систему»
zimbra Open Source Edition — неинтересно.

Проще настроить postfix+dovecot+другие плюшки+roundcube.

Сравнение www.zimbra.com/products/compare_products.html

Мое мнение и опыт показывает, что брать такие OpenSource решение сводится к тому, что все будет написанно с 0.
Проще сразу свое писать с блэкджеком и шлюхами преферансом и поэтессами.
Ну, с вашим опытом спорить не буду, но со своей стороны уверяю, что с обозначенными в титульной статье требованиями zimbra более чем справится. Лицензионная версия вкючает лишь несколько доп модулей, которые вроде здесь никто не просил. Или поддержка BES таки нужна? :-D
По сути Zimbra — преднастроенная связка опенсурсных пакетов, плюс самописный веб, imap и pop клиенты. Никаких обрезанных функций в нем. В общем советую просто скачать и взглянуть на досуге. Там один общий инсталятор, сразу получите полностью настроенную и рабочую систему поиграться
Ну я zimbra смотрел очень давно. Не говорю что плохой продукт, но то что они предлогают в OpenSource решении (смотрим схемку) не так сложно сделать и руками. По крайне мере в голове будет понятие как оно работает и если что-то поломается, примерно какую цапу крутить. В общем я думаю вы понимаете о чем я.
Достаточно просто морду zimbra сравнить c roundcube.Но если своё хочется то конечно)
у RC не самая плохая морда :)
Я бы предложил чуть другую DNS балансировку. в текущей схеме если узел ляжет, то он не выключиться из работы. На него будут ломиться и получать отлуп. Сие не хорошо.

Сделайте отказоустойчивую балансировку, когда имя резолвиться не в список А записей, а в несколько NS, а уже на принимающих фронтах DNS отдают сами себя. В такой схеме при выключении узла он просто становиться не видим для клиентов в автоматическом режиме.

Да, TTL придется поставить в 60, но это ниочем…

Схема проверена под большим хайлоадом. Мы спокойно принимаем около 40 лимонов запросов в сутки всего на 4 балансировщика (nginx+nodejs+redis) c TTL 60 и если надо погасить любой, то просто его выключаем.
Следующим шагом обычно следует малтикаст, на сетевом уровне. Полный контроль над трафиком, в отличие о ДНС.
Помню наше счастье когда мы случайно наткнулись на uftp :)
Сейчас от этого немного спасает несколько MX записей для домена,
ваш вариант, конечно же лучше.
Sign up to leave a comment.