Александр Фролов

Александр Фролов
Рейтинг
155
Регистрация
27.12.2007
Должность
Владелец ИТ-компании Shop2YOU
Интересы
Основатель сервиса Shop2YOU — cоздание интернет-магазинов
V(o)ViK:
Александр Фролов, разработка отказоустойчивой системы под Ваши задачи - от $5k / разово.
Круглосуточная техническая поддержка с гарантиями по SLA от $1K/месяц.
Время на реализацию и отладку порядка 1 месяца.
Более точные цифры и сроки можно будет предоставить после анализа архитектуры вашего приложения.

Архитектура более или менее стандартная для высоконагруженных приложений.

На входе стоит nginx, который раздает статику и картинки.

Далее идет Apache. Транзакционные данные хранятся в MySQL, нетранзакционные в MongoDB. Для кеширования используется memcached, для поиска с учетом морфологии - Sphinx.

Все это сейчас работает на одном сервере под FreeBSD. Там 48 Гбайт памяти и SAS диски на контроллере LSI с батарейкой.

Memcached отражает примерно 100К запросов в минуту, со временем возрастет в несколько раз.

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

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

Если нужно что-то еще по архитектуре, пожалуйста, напишите.

netwind:
я так понял, разобраться как работает ispmanager cluster ты и не пытался.
он не будет работать с iscsi и fiberchannel. для совместной работы нод-вебсерверов нужно хранилище обеспечивающее конкурентный доступ к одним и тем же файлам на запись, а это можно сделать только сетевой файловой системой , такой как nfs.
там же все написано с картинками http://ru.ispdoc.com/index.php/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0

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

netwind:
эта фигня решается - сделаете полусинхронную репликацию. Ну помедленнее немного будет работать.
И я опять напоминаю про ndb-кластер, который мало кто может себе позволить использовать, но все равно он есть и использовать его можно.


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


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

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

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

По поводу NFS - у нас идет огромное количество запросов к файлам витрины (html, картинки, файлы баз данных и т.п.), так что мне кажется, что хранилище, подключенное оптикой, будет работать быстрее и надежнее. Да, я знаю что это решение от 25000 баксов, но и серверы мы покупаем по цене около 10000 зеленых...

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

Экспериментировать, конечно, буду, т.к. тема мне очень интересна и, как я считаю, еще много кому.

Александр Фролов добавил 09.09.2011 в 10:27

Andreyka:
Я уже предлагал свой вариант кластеризации мискула при помощи двух серверов, в котором все это заложено. А от IBM пришел ответ с ценами и характеристиками?

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

От IBM ответа пока нет, мне сказали, что там могут больше месяца рассматривать заявку, но есть возможность получить хорошую скидку. В принципе, если сделать отказоустойчивый сервер MySQL на железках от IBM, с остальным проблем меньше, т.к. остается только масштабирование и кластеризация апача, memcached, mongodb и sphinx, а для этого есть понятные мне и недорогие решения.

Если не пройдет с IBM, буду делать на отдельных серверах.

netwind:
нуууу. ispmanager это реализует - покупай.
ndb-кластер еще надежнее, но работать он не обязательно будет хорошо.

В начале топика я писал, что isp manager cluster реализует схему мастер-слейв для MySQL. При этом задержки в репликации приведут к ошибкам в логике работы приложения. Кроме того, они предлагают NFS, а это не пройдет по производительности. А все изменения (например, добавления хранилища, поключенного через оптику, кластер мастер-мастер и т.п.) для них превращают кластер в нестандартный со всеми вытекающими последствиями. Ну и гарантированное время реакции поддержки у них не предусмотрено даже за деньги, что жаль...

Pilat:
... ни с требованиями.

Есть набор программных средств, работающих на одном физическом сервере.

На входе nginx, потом apache. Приложение, написанное на Перл и реализующее функции ERP, CRM, CMS, а также интернет-магазина, обращается к MySQL (транзакционные данные) и MongoDB (нетранзакционные данные). Поиск осуществляется как с помощью MySQL, так и через Sphinx (с учетом морфологии). Кеширование выполняется через memcached.

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

Я знаю как создавать кластеры MongoDB и memcached, но хотелось бы надежное решение и для MySQL.

Система высоконагруженная (примерно 100к запросов к базе в минуту).

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

Вот, собственно, примерно такие требования...

Unlock:
Какая-то мутная тема. 10 минут простоя - катастрофа, но бюджет на решение проблемы, небольшой. Причем до сих пор не озвученный. Если это такая крутая контора, где за 10 минут серьезные деньги могут быть потеряны, то почему небольшой бюджет? В моем представлении, когда проект теряет серьезные деньги за 10 минут простоя, то бюджет на обеспечения бесперебойной работы уже легко идет в десятки тысяч долларов.
Что это за инет магазин? Даже озон упав на 10 минут явно не получит какой-то нереальной потери.
Вообщем мутный ТС какой-то.

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

Например, за полмиллиона можно сделать то-то и то-то, будет работать так, за миллион - так, а за сто миллионов - этак.

Вот, например, с бюджетом ISP Cluster все ясно, и написано на сайте. Кластеры на Windows, которые предлагает один из сборщиков компьютеров, тоже у них просчитан и цены есть на сайте. А вот в моем случае нет ясности ни с архитектурой, ни с ценами.

Andreyka:
Это не значит, что можно взять десяток серверов и сделать из них один сервер с 20 процессорами и 160G оперативки и отдать это приложению.
А вот в случае с RedHat Cluster это сделать можно, хотя все зависит от приложения.

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

rustelekom:
действительно можно.
у вас не совсем верное представление о том что есть облако. главное его преимущество в возможности плавного и прозрачного масштабирования (до определенных пределов конечно. пределы зависят от того сколько реальных серверов используются в ноде. есть также и другие ограничения). "живая" миграция вполне себе реализуется и на почти любых технологиях виртуализации.
В РФ есть несколько провайдеров реального облачного хостинга но, делают ли они под заказ приватное облако - не знаю. Ну можно поинтересоваться по идее.

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

rustelekom:
а почему бы не попробовать приватное облако ? есть бесплатные типа того что предлагает Ubuntu, есть платные 3terra и OnApp. По идее они как раз и делают то что вам надо - распределяют одну среду на несколько машин. Там действительно нужно несколько машин + хранилище данных + линки между ними должны быть минимум одно гигабитные а лучше оптические но, в конечном счете если это все на своем оборудовании делать то не так уж дорого выходит.

Это я еще не рассматривал. Там действительно можно объединять ресурсы нескольких серверов, например, процессоры и оперативную память, для выделения их одному приложению?

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

У нас в России кто-нибудь занимается созданием и сопровождением подобных облаков? Есть положительный опыт их применения для высоконагруженных проектов?

iHead:
Александр Фролов,
В прошлой теме я вам скидывал ссылку про технологии кластеризации на Битриксе. Идите тем же путем, только со своим движком. Не вижу вобще никаких проблем, раз все так серьезно :)

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

Собственно, в первом приближении можно сделать как у них: балансировщик на входе, два сервера приложений с дисковым массивом, подключенным по оптике, два сервера MySQL в кластере мастер-мастер, кластер серверов MongoDB и так далее.

Александр Фролов добавил 07.09.2011 в 16:08

dandandan:
Может быть не совсем по теме, но что мешает купить Амазоновские серваки и все делать у них? Они вроде как гарантируют отказоустойчивость.

Хотелось бы развивать именно свой бизнес.

Всего: 343