?

Log in

No account? Create an account

Previous Entry | Next Entry

Переход по щелчкуВ верхнее тематическое оглавление
 Переход по щелчку Тематическое оглавление (Блогосфера)

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

Для объяснения причины происходящего специально выделенные люди вместе с примкнувшими к ним поведшимися блоггерами стали пользоваться аналогиями, что компьютерные кластеры – это города, блоги – это их жители, и тут вдруг, неведомо откуда (ВНЕЗАПНО) начались проблемы. Откуда – неизвестно, наверно, кровавая гэбня песок в буксу подсыпала, но они стараются все быстро исправить для нашей пользы и удовольствия. Нет, некоторые моменты в объяснении очень даже правдоподобны: в городе все рушится, а администрация занимается перекраской заборов.

Точно описать происходящее для меня, конечно, невозможно хотя бы потому, что СУП о происходящем и о своих действиях молчит, как пленный глухонемой партизан Герасим под пытками. Что с ним не делают, а он в ответ только одно муму повторяет. Однако изложить что-то менее относящееся к делу, как пресловутые города, все равно не удастся.

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

1. Проблемы ЖЖ со стороны клиента, то есть нас
С точки зрения того кода, который интерпретируется браузером компьютера, за которым вы это читаете, и вываливается на экран, ЖЖ предоставляет своим пользователям крайне урезанный функционал. Или, говоря проще, сайт, который представляет собой страница пользователя ЖЖ, удивительно убог. Это – текст с урезанными тегами форматирования с вставкой изображений и некоторых внешних объектов типа флэшь-роликов. Никакой интерактивности и адаптивности в результате нет и в помине. Возможности вставки ява-скриптов, не говоря о чем-то более интересном, отсутствуют. Даже при чтении голого текста нет таких элементарных возможностей, как изменение размера шрифта. И уж тем более нет возможности создать и сохранить несколько профилей с настройками, чтобы выбирать режим работы. В результате и при чтении ЖЖ с экрана телефона, и при работе со стационарного компьютера с большим монитором предлагается одна и та же разметка. А с появлением «читалок» с выходом в Интернет жизненно необходимо иметь по крайней мере три варианта настроек: под большие экраны, под крохотные экраны смартфонов и под черно-белые экраны средних размеров.

Из-за простоты и нефункциональности, казалось бы, и код страниц должен быть простым. А теперь, уважаемые читатели, сделайте пожалуйста, следующее. Щелкните правой кнопкой мышки в то, что Вы сейчас читаете, и выберите команду типа «посмотреть код страницы».

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

Когда бывают подобные безумные программы с непонятной логикой? Только тогда, когда над программным кодом последовательно работает куча кодеров (чаще всего – типа студентов 3 курса), которые что-то там приделывают, каждый свое, к уже работающей программе, в которую они даже не врубаются. В результате получается клубок с запутанной логикой, избыточными проверками и переходами, в значительном количестве – мертвыми. Начали делать, не понравилось, отключили, но «хвосты» в коде остались.

При этом подавляющая часть программного кода и не относится к показу контента автора поста и его скромным потребностям типа зафрендить/расфрендить. Это – многочисленные дублирующие друг друга системы сбора статистики, а также показа всяких… эээ… совершенно необходимой для всех нас рекламы СУПа.

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

2. Проблемы со стороны сервера
Наиболее простой способ увеличения надежности работы системы, работающей в режиме реального времени – это дублирование и резервирование мощностей на случай сбоев. Грубо говоря, если у вас время от времени отказывает аппарат ИВЛ и вы не хотите убивать пациентов – поставьте два аппарата рядом и при сбое переключайтесь на резервный. Если и два иногда сбоят вместе – поставьте третий.

ЖЖ в силу своей концепции хранения архивов и постоянного добавления требует все возрастающих аппаратных возможностей. Никаких неразрешимых проблем нет – возможности вычислительной техники развиваются очень быстро. Еще 10 лет назад винчестер в полгигабайта считался большим.

Конечно, оснащение техникой требует некоторых дополнительных затрат, но…

Сейчас у СУПа, насколько они дают объяснения, для обслуживания ЖЖ порядка 15 кластеров, то есть систем из нескольких связанных друг с другом серверов. Стоимость сервера порядка месячной зарплаты креативного бухгалтера… (уточнение читателя - при необходимой мощности - менее годовой зарплаты ). «Ну, ты понял»…

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

