Как добиться максимальной скорости и стабильности?

MIRhosting.com
На сайте с 18.10.2006
Offline
203
#11

Junost,

Решается только горизонтальным масштабированием. В рамках облаков, VPS, дедиков - значения принципиального не имеет технологически, разница только в сложности обслуживания и стоимости.

Короче говоря, это не самый главный вопрос.

Начать надо с вертикальной структуры проекта - балансеры, приложение, базы данных, кешы и т.д.

Смотреть что из этого критикал и должно иметь 100% uptime. Каждый узел имеет свои особенности и уровень сложности для реализации кластеризаций и масштабирований.

Как вариант, остановиться только на кластеризации балансеров, и на их уровне делать логику а что происходит если более низкий уровень (приложения) становятся недоступными.

Балансеров должно быть тогда минимум 2, да желательно в разных регионах или площадках. Свыше это управляется одним из гео днс сервисов с проверкой живучести балансеров. Данный сервис становится по сути единой точкой отказа, поэтому это должен быть надежный сервис, с ддос защитой, распределенной географически. Хорошая новость - таких сервисов достаточно много, есть даже бесплатные.

Кластеризация более низкий узлов зависит от бизнес необходимостей (SLA) и бюджетов. А также от используемых приложений.

А выбор площадки - есть услуги более заточенные под такие действия, есть вообще не заточенные. Сделать можно на любых, как я уже сказал разница в сложности обслуживания и стоимости. Самые эффективные и дешевые - это заточенные под это облачные платформы с разными регионами.

