@Sxquer

Как построить отказоустойчивый сервер (по доступности, низкая нагрузка)?

Добрый день!

Нужно решить техническую задачу, поможете?

Есть домен, example.com, на нем будут лежать клиентские скрипты.
Нужно иметь основной сервер под него, где будут лежать скрипты (файлы).
Нужен регулярный бэкап всех скриптов.
Нужно зеркало на другом сервере, чтобы в случае технических работ или проблем пользователи продолжили дальше работать без проблем.

Отсюда вытекают задачи, которые нужно решить:
1. Синхронизация файлов. Когда по ФТП заливаем файлы на ваш сервер, они должны с небольшой задержкой залиться на slave сервер. Объем небольшой, 10 мб в сутки максимум.
2. Настройка домена (через RR-DNS или как-то еще) чтобы в случае падения master сервера запросы пошли на slave
3. Организовать бэкап файловой системы
4. В идеале, чтобы файлы скриптов на master лились не через ftp, а с репозитория на bitbacket.

Никогда ничего толком не админил, поэтому спасибо за любой ответ, знаний совсем мало по этой теме.
  • Вопрос задан
  • 345 просмотров
Пригласить эксперта
Ответы на вопрос 2
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
В целом правильные ответы очень сильно зависят от проекта, я напишу то что на мой взгляд common sense и применимо всегда:

1. Не надо заливать по FTP. Делайте pull из bitbucket после получения hook от них.
Учтите что строго говоря hook может и не придти, предусмотрите какой то лог выкладок и возможность дернуть руками снаружи. Есть большие готовые решения, в том числе умеющие и деплоить: jenkins, teamcity, phpci - но можно и свой простенький скриптик собрать, дел на час максимум если без красивостей.

1.2 Если хочется отказоустойчивости - не нужно разделять на master и slave, сервера должны быть независимы друг от друга и эквивалентны.

2. Если простой у одиночных клиентов в N часов допустим:
Amazon route53 в качестве dns + 2 шт amazon health check.
2 A-записи на один домен указывающие на 2 сервера привязанные каждый к своему health check.
TTL ставить поменьше, 1-5 минут. К сожалению все равно будут посетители у которых провайдер кеширует.

Если простой недоспустим совсем - простых решений нет к сожалению :)
Можно смотреть на failoverip у hetzner (2 железных сервера на 1м IP с возможностью быстрого переключения), но не снимает вопроса что делать если упал дц у самого хецнера.
* и да, в нормальной ситуации сервера лучше держать у разных хостеров

3. Всю систему целиком бекапить imho не нужно. Бекапить нужно пользовательские данные если они у вас есть.
SQL неплохо себя показал galera cluster (master-master), но там есть нюанс с транзакциями если вы их используете. Файлы можно каким нибудь rsynk таскать, а можно просто положить их сразу в S3 и забыть навсегда (если у Вас их не очень много - см тарифы)
Ответ написан
Комментировать
@MechanID
Админ хостинг провайдера
Если отазоустойчивость нужна в контексте 1го ДЦ то посмотрите в сторону heartbeat.
одном ДЦ ставите и настраиваете heartbeat на двух сервераз, в случае проблем он перекинет главный ип одного сервера на другой, предупредите саппорт что ИП будет переезжать с сервера на сервер (особо актуально при физических серверах а не впс/вдс)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы