Jan. 5th, 2013

orleanz: (main)
Я вот тут сейчас подумал про ЖЖ с технической точки зрения

Известно, что ЖЖ технически достаточно сложен был уже во времена Фицпатрика, я видел диаграму обьясняющую его начинку, это впечатляет, поверьте на слово

Конечно, Сиксапарт и Суп уже более усложнили его с тех пор. Но тут есть одно важное НО!

Дело в том, что основная часть сложности ЖЖ - не в основном модуле, а во вспомогательных. Насколько я понимаю, ЖЖ можно представить себе состоящим из 4 частей

1. Впереди стоит сложный лоуд балансер, проприетарный или жестко кастомизированный сторонний
2. За ним стоит основной модуль (core) который работает в тесной связи с
3. Свистелками-жужжалками, а так же такими неизбежным, многочисленными и муторными штуками как системы стилей, шаблоны вебстраниц и тп.
4. Сзади стоит сложная, большая база данных, со множеством проприетарных придумок для оптимизации ее работы

Все это крутится на некотором количество своих дедикейтед серверах.

Если бы ЖЖ создавался сейчас с нуля, на основе современных технологий, и если бы владельцы не имели религиозных запретов на использование внешнего хостинга, то

ВСЕ МОЖНО БЫЛО БЫ СДЕЛАТЬ ГОРАЗДО ПРОЩЕ

Дело в том, что если бы ЖЖ был изначально построен как облачное приложение, скажем, на Гугл Апп Эджине, сразу бы были бы полностью сняты проблемы с п.1, п.4, и количеством необоходимых хардварных ресурсов. У Гугла есть свой, совершенно state of the art айпи редиректор, дос митигейшен утилиты и проч. У Гугла есть своя, нереляционная, чудовищно безразмерная, адски быстрая на чтение и достаточно быстрая на запись проприетарная база (Big Table). ДОС атак вообще не было бы, потому что нет смысла ДДОСить Гугл, силенок не хватит, разве что все ботнеты мира обьединить в один удар, но это используется только для начала 3 мировой войны, не меньше. Проблема бэкапа данных вообще не стоит, ибо она спрятана на нижнем уровне в базе.

Что осталось бы ? осталось бы относительно несложная часть п.2 и сложная, но неизбежная часть п.3, вне зависимости от того, сколько там было бы свистеллок и жужжалок. Даже без свистелок, п.3 - плод долгой и кропотливой работы немалого количество людей, дизайнеров, верстальщиков, фронтэнд инженеров и т.д.

Но п.2, само ядро серверной части, мне кажется не просто простым, а совсем простым. Грубо говоря, у вас есть 3 таблицы, одна для юзеров (там же в Блоб-полях содержится их аватарки), другая для постингов, третья для комментов. Хотя можно и постенги и комменты обьединить. Юзеры логинятся, или не логинятся, запрашивают показ постингов, запрашивают показ кусочка френд ленты, юзеры добавляют новые постинги. Типа все. Это ЯДРО, core. Это уже может, без свистелок и суперсложных шаблонов станицы, обеспечить базовую функциональность. А проблемы нагрузки большого количества посетителей, как уже выше писал, решается через Гугловский лоуд балансер, через автоматическое создание стольких инстанстов вебсерверов сколько нужно, из Гугловского (практически) безграничного хардварного пула, и за счет out-of-the-box супероптимизации Big Table

Иными словами, если бы небольшой команде разработчиков поставлили задачу написать минималистический клон ЖЖ без свистеллок, стилей и т.п. на основе Гугл Апп Энджины, то они бы смогли это сделать за короткое время и результат работы уже был бы способен держать удар большого количество юзеров, за счет облачной архитектуры и гугловских ништяков описанных выше.
orleanz: (main)
Какие бывают ощущения у некурящего человека

который приклеит себе никотиновый пластырь?

Profile

orleanz: (Default)
orleanz

December 2018

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 12th, 2025 11:45 pm
Powered by Dreamwidth Studios