В интерпретирующих системах проще писать. Там очень удобно отлаживать программу – видно, в какой команде ошибка. Можно отлаживать даже недописанные программы. Интерпретатор проще написать, чем компилятор (хотя хорошие системы сейчас поддерживают оба варианта – интерпретация для отладки и компиляция для счета). Языки программирования под Интернет изначально разрабатывались как только интерпретирующие, так как еще недавно скорость соединения по каналам Интернет была много меньше, чем вычислительные возможности компьютера, так что на скорость обработки браузером кода страницы можно было не обращать внимания. Соответственно для небольших проектов не только клиентская, но и серверная часть писалась на языках типа Perl, которые работают БЕЗУМНО МЕДЛЕННО.

По просачивающимся сообщениям программисты ЖЖ часть исходного кода переписывают на С++. Однако если прикинуть сложность и объем работ и их стоимость, то, как мне кажется, намного проще и дешевле усиливать аппаратную часть, докупая сервера, чем ковыряться в исходном ядре. Но вот что точно делать не надо – это продолжать навешивать никому, кроме СУП-дизайнеров, не нужных свистелок и перделок.

Но самое сложная и самая провальная часть проекта – это организационная, о чем я напишу позже, если этот аккаунт еще не засуспендят.
Buy for 60 tokens
Buy promo for minimal price.

Comments

( 59 комментариев — Порадовать комментарием )
_luden_
22 май, 2013 09:00 (UTC)
С аппаратной частью всё не так просто.
Серверами всё не ограничивается.
Более того, сервера - самая дешёвая часть их железа.

Судя по недавно выложенным файлам, у них там есть как минимум балансировщики нагрузки, уровня приложений (скорее всего f5, цены можете поискать, но это дорого).
Кроме того, я не думаю, что данные лежат на самих серверах.
Сервер на Intel-овской платформе сегодня - расходный материал.
Сгорел - поставили другой, а этот в ремонт.
Данные скорее сего лежат на централизованных СХД.
А вот какие СХД используются - вопрос.
В любом случае это тоже весьма дорогие вещи.
uborshizzza
22 май, 2013 09:28 (UTC)
Я старался не загружать уважаемых читателей информацией о том, что сервера разные.
Средний корпоративный СДХ терабайт на 100 - порядка 10 килобаксов. Месячная зарплата креакла (вместе с налогами, соцпакетом, обеспечением рабочего места и пр.) будет больше
_luden_
22 май, 2013 09:32 (UTC)
Что? 100 ТБ - 10 килобаксов?
Боюсь, что Вы раза в 3 ошибаетесь.
Но это не самая большая ошибка.

Ведь объём - не единственная характеристика СХД.
Куда важнее производительность.
Ведь если у Вас есть БД на 1 ТБ - это не значит, что 1 диска на 1 ТБ Вам хватит.
Может быть там нужно будет давать производительность эдак тысяч в 18 IOPS.
И тогда нужно будет несколько десятков дисков, а это куда дороже.

А загрузка СХД запросами кластера - вообще отдельная песня.
Это ж множество случайных запросов на чтение/запись.
uborshizzza
22 май, 2013 09:41 (UTC)
В любом случае стоимость сопоставима с затратой на месяц креативной работы
_luden_
22 май, 2013 09:49 (UTC)
1) Стоимость нормальной СХД для работы нагруженного кластера на 100 ТБ ёмкости будет порядка 2-3 миллионов рублей. Даже самый дешёвый kraftway (а его 100% будет недостаточно) уже под миллион выходит.

2) Это только железо. А есть ещё работы по имплементации, поддержка, ну про энергопотребление и теплоотвод забывать не стоит.

3) Поставка железа происходит не сразу. Уже после того как всё согласовано (а на разработку и согласование может уйти пара месяцев), обычно надо ждать 6-8 недель, быстрее доставка бывает редко. Пусть везут из США в США - тогда 4-5 недель. Ну и плюс время на установку тоже нужно.


Это совсем не так быстро и дёшево как Вы говорите.


