У меня здесь беспорядок. В течение нескольких лет мы запускали собственное приложение на локальном сервере в нашем офисе. У серверов были хорошие плохие дни и хорошие времена - однако сервер буквально умер пару дней назад - во время планового обслуживания мы наняли фрилансера для установки принтера - идиот вместо этого уничтожил сервер [я все еще предположив, что он попытался немного испортить это, чтобы он мог взимать плату за исправление ошибки, совершенной самим собой, только на этот раз она вышла за пределы его собственных возможностей].
Наша система не работает, и мы серьезно с нетерпением ждем возможности разместить наше веб-приложение на онлайн-хосте. Я открыт для предложений здесь. Позвольте мне объяснить, какова природа системы, в которой мы работаем.
Наша система основана на Php MySQL - это критически важная система совместной работы, ориентированная на данные. Обычно у нас есть корпоративный адрес электронной почты, на который мы получаем запросы клиентов. Наше приложение используется для совместной работы с этими запросами. У нас есть задание cron, которое периодически запускается в фоновом режиме или фактически выполняется запланированная задача, которая фактически физически загружает электронные письма из учетной записи электронной почты и преобразует их в формат, который можно ввести в базу данных для запроса, а затем удаляет электронное письмо из фактической учетной записи, поэтому он находится в нашей базе данных, и, таким образом, наша система может взаимодействовать с ним, вместо того, чтобы устанавливать соединение IMAP каждый раз, когда нам нужно электронное письмо. Это задание cron запускается каждые 3 минуты, учитывая огромный объем получаемых нами запросов, поэтому наше приложение ориентировано на время. Время от времени запланированная задача зависает, поэтому иногда нам приходится вручную перезапускать запланированную задачу.
Запланированная задача также загружает вложения с почтового сервера и сохраняет их в виде плоских файлов в нашем веб-приложении. В среднем запросы электронной почты не имеют вложений, но обычно средний размер вложения колеблется от 200 КБ до 10 МБ, хотя вложения размером более 5 МБ - редкость. Большая часть загрузки происходит между почтовым сервером и веб-приложением.
Мне нужен надежный хост с практически нулевым временем простоя, потому что мы не будем запускать веб-сайт, мы будем запускать очень важное приложение - я имею в виду, что наш бизнес зависит от него, а мой босс буквально в нескольких дюймах от ломается и теряет рассудок в этот момент:.
Кто-то предложил облачные серверы rackspace - я смотрю на них, но в основном, поскольку я программист, мое знакомство с сетями и хостингом не выходит за рамки устранения неполадок и отладки веб-приложений. Так что мне нужно какое-то предложение для ситуации, в которой мы находимся - будет ли онлайн-хостинг хорошей идеей или нам нужно инвестировать в лучшее сетевое оборудование [на данный момент мы вычеркнули одного фрилансера] - учитывая вариант онлайн-хоста, который варианты, которые мы должны искать для того, чтобы предложить соотношение цены и качества. Дешево - это хорошо, но если это будет огромным компромиссом по качеству ... помогите, пожалуйста :( это срочно
ИЗМЕНИТЬ ====
Совет, тем не менее, отличный, но сейчас я обдумывал эту ситуацию. Предположим, я выберу онлайн-сервис, такой как облачный хостинг или выделенный сервер - мне все равно потребуется установка системы аварийного переключения в этом случае, и если да, то как будет настроена эта система аварийного переключения или что будет лучшим способом справиться. Мы небольшая компания, и у другого ИТ-специалиста был не очень хороший опыт работы с управляемыми службами с другого хоста - это как если бы вам нужен кто-то, чтобы постоянно координировать с хостом службу управления, и если нам придется делать половину работы тогда мы могли бы потратить некоторое время на управление нашим собственным сервером, будь то локальный или облачный.
В описанной выше ситуации - если мы рассмотрим выделенный хост в сети… как бы мы могли настроить систему аварийного переключения?
Ненавижу это говорить, но если вы действительно считаете, что ваш фрилансер пытался вас обмануть, то первым делом вам следует позвонить в полицию и, возможно, к специалисту по компьютерному праву.
Во-вторых, если у вас уже есть сетевое подключение и место для размещения в центре обработки данных, я предлагаю вам сохранить его и поддерживать свою собственную сеть. Мне лично не нравится бизнес-модель виртуального хостинга. Мне нравится хранить собственное серверное оборудование, сеть и управление внутри компании.
Тем не менее, вам действительно нужно нанять кого-то, кому вы можете доверять, чтобы управлять этим. Лучше иметь штатного системного администратора на полную ставку, чем нанимать фрилансера каждый раз, когда что-то случается. Во-первых, потому что наличие в офисе помощника значительно экономит время, а во-вторых, потому что, надеюсь, он укрепит некоторую лояльность к компании.
Если приложение, которое вы запускаете, критически важно для бизнеса и настолько важно, насколько вы его себе представляете, то почему, черт возьми, оно было только на одном сервере? Вы только что назвали главную причину неудачи не из-за действий одного злоумышленника, а из-за того, что ваш системный архитектор никогда не говорил: «Эй, а как насчет избыточности и устойчивости, давайте возьмем пару кластерных серверов».
Пока я пишу эту заметку, было ли где-нибудь сохранено состояние и конфигурация вашего сервера? Если у вас была резервная копия с нуля до того дня, когда вы наняли подрядчика, то восстановление должно дать вам рабочую машину. (если он физически не сломал оборудование, и в этом случае вернемся к первому пункту, на этот раз с обвинением в криминальном повреждении)
Вам не нужно слишком беспокоиться о сетевой стороне, если вы выбираете хороший центр обработки данных. На самом деле они там, чтобы помочь, а не ограбить вас, и могут предоставить вам различные маршруты в Интернет, даже если у вас нет собственного оборудования для маршрутизации.
Моя рекомендация:
Надеюсь, вы узнаете много нового о том, как настроить настоящую серверную архитектуру и сделать свое приложение гораздо более надежным, чем было раньше. К сожалению, в какой-то момент каждый должен совершать эти ошибки, и хорошим системным администратором вы можете научиться показывать, как вы с этим справляетесь.
Я чувствую необходимость рассказать о облачных решениях и о передаче вашей ИТ-работы на аутсорсинг. Для полного раскрытия информации, я занимаюсь ИТ-консалтингом. Я согласен с тем, что в определенный момент компания достигнет размера, при котором наличие внутреннего ИТ-специалиста будет более рентабельным. Однако я также заметил, что обычно, когда компания находится на этом этапе, они могут позволить себе только инженера начального уровня. В таких случаях они могут нанять ИТ-фирму для выполнения проектов / задач более высокого уровня, а также при необходимости выступать в качестве поддержки второго уровня для внутренних технических специалистов. Когда компании достигают больших размеров, наличие внутреннего персонала обычно имеет большой смысл, но это также зависит от культуры бизнеса и от того, насколько они технологически подкованы и хотят быть.
С учетом сказанного могу сказать, что я довольно параноик в отношении безопасности и размещения критически важных данных в облаке, однако во многих случаях это дает огромные преимущества. Прежде всего, необходимо выбрать надежную компанию с проверенной репутацией (например, Amazon Web Services или Rack Space). Вам нужна компания, которая также поддерживает их и имеет SLA. В любом случае, вы всегда должны хранить хорошие резервные копии, независимо от того, размещаете ли вы у себя дома или в облаке.
Если вы собираетесь потратить тысячи долларов на серверы и пространство для совместного размещения в центре обработки данных и хотите узнать, как установить сервер, вы можете сделать это в облаке с резким снижением общих затрат и начальных денежных затрат. Например, настройка сервера среднего размера в Amazon занимает около 15 минут, и вы получаете полный root-доступ в Linux и полный доступ администратора в Windows. Вы можете увеличивать и уменьшать объем памяти, ЦП и дискового пространства на лету, не дожидаясь, пока специалисты центра обработки данных сделают это за вас. У вас есть полный контроль над экземпляром сервера. Если вам нужно запустить другой подобный сервер, это так же просто: вы даже можете сделать снимок своего сервера, а затем сохранить его, а затем использовать его для создания другого такого же сервера, когда захотите, в считанные минуты. Вы платите только за то, чем пользуетесь.
С Amazon и Rack Space (и другими, я полагаю) вы можете размещать серверы на восточном побережье, западном побережье и даже в Европе, и все они могут общаться друг с другом или использовать один для резервирования и платить за него только тогда, когда он вам нужен.
Вы платите меньше копеек в час за использование одного экземпляра сервера, который в сумме дает то же, если не намного меньше, чем решение для центра обработки данных, и вы можете выключить свои серверы, когда они вам больше не нужны. Срочных контрактов нет, так что вы не застряли. У вас есть гибкость, которой нет в решениях с фиксированными активами.
Если у вас проблемы с управлением или вы не хотите учиться, вы можете нанять кого-то внутри компании или передать его на аутсорсинг. В любом случае, тот, кто когда-либо управляет этим, должен быть должным образом проверен и должен знать, что он делает, и иметь возможность доказать это, прежде чем вы заплатите ему зарплату или гонорары.
Это ни в коем случае не универсальный подход, но хороший ИТ-консультант должен постараться задать вам много вопросов о ваших потребностях, ваших планах на будущее, вашем бюджете и о том, в каком направлении движется ваш бизнес, чтобы они могли предложить вам разумные варианты. можно жить с.
Надеюсь, это поможет.
Ключевым аспектом вашего отказоустойчивого решения должна быть репликация данных. MySQL поставляется со встроенной репликацией, и ей легко научиться. После того, как у вас будет запущена репликация между двумя машинами, все остальное будет просто.
Вы получите наибольшую пользу от запуска вашего отказоустойчивого хоста в другом месте. Это будет действовать как аварийное восстановление в случае пожара в вашем офисе, в случае кражи серверов или скачка напряжения на ваших серверах.
Простое двухсайтовое решение в вашем случае, вероятно, заключается в том, чтобы продолжить работу службы из вашего офиса и реплицировать данные оттуда через VPN на сервер в размещенной или управляемой среде. Вам даже не обязательно когда-либо запускать службу на удаленном сайте, просто продолжайте работу реплики базы данных, пока что-то не пойдет не так с вашим офисом. На этом этапе у вас есть актуальное решение для восстановления, в котором вы можете либо скопировать данные обратно в свой офис, либо перенести свой сервис в среду хостинга. План поможет.
Вполне вероятно, что удаленная среда будет лучше, чем ваш офис: хороший кондиционер, чистое электричество, хорошая связь. В этом случае перенесите свою службу в удаленную среду и реплицируйте данные обратно в свой офис, и пусть ваш офис будет действовать как сайт аварийного восстановления.
Размещение только двух серверов в одной стойке / здании подвергает вас риску сбоя среды.
Большинство онлайн-хостов, как правило, имеют дело с веб-сайтами, поэтому вы, вероятно, будете искать управляемую услугу, особенно если вы сами не разбираетесь в администрировании серверов. Обычно вы подписываете контракт на управляемую услугу, который включает соглашение об уровне обслуживания, и компания также может быть готова подписать соглашение о неразглашении в зависимости от характера вашей системы.
Если вы все же выберете путь обслуживания его собственными силами, я бы посоветовал иметь систему аварийного переключения (она стоит дороже, но если она критична для вашего бизнеса, это не должно быть проблемой). Затем любое обслуживание, которое вам нужно, на live server, вы запускаете свою систему на своей резервной системе, потому что, как вы видели, даже самые тривиальные задачи могут пойти не так.
Я работал с парой компаний, которые предоставляют управляемые серверы - Каждый город являются, вероятно, лучшими на сегодняшний день, поскольку они устанавливают и управляют всем программным стеком (они работают с системами Solaris, но могут предоставить системы Windows или Linux по вашему запросу). Однако их цены немного завышены по сравнению с другими. NTT также предоставляем индивидуальные решения для хостинга.
Большинство других хостинг-провайдеров предоставляют сервер, и вы должны установить его и управлять им. Я считаю, что лучшие представители этой породы Redstation, Memset и Fasthosts (но там поддержка немного ужасна.)
Я бы порекомендовал управляемый VPS. Как правило, они более экономичны, чем совместное размещение, обеспечивают поддержку и при этом дают вам полный контроль. Большинство хостов VPS, с которыми я имел дело, делают автоматические резервные копии в случае возникновения чрезвычайной ситуации. Вы можете подключить столько веб-сайтов, сколько необходимо для переключения.