Понимаете, пока я еще не получил от поставщиков решений ни одного предложения по архитектуре и ценам, так что пока непонятно, дорого это для заказчика или нет.
Есть конкретное предложение от ISP System (ISPManager Cluster), которое не проходит по причинам, упомянутым в начале топика.
У меня есть опыт в администрировании FreeBSD, думаю и с Линуксом справлюсь, а софт весь написан нашей компанией. Но нужно отработанное решение, не пробовать же все подряд. На первых порах, видимо, и буду сам заниматься, но поддержка все равно будет нужна.
Ну как бы все пытаются меня убедить, что мне не нужен ни кластер, ни масштабируемость)
Между тем задача стоит именно в создании системы, в которой выход из строя отдельных серверов не приводит к остановке работы, и которую можно мастшабировать путем добавления серверов.
Решать, нужен кластер или нет, будет заказчик исходя из бюджета, который потребуется на создание и сопровождение кластера. Бюджет зависит от архитектуры, с которой пока у меня нет полной ясности.
И в любом случае нужна масштабируемость, т.к. проект растет. Рано или поздно возможности одного сервера будут исчерпаны, так что уже сейчас нужно думать про масштабируемость. Я не знаю ни одного более или менее серьезного проекта, который бы работал на одном физическом сервере - проблема с ресурсами. На нескольких сотнях серверов - да, такие системы есть.
К сожалению, пока мы не можем позволить себе круглосуточный штат админов - это довольно дорого. И штат должен состоять минимум из 4 весьма квалифицированных человек, чтобы они действительно обеспечивали круглосуточную работу. И еще мы должны им полностью доверять.
Что до обновления програмной части, то работы выполняются ежедневно, и это не приводит к полному останову системы на одном сервере. Видимо, и кластер не будет останавливаться из-за правки скриптов.
Усложнять архитектуру и самому не хочется, однако, видимо, это неизбежно. Кроме того, нужно еще подумать о масштабируемости системы, а на одном сервере это обеспечить нереально.
Смотря для чего достаточно...
Мне нужно сделать такую систему, которая была бы устойчива к отказу одного из серверов и продолжала при этом работать без вмешательства администратора. Администратор может быть в отпуске или далеко от интернета, но магазин должен продолжать работать. Очевидно, подобное невозможно сделать на одном сервере с ручным переключением на запасной.
Я бы не заморачивался, если бы база была не транзакционной, и сделал бы все штатными средствами MongoDB. Однако приходится использовать MySQL, а там кластер как-то не радует(
Александр Фролов добавил 07.09.2011 в 09:49
Да, это может быть интересно, но мне надо сначала определиться с архитектурой системы в целом. А эти NS сколько стоят?
Заказчик не должен озвучивать бюджет, и я не могу от него этого требовать. Обычно исполнитель предлагает решение и сообщает его стоимость, а заказчик выбирает исполнителя, подходящего по бюджету.
Сейчас меня интересуют решения с кластером по минимальным ценам.
Александр Фролов добавил 06.09.2011 в 19:15
Что касается "движка", то это очень сложная разработка, наша собственная (склад, логистика, документооборот, статистика, учет продаж и т.п.). Там есть nginx, apache, mysql, memcached, mondodb, sphinx, т.е. много всего. Проект высоконагруженный, используется кеширование и разные технологии ускорения.
Требуется кластеризация MySQL, и с этом у меня самые большие сомнения - где найти специалистов с опытом.
Срочности особой нет, т.к. все работает как раз в простом варианте (ну если его можно назвать простым) на одном сервере, и запасной сервер готовится. А вот подумать прежде чем предлагать заказчику заплатить круглую сумму и выбрать оптимальное, проверенное решение, было бы не плохо. Поэтому я и ищу наиболее подходящее решение, а также исполнителей с опытом реализации подобных проектов.
Мне на первом этапе нужны не столько цифры, сколько научиться создавать и администрировать кластер Линукса. Поэтому и подумал про неттопы, а то обычные мыльницы очень сильно жужжат. Но с неттопами боюсь нарваться на несовместимость по драйверам.
А по поводу денег - их бывает мало или очень мало)
Заказчик может позволить себе купить несколько серверов, и, возможно, даже дисковую систему с оптическим интерфейсом, но речь не идет о крупных инвестициях. Это просто интернет-магазин, там нет бешеных денег.
Вообще обычно когда спрашиваешь про отказоустойчивость, многие говорят, что надо. А когда называешь цены, обычно говорят что ну ладно, подумаешь, пусть денек сервер и постоит) Поэтому нужно недорогое, но надежное решение, как бы смешно это не звучало.
Ждать придется уж точно больше 10 минут, и еще не у всех пользователей DNS обновится одновременно. И гигабайты бекапа восстанавливаются далеко не мгновенно.
Магазин, про который я говорю, это очень сложный комплекс программ с интегрированной системой ERP (именно ERP - системой планирования ресурсов предприятия), а не только CRM и CMS, системой складского учета, документооборотом, поддержкой логистики, статистики и так далее и так до бесконечности.
Очень большой и сложный проект, сложность витрины составляет менее десятой доли процента общей сложности. Поэтому мне так нравится решение от IBM, когда при создании отказоустойчивого решения в архитектуру проекта и его реализацию не нужно вносить никаких изменений. Но вот стоимость...
Для заказчика простои сервера даже в течение 10 минут крайне нежелательны.
При выходе из строя основного сервера время может уйти, например, на то чтобы мне доехать до места, где есть компьютер и интернет, разобраться в чем дело, восстановить бекап большой базы и огромного количества файлов из резервной копии, а также изменить запись А в DNS и дождаться обновления DNS.
А хотелось бы, чтобы при выходе из строя одного из серверов кластера система продолжала работать, как ни в чем ни бывало. А я чтобы получил сообщение на электронную почту и спокойно разбирался, в чем дело и почему. Потом чтобы восстановил сервер и опять сделал его составляющим элементом кластера.
Архитектуа системы довольно сложная, там не только MySQL, но еще и MongoDB, используются транзакции и много чего еще. Поэтому делать резервные копии части базы не представляется возможным, а репликацию, конечно, можно сделать. Но хотелось бы еще сопровождение от тех, кто уже имеет опыт в репликации MySQL.
Да я верю, что надежный сервер повысит надежность, но что будет, если мне, например, нужно забрать его на профилактику? Что если даже 10-минутный простой приведет к возникновению ущерба?
Кроме того, я верю, что даже самое надежное железо выходит из строя или может быть случайно испорчено, например, отключено от электропитания по ошибке, в результате чего будет повреждена файловая система и при перезагрузке он не поднимется. Всякое бывает..
Кстати, MongoDb плохо реагирует на аварийное завершение.
Я верю, что надежный кластер стоит хороших денег, но мне нужно подобрать подходящую архитектуру и оценить решение.
А пока я ставлю второй резервный сервер, но время простоя при ручном восстановлении данных из бекапов может составить часы.
Вообще я думал купить парочку неттопов, воткнуть их в свич и установить на все это Scientific Linux в кластере, апач и MySQL. Другие сервисы я могу отлаживать на виртуальных машинах, работающих на WmWare, сервер уже есть. А вот балансировку нагрузки на виртуалках даже и не знаю, стоит ли смотреть.