Назад | Перейти на главную страницу

(* nix) Облачные / кластерные решения для масштабируемых веб-сервисов

Я собираюсь создать высокопроизводительный веб-сервис. Он должен использовать базу данных (или любую другую систему хранения), некоторый язык обработки (скриптовый или нет) и демон веб-сервера. Система должна быть распределена на большом количестве серверов, чтобы служба работала быстро и надежно.

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

Какие кластерные / облачные решения мне следует принять во внимание?

Существует множество Single-System-Image (SSI), файловых систем кластеризации (могут быть частью дизайна), таких проектов, как Hadoop, клоны BigTable и многие другие. У каждого есть свои плюсы и минусы, и на странице «О нас» всегда написано, что решение отличное :) Если вы пытались развернуть что-то, что затрагивает эту тему - поделитесь своим опытом!

UPD: Это не файлообменник и не игра, а нечто весьма интерактивное. Вы можете взять ServerFault в качестве примера веб-службы: небольшие фрагменты данных, полустатический контент, интенсивные операции с базой данных.


Для тех, кому может быть интересно:

Перекрестная публикация на StackOverflow

Связанные вопросы:

Я несколько свободно воспринимаю суть запроса OP о том, что это «зрелая платформа облачных вычислений, которую легко найти для программистов и которую легко масштабировать для операций». Мы еще не совсем там; Насколько мне известно, не существует зрелых, коммерчески доступных систем, которые охватывают всю цепочку от HTTP-запроса и обработки до постоянного хранилища.

Наиболее близким к сегодняшнему дню, вероятно, является промежуточное ПО для распределенных данных, например Согласованность Oracle или может быть Терракота. Oracle Когерентность хороша для Squarespace и другие веб-приложения. Конечно, Oracle также с радостью продаст вам многораздельную базу данных Oracle, которая может обрабатывать огромные объемы данных и просто работает. А цена ... если нужно спросить, вы не можете себе этого позволить.

Если вам нужен дешевый (э-э), то вы в какой-то степени хотите сделать что-то самостоятельно, используя компоненты с открытым исходным кодом. В Семья Hadoop - это наиболее полный и зрелый набор инструментов с открытым исходным кодом, подобный BigTable и Map / Reduce. Раздробленный MySQL популярен для хранения данных и до сих пор остается в основном DIY решение. «NoSQL» сейчас набирает обороты, но все еще первые дни NoSQL.

Какие кластерные / облачные решения мне следует принять во внимание?

Разве у вас не задом наперед? Какие у вас есть свидетельства того, что ваше приложение достигает масштаба Интернета, каковы наблюдаемые модели доступа к данным в текущем масштабе, и с какими решениями и языками ваша команда ранее сталкивалась?

Невозможно ответить, не зная точно, что ты делаешь; даже тогда это может быть довольно сложно.

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

Такие вещи никогда не бывает легкими, и, более того, это скорее вопрос для Stackoverflow.

Hadoop + Hive (или PIG) создан для работы с большими объемами данных. Это то, что используют Yahoo (кластер на 4000 узлов), Facebook, eHarmony и т. Д.

Я считаю, что вы можете получить фирменные пакеты / поддержку на Cloudera.com или сами на apache.org

Его ужасно легко настроить, и он великолепен при работе с ГБ-ПБ запросов данных.

Вы можете легко протестировать его на EC2 (это один из их вариантов) практически бесплатно.

Facebook использует кассандра для хранения данных.

Вот это статья о масштабировании архитектуры и престижа youtube и google: Проекты, уроки и советы при построении больших распределенных систем Джеффа Дина из Google, описывающего, как они делают свое дело.

Мне очень нравится полный амазонский люкс.

Я считаю, что Amazon EC2 в сочетании с Amazon S3 и Amazon Simple DB или Amazon RDS может быть для вас хорошим вариантом.

Вы можете использовать кластер JBoss.