Андрей Нестеренко, MIRhosting Облачная платформа для DevOps (https://mirhosting.com/paas)
S
На сайте с 04.10.2018
Offline
8
#12
Junost:
Разрабатываем проект, для которого крайне важна стабильная высокая скорость обработки исходящих и входящих запросов к БД, и аптайм (платный доступ к функционалу, соответственно, юзеры будут в бешенстве, если что-то тормозит или вообще лежит) . К ресурсам проект не требовательный, т.к. посещаемости немного.

Я очень мало понимаю в вопросе, если утрировать, то приходит на ум что-то вроде аналога RAID 1 из 2х разных хостингов, чтобы в случае проблем с одним, подключался второй без потери данных. Не знаю, как это правильно обозвать, кластер, клон, реплика, зеркало может... что-то в этом роде.

Подскажите плиз, где (быстрый VDS, дешевый дедик, облако...) и как бы вы разместили сайт, для идеального соотношения цена/качество?

Из решений, чтобы не парить мозги себе - это простой пойти к дорогому хостеру, заточенному на качестве.

Но, вообще говоря, это просто проблема грамотной разработки.

uptime и все дела - вы не решите дешевыми методами, это решается кластером, а там нужна квалификация разработчика очень высокая.

колхозить на коленке RAID - не лучший вариант, в частости uptime он не гарантирует.

В любом случае в двух словах не рассказать - просто наймите высококвалифицированного разработчика.

S
На сайте с 04.10.2018
Offline
8
#13
MIRhosting.com:
Балансеров должно быть тогда минимум 2, да желательно в разных регионах или площадках. Свыше это управляется одним из гео днс сервисов с проверкой живучести балансеров. Данный сервис становится по сути единой точкой отказа, поэтому это должен быть надежный сервис, с ддос защитой, распределенной географически. Хорошая новость - таких сервисов достаточно много, есть даже бесплатные.

Можно примеры?

J
На сайте с 18.06.2007
Offline
158
#14
sgrumi:
к дорогому хостеру, заточенному на качестве.

А можно примеры таких? (с серверами в РФ, наверное, чтоб к хранению перс.данных не прикопались вдруг)

S
На сайте с 04.10.2018
Offline
8
#15
Junost:
А можно примеры таких? (с серверами в РФ, наверное, чтоб к хранению перс.данных не прикопались вдруг)

Selectel

Кластеры у них называются VPC.

Недавно поднимал там кластер с системой управления Kubernetes

2 управляющие ноды, 3 рабочих ноды.

4 Г оперативки на каждую ноду, 2 ядра на ноду. SSD.

Обходится примерно в 12 тыс. рублей в месяц.

Если хочется сэкономить то можно запилить кластер на Flynn.io вместо Kubernetes.

Если уж совсем хочется сэкономить, то пилить ПО управления кластером самому.

Можно постараться и сделать очень экономично.

За основу брать nomad, consul, fabio. Плюс горячая репликация базы данных.

Статические файлы хранить отдельно на внешнем файловом хранилище типа S3 (не обязательно Амазон, у того же Селектела есть; оно много у кого есть, не обязательно использовать того же хостера).

Принцип для одного сервера можно глянуть тут https://github.com/eBayClassifiedsGroup/KomPaaS

---------- Добавлено 04.10.2018 в 23:33 ----------

sgrumi:
Недавно поднимал там кластер с системой управления Kubernetes

https://blog.selectel.ru/klastery-kubernetes-v-vpc/

S2
На сайте с 30.12.2015
Offline
307
#16
Как добиться максимальной скорости и стабильности?

Никак - это фантастика.

S
На сайте с 04.10.2018
Offline
8
#17
MIRhosting.com:

Решается только горизонтальным масштабированием.

Горизонтальное масштабирование - это о другом.

Это об умениях системы легко поднимать свою производительность путем простого увеличения серверов при росте нагрузки.

2 реплицирующихся сервера для обеспечения надежности для небольшого проекта - это вовсе не горизонтальное масштабирование.

---------- Добавлено 04.10.2018 в 23:40 ----------

MIRhosting.com:
А выбор площадки - есть услуги более заточенные под такие действия, есть вообще не заточенные. Сделать можно на любых, как я уже сказал разница в сложности обслуживания и стоимости

Ну как сделать...

Если хостер заточен на одиночные VPS/VDS, где у каждой виртуалки ровно 1 сетевой интерфейс на выход наружу в интернет и нет чисто внутренней сети между серверами, то никак вы не настроите чтобы было стабильно.

При малейшей нагрузке/DDoS - вы лишаетесь и канала связи с другими серверами и репликация становится невозможна.

---------- Добавлено 04.10.2018 в 23:45 ----------

Junost:
Друзья, спасибо, теперь более понятно куда копать...

Еще вопросик, если делать распределение по разным ДЦ, то сильно важна будет ширина канала, и география?
К примеру, Россия - Европа, 100мбит - сойдет?

Ну откуда ж мы знаем сколько реплицировать нужно в вашем проекте.

Если сразу делать проект заточенный под кластер - нужно минимизировать объемы данных под репликацию. Например, большие файлы (а то и вообще всю статику) - держать отдельно от движка сайта на специализированных Cloud Storage.

Базу данных тоже всю не реплицировать.

Например, для интернет-магазина - обновления товаров и цен можно заливать параллельно на разные сервера кластера. Репликация этих данных не нужна.

А вот "залогинился в систему", "положил в корзину" и "оформил заказ" обязательно нужно будет реплицировать.

---------- Добавлено 04.10.2018 в 23:50 ----------

FeedBack:
В хезнере разве можно делать подобное на VDS? вроде только на дедиках.

Ну например в OVH можно.

Только по части облачных решений - это не первого класса хостер.

---------- Добавлено 04.10.2018 в 23:56 ----------

Оптимизайка:
Такое решение обычно делают на платформе Amazon.

Если ничего кроме AWS не знают - то да.

Есть еще Google Cloud, Microsoft Azure. И это только самые крупные.

А еще есть Heroku, Rackspace, Linode и это только те что сходу пришли в голову. Их значительно больше, так-то.

Оптимизайка:
или самостоятельно, особенно в российских реалиях.

Зачем самостоятельно?

Есть ПО управления кластерами: Kubernetes, Flynn.io, Mesos, семейство утилит HashiCorp и пр.

Есть Openstack для гибкого provising и поддержка Openstack у множества хостеров.

Есть готовые решения у Selectel, Mail.ru, Yandex (режим тестирования пока), КРОК, Ростелеком

---------- Добавлено 05.10.2018 в 00:01 ----------

team-voice:

Минусы этого решения:
1. цена (3 дедика это 3 дедика)
2. нужен квалифицированный исполнитель (не поверите но собрать грамотно требуемое вам решение таки не 2 минутная задача)

Минусы этого решения - огромные проблемы при репликации.

  • По причине большой удаленности и медленной связи между серверами.
  • И наличие одного-единственного сетевого интерфейса, по которому на ваш сайт и пользователи ломятся и плохие ребята с их DDoS и ваша репликация идет.

Нужно делать на специализированных хостерах, что позволяют объединить несколько серверов внутренней сетью.

Разумеется, лучше на нескольких хостерах, но и на одном хостере - никак не меньше 2, а лучше 3 (а best practics вообще 5) серверов.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#18
sgrumi:
Зачем самостоятельно?
Есть ПО управления кластерами: Kubernetes, Flynn.io, Mesos, семейство утилит HashiCorp и пр.
Есть Openstack для гибкого provising и поддержка Openstack у множества хостеров.

Это я и имел ввиду под "самостоятельно" :)

