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


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

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

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

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

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


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

Перекрестная почта в StackOverflow

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


5
2017-11-14 15:41


Источник




Ответы:


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

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


2
2017-11-17 09:27





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

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

Это легко настроить, и это потрясающе при работе с GB-PB запросов данных.

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


2
2017-11-14 16:09



Hadoop + Hive предназначен для запросов к хранящимся на складе данным ( wiki.apache.org/hadoop/Hive ). Распределенные хранилища данных, такие как Cassandra ( incubator.apache.org/cassandra ), Волдеморт ( project-voldemort.com ) и MongoDB ( mongodb.org ) больше подходят для доступа с низкой задержкой к последним данным, требуемым HPWS. - Suppressingfire


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

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

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


2
2017-11-17 13:18



Спасибо, я обманул его там. Добавлен пример чего-то подобного с тем, что мне нужно :) - kolypto


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

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

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

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

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


2
2017-11-17 16:10



Очень хороший ответ, спасибо! Честно говоря, этот вопрос является теоретическим, а не применим к любому реальному приложению. Чтобы познакомиться с кластеризацией, мне нужны некоторые подсказки от людей, которые разрабатывали / развертывали эти системы и имели такой опыт :) // Языки не очень важны: это могут быть C, Java, PHP, Pyton или что-то еще: когда производительность - это Конечная цель, любое решение может быть использовано. - kolypto


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

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


0
2017-11-16 16:23





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


0
2017-11-20 00:20