Re[6]: архитектура системы при работе в Azure
От: Аноним  
Дата: 23.09.13 09:40
Оценка:
Здравствуйте, scale_tone, Вы писали:

_>Описанная Вами картина однозначно свидетельствует: использовать Azure (AWS etc.) для Вашего приложения без переделки приложения, может быть, и можно, но не нужно. У Вас нет реально высокой нагрузки (иначе SQLite давно пошел бы лесом), у Вас нет реальной потребности в высокой доступности (оффлайн на время поднятия базы из бэкапа для Вас — не проблема) и у Вас уже есть своя железка, на которой сейчас все работает. Т.е. вообще ни одного аргумента за переезд в облако.


нагрузные характеристики приложения (в текущей архитектуре) нас устраивают. есть потребность обеспечить более высокую доступность (не 24*7*365, а скажем 99,7%). оффлайн в рабочее время (в обычном понимании времени) — нежелателен. Да, есть железка (арендуем в датацентре VDS), делаются переодически бакапы, пока (тьфу тьфу) сбоев по причине отказа железа HDD небыло. но вероятность же есть. и если такой факап реализуется, то будем какое-то время офлайн (пару часов), это плохо. вот и пытаюсь понять как можно обеспечить более высокую доступность, за счет использование надежного хранения файлов.

облако в архитектуре — масштабирование вширь front-end-ов, но сидящих на одном (облачном надежном) back-end (в смысле бд/storage), нам не надо. тк фронт-енды почти не работают, основная нагрузка на бд — много рандомных чтений. интересен "облачный HDD" подключаемый к VDS, чтоб был такой же быстрый как локальный и надежный как "облачный" (хостер, как-то бы обеспечивал устойчивость от сбоев железа). такое бывает?...

если такого небывает, то надо думать над путем — постоянной асинхронной репликации вносимых изменений в облачное хранилище. это можно — но путь через "облачный HDD" более прост, если конечно есть такие сервисы, хотя я не вижу принципиальных причин почему бы им не быть, но пока незнаю их...
Re[7]: архитектура системы при работе в Azure
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 23.09.13 11:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>нагрузные характеристики приложения (в текущей архитектуре) нас устраивают. есть потребность обеспечить более высокую доступность (не 24*7*365, а скажем 99,7%). оффлайн в рабочее время (в обычном понимании времени) — нежелателен. Да, есть железка (арендуем в датацентре VDS), делаются переодически бакапы, пока (тьфу тьфу) сбоев по причине отказа железа HDD небыло. но вероятность же есть. и если такой факап реализуется, то будем какое-то время офлайн (пару часов), это плохо. вот и пытаюсь понять как можно обеспечить более высокую доступность, за счет использование надежного хранения файлов.


Ну так вот и считайте сами: если по статистике жесткие диски Вашего провайдера летят не чаще раза в год и если Вы в состоянии поднять базу из бэкапа за, скажем, пол-дня (остальные пол-дня оставляем на проблемы с сетью) — значит, Вы в шоколаде, и делать ничего не надо. В противном случае — придется менять СУБД на поддерживающую зеркалирование. И вот тогда уже, заодно, можно подумать о переезде в облако. А там уже есть: SQL Azure, Amazon RDS etc. etc.

А>облако в архитектуре — масштабирование вширь front-end-ов, но сидящих на одном (облачном надежном) back-end (в смысле бд/storage), нам не надо. тк фронт-енды почти не работают, основная нагрузка на бд — много рандомных чтений. интересен "облачный HDD" подключаемый к VDS, чтоб был такой же быстрый как локальный и надежный как "облачный" (хостер, как-то бы обеспечивал устойчивость от сбоев железа). такое бывает?...


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


Есть одна причина. CAP-теорема, называется .
Есть, правда, ее расширение на граничный случай, которое можно сформулировать так: все три буквы аббревиатуры CAP все-таки можно заполучить в одной и той же точке пространства-времени, но это будет стоить о-очень много денег.
И этот граничный случай — пока не Ваш .

В тех редких случаях, когда действительно требуется быстрое и при этом высокодоступное (отказоустойчивое) хранилище блочных данных — применяется SAN (возможно, Ваш провайдер даже готов продать Вам кусочек такой железки). Для операционки на сервере диск на SAN-сторадже выглядит как обычный (очень быстрый) жесткий диск, при этом никогда не ломающийся. Но SAN-стораджи стоят настолько много денег, что в подавляющем большинстве случаев дешевле обеспечить аналогичные показатели программными средствами: зеркалированием БД, репликацией и пр.

Я знаю только один случай, когда без SAN-а никак не обойтись: когда поднимают MSMQ на Windows Failover Cluster. Других не знаю.

Amazon EBS — это, кстати, и есть SAN. Только из-за большого числа юзеров на каждого юзера налагается throttling, поэтому реальная скорость EBS-диска не дотягивает до скоростей физической железки.
Re[7]: архитектура системы при работе в Azure
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 23.09.13 19:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, gandjustas, Вы писали:



G>>Если у тебя множество рандомных чтений и мало записей, то проще все в памяти иметь. Пофигу что там данные хранит. Хоть в файл (блоб) сериализуй.

G>>Если тебе нужна масштабируемость при конкурентной работе с данными, то sqlite тебе не поможет.
А>один файл бд может быть сотни мегов. и их много. все в память не поднять.
Сотни мегов в память не поднять? Ты давно характеристики серверов смотрел?



G>>Я перестал понимать что тебе надо вообще. Зачем тебе azure? Ты собираешься масштабировать приложение? Тебе acid гарантии нужны или нет? Отказоустойчивость нужна или нет?

А>мне нужен надежный хостинг с надежным хранением данных. я хочу найти наиболее оптимальный способ это обеспечить.
Тогда тебе не в azure. Если не нужна масштабируемость, бери любой shared хостинг.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.