Крафтвэй взят только потому, что у него есть быстрый конфигуратор доступный всем.
У HP такой тоже есть, но цены будут повыше.
У прочих вендоров или нет такого конфигуратора, или я про него не знаю.
uborshizzza
22 май, 2013 09:52 (UTC)
А сколько устройств подобного класса сейчас использует ЖЖ7
(без темы) - _luden_ - 22 май, 2013 09:59 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 10:01 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 10:04 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 10:12 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 10:52 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 13:28 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 13:34 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:04 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:06 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:18 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:20 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:32 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:43 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 19:49 (UTC) - Развернуть
(без темы) - _luden_ - 23 май, 2013 04:58 (UTC) - Развернуть
(без темы) - uborshizzza - 23 май, 2013 05:14 (UTC) - Развернуть
(без темы) - _luden_ - 23 май, 2013 05:27 (UTC) - Развернуть
mindfactor
22 май, 2013 10:53 (UTC)
>Средний корпоративный СДХ терабайт на 100 - порядка 10 килобаксов.

Щито ? Это только голая коробка от СХД будет стоить. Если как следует поискать про распрадажам. А ещё сетевые интерфейсы, сами диски, обслуживание этой железки...
uborshizzza
22 май, 2013 13:26 (UTC)
Хорошо, СДХ начального уровня. И того много будет
mindfactor
22 май, 2013 13:36 (UTC)
Смотрим на стоимость SATA диска 7200 на 2 TB - до 3 тыс рублей
А потом смотрим на стоимость SAS 15к диска на 600 Гб - 9 тыс рублей

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

Потом, кстати, можно ещё на ентерпарйзовые SSD посмотреть, где 500 Гб 50 тыс рублей стоят.

Edited at 2013-05-22 13:40 (UTC)
_luden_
22 май, 2013 17:22 (UTC)
Оптимист однако :)
3 тыра за 2 ТБ :)
Если брать диски не на рынке, то думаю на 4 умножить надо :)
(без темы) - mindfactor - 22 май, 2013 17:27 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 17:28 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 17:59 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:05 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:11 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:16 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:23 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:29 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:36 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:45 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 19:52 (UTC) - Развернуть
(без темы) - _luden_ - 23 май, 2013 04:41 (UTC) - Развернуть
(без темы) - mindfactor - 22 май, 2013 18:28 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:38 (UTC) - Развернуть
(без темы) - mindfactor - 22 май, 2013 18:42 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 18:46 (UTC) - Развернуть
(без темы) - mindfactor - 22 май, 2013 18:57 (UTC) - Развернуть
(без темы) - _luden_ - 22 май, 2013 19:00 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 19:54 (UTC) - Развернуть
(без темы) - mindfactor - 23 май, 2013 05:08 (UTC) - Развернуть
(без темы) - uborshizzza - 22 май, 2013 18:05 (UTC) - Развернуть
(без темы) - mindfactor - 23 май, 2013 05:06 (UTC) - Развернуть
uborshizzza
22 май, 2013 18:02 (UTC)
Ну я же четко написал - компьютеры с двумя терабайтниками за 2 килобакса. Не за 10 тыщ рублей.

Господа, я понимаю, что работа сисадмином - это облагораживает, но арифметику все-таки забывать не надо
(без темы) - mindfactor - 23 май, 2013 05:14 (UTC) - Развернуть
(без темы) - uborshizzza - 23 май, 2013 05:18 (UTC) - Развернуть
(без темы) - mindfactor - 23 май, 2013 05:26 (UTC) - Развернуть
(без темы) - uborshizzza - 23 май, 2013 05:37 (UTC) - Развернуть
(без темы) - mindfactor - 23 май, 2013 05:43 (UTC) - Развернуть
_luden_
22 май, 2013 13:34 (UTC)
Ну не совсем голая, но совсем не 100 ТБ.
mindfactor
22 май, 2013 13:45 (UTC)
>Ну не совсем голая

Ну, там будет блок питания, вентиляторы, да :) Ещё один дисковый контроллер может быть.
_luden_
22 май, 2013 13:47 (UTC)
Ну это пессимизм.
VNX5100 с минимумом дисков, думаю, в десятку тысяч можно вписать.
Если, конечно, покупать не один :)

Но это максимум терабайт 15 :)
На медленных дисках :)
ragnaroek
22 май, 2013 09:04 (UTC)
Юзвери кстати тоже руку прикладывают, навешивая по стопицот ссылок на аггрегаторы статистики и т. п.
( 59 комментариев — Порадовать комментарием )

Latest Month

Август 2019
Вс Пн Вт Ср Чт Пт Сб
    123
45678910
11121314151617
18192021222324
25262728293031

Метки

Разработано LiveJournal.com
Designed by Tiffany Chow