koltykov
@koltykov

Отказоустойчивость web-сервиса — DNS Failover, SQL, PHP. Правильно ли мыслю?

Есть Web-сервис, работающий на VPS, не сильно требовательный к ресурсам (PHP/Laravel, MariaDB, Nginx), но важен постоянный доступ. Простои больше 10 минут - уже критичны. Хостинг подходит только Российский , перепробовал за несколько лет много разных, но не нашел такого, чтобы все время проработал стабильно.
Хочу повысить отказоустойчивость сервиса.

Перечитал много разной теории про балансировщиков, nginx, docker swarm и kubernetes и т.д. В таких вещах смущает что все равно есть какой-то центральный сервер или мастер-нода, которая рулит балансировкой или мониторит доступность нод/серверов. И если он не будет работать, то вообще ничег не будет работать. Поэтому этот вариант мне не очень нравится...

Я планирую сделать так:
1. DNS Failover - через платный сервис cloudns.
2. Два VPS сервера в разных локациях (например Москва и Казань)
3. Репликация БД MariaDB через Master-Master
4. Синхронизация файлов через Unison

Сам в этом деле нуб, на практике никогда не сталкивался. Поэтому ткните в правильном ли направлении мыслю и двигаюсь?
  • Вопрос задан
  • 629 просмотров
Решения вопроса 2
Sanes
@Sanes
2. Два VPS сервера в разных локациях (например Москва и Казань)

Один, нормально работающий сервер. Не забивайте голову.
Ответ написан
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
полагаться на DNS = полагаться на всю цепочку DNS резолверов которая может участвовать в доставке изменений до клиента. (гугловый кеш, клаудфлейр, как самые популярные. Затем DNS провайдеров интернета, использующихся по умолчанию на многих клиентских устройствах, а сейчас еще, в связи с растущей популярностью средств обхода блокировок - даже локальные пользовательские DNS резолверы)
И никто не гарантирует что все настроено корректно, протухшие записи удаляются, TTL соблюдается именно тот который вы настроили у себя и тд и тп.
На вашем месте я бы все таки завязался на единую точку входа, но выбрал бы сервис, который обеспечивает достаточную надежность.
Например cloudflare (спрятать ваши два сервера за ним) или, если хочется именно российского, думаю, можно доверять Яндексу, если у них есть соответствующий сервис (network load balancer насколько я понял - для внутренних ресурсов в облаке)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
Сделать самому high availbility очень сложно, а с репликацией базы еще сложнее. Поэтому да - просто выбрать надежного хостера для вебсервера, а если есть деньги - хостера, который дает готовые решения для этого.
Например, multi-availability zone architecture in AWS.

См. также Как организовать надежную инфраструктуру для веб-проекта?
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
У вас неверная информация.
Я про "Перечитал много разной теории про балансировщиков, nginx, docker swarm и kubernetes и т.д. В таких вещах смущает что все равно есть какой-то центральный сервер или мастер-нода, которая рулит балансировкой или мониторит доступность нод/серверов. И если он не будет работать, то вообще ничег не будет работать.".
Есть балансировщики как услуга с высокой доступностью, за которой не нужно следить вам.
А в общем и целом рассуждать о построении прода и одновременно признавать, что вы "Сам в этом деле нуб" - это как то странно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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