Может ли кластер Windows когда-либо быть конкурентоспособным по стоимости или я должен просто установить Mono и Linux?
Может ли кластер Windows когда-либо быть конкурентоспособным по стоимости или я должен просто установить Mono и Linux?
Мое приложение смущает параллель, практически не требует координации между процессорами и обмена сообщениями между процессорами, может быть равномерно распределено между машинами, поэтому все они должны заканчиваться примерно в одно и то же время, и время для разделения проблемы и объединения результатов мало по сравнению с время вычислений, поэтому я не возражаю, если для распределения работы используется нечто вроде WCF (двоичный SOAP), а не какая-то кластерная операционная система, которая, как я полагаю, будет более эффективной, чем WCF (двоичный SOAP).
Это вопрос перемещения существующей реализации Windows/C#, которая слишком медленная на одном компьютере, в кластер.
Мнения пожалуйста...
2 ответа
Если вы смотрите на стоимость приобретения и настройки, то ответ всегда будет отрицательным.
Windows-серверы стоят дороже, чем Linux-серверы, и по мере того, как вы используете более продвинутые серверы, повышается и плата, которую вы платите за Windows, сверх стоимости оборудования, - такие инструменты, как SQL Server, становятся очень дорогими, когда Вы начинаете расширяться. Кроме того, культура Windows - это больше платный рынок, поэтому дополнительные инструменты, которые могут вам понадобиться для выполнения какой-либо дополнительной задачи, скорее всего, потребуют от вас тратить кучу денег, если они написаны для Windows, чем для Linux, независимо от качества программы.
И когда вы платите больше за каждый сервер, каждый инструмент и каждую лицензию, нет точки безубыточности, после которой стоимость внезапно становится меньше.
Тем не менее, запуск C# in mono на кластере серверов Linux, вероятно, потребует некоторого реального опыта, когда дело доходит до настройки производительности и всего этого, и эксперты по Linux, как правило, немного более редки и дороги, чем их аналоги из Windows. Это удваивается для администраторов, которые имеют опыт работы с чем-то вроде моно, что не совсем любимый игрок в сообществе Linux.
С другой стороны, запуск C# в Windows - вот что такое архитектура сервера Windows. Есть целые курсы, сертификаты и сообщества, посвященные этой единой концепции. Найти обученного, опытного и сертифицированного администратора на удивление легко и недорого по сравнению.
Тем не менее, я предпочитаю кодировать в C# с использованием ASP.NET MVC2, но я запускаю свой код C# в моно под Linux. Я управляю серверами как Windows, так и Linux; и серверы Windows значительно более ненадежны и требуют много времени для обслуживания. Это не FUD, это просто мой личный опыт.
Это похоже на проблему, которая хорошо работает в Azure.
Используйте 1 веб-роль, где вы вводите работу. Эта веб-роль затем разделяет задание и помещает детали в очередь.
В бэкэнде у вас есть рабочие роли, которые берут работу из очереди и выполняют ее.
Вам не нужно вкладывать деньги в оборудование. Вы платите только за то, что используете. Например, вы можете запустить 100 машин за час.