Как добиться самой дешевой, но очень надежной конфигурации веб-приложения?
Предположим, что минимум 2 сервера приложений по цене 80 долларов в месяц плюс сервер БД будут поддерживать приложения большинства людей какое-то время - и мы просто хотим добиться хорошей надежности (минимум 3 девятки).
Можно арендовать довольно хорошее решение VPS примерно за 80 долларов в месяц прямо сейчас у любого разумного провайдера (Amazon EC2, Slicehost, и т.д.). Однако ни одно из этих решений для хостинга VPS не является идеальным, и я испытал более 99,9% простоев с каждым из них.
Я не уверен, как лучше всего настроить эти 3 машины - лучше всего разместить два сервера приложений у разных провайдеров (лучше всего с разными сетевыми подключениями) и использовать HAProxy, чтобы следить друг за другом. В случае неудачи он обновит DNS, чтобы удалить его из пула IP-адресов вашего приложения. Но что делать с сервером БД? Это все еще единственная точка отказа.
В прошлом у меня были проблемы с DNS, но с этим может справиться внешний выделенный провайдер, например DNS стало проще за очень дешевую (15 долларов в год). Это также поддерживает динамическое изменение записей DNS, если это необходимо, что удобно, если вы не планируете обновлять их вручную во время кризиса.
Резервное копирование следует делать на внешний источник (S3 или FTP-сайт) не реже одного раза в день - опять же минимум каждый месяц. Вам нужен сценарий автоматического развертывания и восстановления, чтобы, как мне кажется, получить более трех девяток из вашей резервной копии.
Я не совсем чувствую, что это действительно так из-за доступности БД, но это будет стоить вам около 80x3 долларов + дисковое пространство + DNS = 250 долларов в месяц.
Можно ли лучше?
Дешево, минимально и надежно? Вы только что попали в злой треугольник «Хорошо / Быстро / Дешево» - выберите 2, у вас не может быть всех трех :)
На самом деле у вас все хорошо, если вы можете создать географически избыточное приложение с аварийным переключением за 250 долларов в месяц.
Единственная альтернатива, которую я могу придумать, - это решения VPS, которые у вас уже есть, или, возможно, Microsoft Azure подойдет вам.
Я согласен, что у вас все хорошо там, где вы находитесь.
Убедитесь, что у вас есть надежные процессы восстановления, чтобы любые возникающие сбои можно было быстро устранить.
Доступность «Три девятки» равна примерно 8 часам простоя в год. Если вы не считаете окна обслуживания, это не особенно требовательный стандарт для основной хостинговой компании. Я скептически отношусь к тому, что вы видели хуже на двух хорошо известных хостингах.
Помните, что касается хоста: как только он предоставит вам рабочий сервер, вы будете в резерве. Если у вас произошел сбой, и через 90 минут вам предоставили другой сервер, ваше время простоя составит 90 минут. Если на то, чтобы заставить его работать, у вас уходит три дня, эти дополнительные три дня не являются их проблемой.
Очевидно, что сервер базы данных является единственной точкой отказа ... вы должны определить свою устойчивость к этому риску и стоимость его снижения. Я мало что знаю о том, как сделать резервный сервер БД, кроме того, что это очень трудно для небольших систем. Если вас это беспокоит, лучше всего заключить договор на размещение самой базы данных, а не использовать VPS и управлять собственным сервером базы данных. Один пример (из Google, не рекомендация) может быть найден Вот; это не особо дорого.
http://www.linode.com/index.cfm был очень надежным для нескольких моих друзей. У них есть несколько мест, и вы можете довольно легко масштабироваться.
Я думаю, здесь вы столкнулись с 2-3 проблемами:
Определение времени безотказной работы
Три девятки с учетом объявленных окон обслуживания или без учета? Насколько заранее вы объявите окна обслуживания?
Время работы оборудования
Это будет масштабироваться только с избыточностью. Никогда не знаешь, когда он выйдет из строя, а три девятки означают всего около 9 часов простоя в год. Таким образом, даже 4-часовой контракт предоставит вам только одно время простоя (2, если оно действительно будет исправлено в течение 4 часов, но это не совсем дешево). Имхо ты необходимо иметь 2 сервера для этого
Программное обеспечение / время безотказной работы
Собираетесь ли вы определять время безотказной работы с помощью ping-доступности, ответов HTTP, как? - Вы можете легко решить эту проблему, заранее определив, что вы считаете «вверху» (или, если это проще, то, что вы считаете «внизу» - но это будет перечисление недостатков)
Что касается дешевизны, я не знаю, подразумеваете ли вы под дешевизной первоначальные затраты или текущие расходы. Вы можете найти дешевый сервер почти везде, но вам, вероятно, понадобится больше, чтобы исключить поломку оборудования, или получить приличное оборудование от HP, Dell, IBM с более высокой начальной стоимостью, но с гораздо меньшей вероятностью поломки оборудования и, таким образом, более низкая стоимость эксплуатации. Просто посчитайте, какой из них будет дешевле в течение срока службы.
Если вам просто нужны URL-адреса:
server4you мне очень понравился EC2 с геоизбыточными местоположениями (ЕС и США) также может быть очень интересным
РЕДАКТИРОВАТЬ: Чтобы быть ясным, когда я говорю 2 машины, я имею в виду избыточные машины для каждого варианта использования (резервная БД, резервный Интернет, резервный DNS, резервный $whatever
В зависимости от вашего точного трафика, а также потребностей и требований, я без особых проблем разместил множество небольших веб-приложений на 1 и 1.
Помимо этого ... практически любой популярный хостинг-провайдер имеет приличное (читай: опубликованное) время безотказной работы.
Время безотказной работы 99,9% означает, что вы соглашаетесь на простой в размере 8 часов 45 минут 35 секунд в течение одного года.
Большинство достойных хостинговых компаний добиваются этого довольно легко.
Я бы рекомендовал скидка ASP.net. Мне нравится, что вы можете получить бесплатный сервер песочницы, и я не могу вспомнить ни одного простоя, который я видел.