Есть готовые решения у Selectel, Mail.ru, Yandex (режим тестирования пока), КРОК, Ростелеком

Для простых смертных (ака физлиц) так себе вариант. Ну на яндекс разве что надежда.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
S
На сайте с 04.10.2018
Offline
8
#19
Оптимизайка:
Это я и имел ввиду под "самостоятельно" :)
Установка Kubernetes в Selectel (или на любого хостера с OpenStack, которые включил у себя поддержку Kubernetes) - одна команда:
openstack coe cluster create --cluster-template kubernetes-nofloatingips-ru-1b-v1.9.9 --master-count 2 --node-count 3 --keypair ssh-test --master-flavor BL1.2-4096 --flavor BL1.2-4096 test-cluster
После чего у вас уже есть кластер. Со всеми нишняками типа отказоустойчивости. В Kubernetes оно встроенное.

Для простых смертных (ака физлиц) так себе вариант. Ну на яндекс разве что надежда.

Почему?

Селектел вообще не видел ни разу никаких наших документов. Мы могли и физ лицом быть, так то.

Оплата по карте. Как обычное физ. лицо.

Если вы о цене - дык кластера вообще не самое дешевое что есть в вебе, далеко не самое дешево. И не только хостинг - а еще разработка ПО под них и администрирование.

---------- Добавлено 05.10.2018 в 00:42 ----------

Оптимизайка:
Это я и имел ввиду под "самостоятельно" :)

Там всего то одна команда (Selectel, да и любой хостер на OpenStack, с включенной поддержкой Kubernetes)

openstack coe cluster create --cluster-template kubernetes-nofloatingips-ru-1b-v1.9.9 --master-count 2 --node-count 3 --keypair ssh-test --master-flavor BL1.2-4096 --flavor BL1.2-4096 test-cluster



И вот у вас уже есть полноценный кластер со всеми ништяками отказоустойчивости.
J
На сайте с 18.06.2007
Offline
158
#20

Друзья, спасибо ещё раз.

Понял, что правильно это все организовать - сложный и дорогостоящий процесс...

На начальном этапе нет смысла, в будущем сделаем, если проект "взлетит"

Пока ограничимся хорошо настроенной системой бэкапов.

suffix:
Выбрать dns-хостинг (dyn.com, dnsmadeeasy.com и т.п.) где есть поддержка Failover Records и внести туда IP адреса вот тех двух vds

А вот этого и какой-нибудь заглушки с извинениями и обещанием компенсации, на первое время будет достаточно.

Подскажете русскоязычный? (нагуглил только cloudns.net)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий