Модуль веб кластер поддерживает. Веб-кластер — опыт реального применения. Как меняется стоимость сопровождения проекта

Nokia 17.03.2019
Nokia

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Подобные документы

    Деловое письмо как форма официальной корреспонденции. Использование письма-благодарности для подтверждения факта, действия или произошедшей ситуации. Самые распространенные виды деловых писем. Использование рекламации для высказывания претензий к услуге.

    реферат , добавлен 11.03.2014

    Сущность, основные цели и содержание коммерческой деятельности в розничной торговле. Коммерческая деятельность розничного предприятия как объекта управления. Методика анализа эффективности системы управления коммерческой деятельностью предприятия.

    дипломная работа , добавлен 19.03.2012

    Сущность коммерческой деятельности предприятия по сбыту. Внутренняя и внешняя среда предприятия. Анализ коммерческой деятельности по сбыту КСУП "Тепличное". Мероприятия по активизации коммерческой деятельности по сбыту производимой продукции АПК.

    дипломная работа , добавлен 12.12.2007

    Сущность и значение коммерческой деятельности. Коммерческие службы. Современные тенденции в работе коммерческих служб предприятия. Анализ деятельности коммерческой службы ОАО "Игристые вина". Совершенствование организации коммерческой работы.

    курсовая работа , добавлен 06.01.2004

    Рассмотрение понятия и разновидностей имиджа лидера коммерческой структуры; психологические механизмы его формирования: гало-эффект, доминирующая потребность, соответствие стереотипам восприятия. Образ идеального руководителя коммерческой структуры.

    курсовая работа , добавлен 31.08.2013

    Понятие и особенности прогнозирования коммерческой деятельности предприятия в современных условиях. Анализ организации коммерческой деятельности на предприятии игровой индустрии ООО "Вегас-Азарт", рекомендации по совершенствованию стратегии его развития.

    дипломная работа , добавлен 20.06.2010

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

    контрольная работа , добавлен 15.04.2010

    Сущность и задачи коммерческой работы. Концепция развития потребительской кооперации Российской Федерации. Электронная коммерция, ее свойства и перспективы дальнейшего развития. Основные пути совершенствования коммерческой работы на предприятии.

    курсовая работа , добавлен 25.03.2011

Корреспонденция

Это один из древнейших газетных жанров. Само его название в переводе с латинского означает "осведомлять" и в точности соответствует главному предназначению корреспонденции.

Уже в 18 веке понятие "корреспонденция" было хорошо известно российским журналистам, но лишь век спустя его стали связывать с определенным жанром. В первую очередь в ней выделили отнюдь не сообщение, не свернутый пересказ происходящего. Основной целью корреспонденции становится истолкование, выяснение причин события, определение его значимости, ценности, прогнозирование развития и так далее. Поэтому этот жанр относят к аналитическим.

Тем не менее, исследователи выделяют два вида корреспонденции.

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

Здесь автор уже не столько привлекает внимание к событию, сколько определяет его место в череде других событий. ^ Аналитическая корреспонденция, отталкиваясь от заданной темы, представляет анализ ситуации, выявляет причинно-следственную взаимосвязь событий, фактов. Журналист как настоящий исследователь изучает процессы, происходящие в обществе, на конкретных примерах отдельно взятых фрагментов жизни. Такими корреспонденциями как бы идет накопление фактов, которые можно будет обобщить, систематизировать и вывести общие закономерности для всего общества.

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

Одним словом, основным для корреспонденции является разработка на конкретном материале актуальной темы в сравнительно нешироком масштабе. И все в ней зависит от характера ситуации. Центральным предметом корреспонденции является один значительный факт, все остальные детали, примеры, суждения служат вспомогательным материалом для его всестороннего освещения.

^ Корреспонденция имеет ряд специфических признаков.

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

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

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

Конечно, журналист использует далеко не все, выявленные им факты. Он отбирает те, которые помогут ему выработать ясную концепцию темы. Ведь чтобы правильно проанализировать ситуацию, ему необходимо проделать ряд операций.

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

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

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

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

Корреспонденция, как мы уже выяснили, имеет свою "архитектуру": вначале - повествование о центральном событии, затем - анализ и комментарий, позволяющие убедить читателя в правоте автора материала, и наконец - описание последствий центрального события. Конечно, часто бывает и так, что сообщение о факте рассредоточено по тексту, причем фактологические отрывки перемежаются с комментирующими. Здесь все зависит от замысла журналиста.

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

Но журналист может выстроить текст с учетом адекватного восприятия читателем его исследовательских находок. Он ставит перед собой задачу не описать, а объяснить. И тогда корреспонденция может быть выстроена по законам, более присущим художественно-публицистическим жанрам.

Все это сказывается и на объеме материала. Таким образом, корреспонденция может занять от ста - ста двадцати строк до целой газетной полосы.

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

Корреспонденция, о которой мы будем вести речь в данной курсовой работе, является средством передачи информации на предприятии. Одним словом, в данной главе раскрывается общее понятие термина «деловая корреспонденция» или «официальная корреспонденция».

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

К деловой корреспонденции можно отнести доклад, отчет, справку, сводку, служебное или сопроводительное письмо и т.д. Их разновидности:

· Письмо-запрос

· Письмо-напоминание

· Просьба

· Извещение

· Телеграмма

· Телефонограмма

Деловое письмо - одно из средств обмена информацией и оперативного управления разнообразными процессами деятельности организаций и учреждений.

При всем многообразии письменного делового общения его инициатор решает типовые задачи. За многолетнюю практику деловой переписки были выработаны языковые модели, позволяющие ясно и лаконично излагать мотивы, причины и цели официального послания.

Виды и разделение корреспонденции по ее функциональному воздействию представлены в Таблице 1.

Таблица 1. Распределение корреспонденции по ее функционированию

Функция деловой корреспонденции

Тип деловой корреспонденции

Информирование

Ш Служебная записка

Ш Сопроводительное письмо

Ш Письмо-сообщение

Побуждение

Ш Распоряжение

Ш Указание

Придание юридического статуса чему-либо

Ш Договор

Ш Доверенность

Инициирование, поддержание отношений

Ш Справка

Ш Гарантийное письмо

Ш Письмо-справка

Ш Письмо приглашение

Выражение предупреждения, требования, отказа

Ш Письмо-напоминание

Ш Письмо-ответ

Виды регистрации и учета корреспонденции

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

Методы регистрации и учета входящей и исходящей корреспонденции:

1. Бумажный метод.

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

2. Электронный ручной метод.

Аналог бумажному методу, с той лишь разницей, что вместо бумаги используются документы Word или Excel. Ведется заполнение электронных таблиц и форм, ведется отчетность. Этот метод так же не является затратным, он легок и прост в эксплуатации, но и у него есть свои минусы. Работнику, ведущему отчетность необходимы начальные знания ПК. У этого метода отсутствует всякое резервирование данных и опять же, поиск необходимой информации может вызвать затруднения. Так же, если произойдет сбой работы ПК или ПО информационные архивы могут потеряться или повредиться без возможности восстановления, резервные же копии необходимо регулярно обновлять и в этом так же есть свои неудобства.

3. Электронный автоматический метод.

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

Приветствую, уважаемые сообщники!

Эта статья - о том, как мы реализовали веб-кластер для новостного портала (с пиком посещений в 130 тысяч уникальных посетителей в день - это 7Тб траффика за 3 дня - выборы и 2 последующих. Сейчас в среднем кластер раздаёт 35-40 Тб траффика в месяц), о том, как по-разному понимают одинаковые задачи программисты и журналисты, о том, как можно достичь одной и той же цели, идя разными путями.

Она будет интересна тем, кто хочет построить легко масштабируемый географически распределённый веб-кластер, не вкладывая астрономических сумм в оборудование (а по меркам телевидения - будут вообще смешные суммы).

Я больше чем уверен, что маркетологи, толкающие убер-решения свежевыпущенных продуктов, имеющих в своём названии слова «масштабируемый веб-кластер» или «horizontal infinite scalable web cluster», меня возненавидят.

Я больше чем уверен, что конкуренты наших клиентов будут удивлены простотой решения, которое мы использовали.

Я не буду приводить банальных конфигов, которые можно найти в любом тоториале по настройке PHP, Nginx и Firebird (у последнего, строго говоря, и настраивать-то нечего - всё работает с пол-пинка «из коробки») и вообще буду рассказывать о сути решения, а не о том, какая из версий PHP лучше.

Опытным проектировщикам вряд ли будет интересно - они и так всё знают, а вот тем, кто только начинает путь на нелёгком поприще проектирования систем сложнее, чем «Hello, World!» наверняка будет что подчерпнуть - решение в боевом режиме уже скоро как 2 года, при этом никаких архитектурных проблем не возникало (хотя выход из строя сразу двух жёстких дисков на двух из трёх узлов был, но никто ничего не заметил - сайты чуть-чуть медленнее открывались, чем обычно).

Итак, пара слов, с чего всё начиналось. Жил-был сайтик группы независимых журналистов, которые очень мечтали стать настоящим телевидением (забегая вперёд, скажу, что у них это получилось - они создали своё, вполне успешное телевидение с «блэкджеком и шл...» - далее по тексту). Страна у нас маленькая, ничего страшного не происходит (и мы этому рады), но раз в 4 года у нас традиционно проходят выборы в Парламент. Который уже традиционно никак не избирает Президента. (Не бойтесь, политики тут не будет, это просто для общего понимания момента).

Разумеется, в период перед выборами и немного после все интернет СМИ очень сильно колбасит. Некоторые сайты не просто лежат, они валяются, некоторые переодически пытаются выдать хотя бы строчку текста, но проблема всеобщая и известная - сайты не справляются с наплывом посетителей. Я про обычные, текстовые сайты. А у наших клиентов сайт был необычный. Дело в том, что у них было и видео - новостные сюжеты, они производили 10 гигабайт в месяц - в то время, сейчас они создают такое количество видео в день. Ко всему прочему (это последнее упоминание политики, честное слово) эти журналисты не отличались особой лояльностью к власти. Говорили и писали что хотели. Совсем обнаглели, да? Мы всегда себя позиционируем как наёмников - клиент предлагает задачу, мы предлагаем её решение. Всё остальное нас не интересует, мы соблюдаем нейтралитет.

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

(Это упрощённая схема на ноябрь, в дальнейшем почти все сервера перенесли к Hetzner-у, так как у Netdirekt-a в то время постоянно колбасило канал. Сейчас у них с сетью ситуация обстоит намного лучше).
Обычные посетители видят один из 3-х серверов, при этом, мы сделали так, что «лёгкий» контент в виде текста и картинок все посетители из Молдовы тянули с одного их 3-х, а «тяжёлый» контент (видео) - тянули с сервера, расположенного у местного провайдера. Внешние посетители просто не видели молдавское зеркало и весь контент тянули с одного из немецких серверов.

Вот, что у нас получилось с посетителями в результате (каждая часть портала имеет свой счётчик):

Эта схема позволяет сменить управляющий сервер в любой момент, сама проверяет доступность узлов кластера, легко масштабируется - в качестве резервного рассматривался и Amazon EC – более того, Amazon EC даже использовался некоторое время для видеостриминга (около 4-х месяцев), но из-за дороговизны траффика решено было всё-таки стриминг-ноды перенести к немецкому Hetzner-у.
Непосредственно за 2 недели до часа «Х» мы взяли резервные сервера и держали их наготове (но пользователи их не видели, так как держать активным сервер несколько дешевле, чем использовать его в боевом режиме - только из-за траффика).

Как это всё работает? Очень просто - молча и круглосуточно;).

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

Основная задача этого сервера - позволять журналистам добавлять новости. Раз в определённое время (3-5 минут) стартует скрипт, который создаёт… offline-копию сайта. Разумеется, генерируются только страницы, которые были изменены или которые нуждаются в перестройке из-за кроссылок и зависимостей.

Это очень просто реализуется при помощи генераторов (sequense) и каскадных триггеров в Firebird - процедуре требуется внести изменения только в основную страницу сайта, а каскадные триггеры обновят все зависимости, пометив каждую страницу, которая нуждается в обновлении. Пометка выставляется не в виде флага 1/0, а в виде уникального номера, получаемого на основе генератора. Скрипт создания оффлайновой версии при старте узнаёт новое значение генератора, считывает значение этого генератора от своего предыдущего запуска и пересоздаёт все страницы в полученном диапазоне. При этом, так как мы используем транзакционный механизм Firebird – скрипту глубоко наплевать, какие изменения происходят во время его выполнения - т.е. у нас всегда создаётся целостная и непротиворечивая версия сайта, что бы при этом не делали репортёры.

Таким образом, у нас создаётся мастер-копия портала (ну или двух порталов, если угодно - текстового и видео). Скрипт (как и сама админка) написан на PHP и для работы с Firebird использует ADODB – так что его довольно-таки просто можно перестраивать по желанию заказчика*.

(* Но мы собираемся избавиться от ADODB в скором времени во всех наших будущих проектах - его универсальность только вредит, так как нормального механизма работы с БД, позволяющего использовать все особенности Firebird SQL сервера (впрочем, как и остальных) там не реализовано - к примеру, невозможно перехватывать исключения при выборке из селективных процедур, нет гибкого управления транзакциями и вообще, у этих классов слишком много ИИ - я предпочитаю самостоятельно решать, когда я хочу откатить тразакцию, а когда - подтвердить.)

Единственное, что пришлось менять в настройках Firebird – это значение размера кэша страниц БД - так как количество подключений к БД очень небольшое (редко когда более 50-60 одновременных подключений), то и количество страниц экспериментальным путём было увеличено до 2048 (мы используем Classic вариант, для архитектуры Super это значение спокойно можно увеличить в 10 раз, так как там общий кэш страниц. В грядущей версии Firebird 3.0 разработчики обещают одну SMP-friendly архитектуру с общим кэшем, так что для неё вполне можно будет использовать большие значения для настроек страничного кэша).

Затем, при помощи обычного rsync-а разница изменений раскидывается по зеркалам, которые из себя представляют обычные узлы для раздачи статики на основе Nginx. Я думаю, не требуется рассказывать, на что способен 4-хядерный сервер с 12 Гигабайтами оперативки при раздаче одной только статики? ;-)

При этом, 10% канала каждой ноды (это как раз 10 или 100 мегабит, в зависимости от конкретного подключения) зарезервировано для синхронизации. Синхронизация происходит в 2 этапа - сначала синхронизируется «тяжёлый» контент - картинки и видео, потом - текст (html/xml/js).

Иногда (при загруженных каналах от управляющего сервера к зеркалам) посетитель может увидеть маленькие несоответствия в виде негрузящихся картинок и/или видеороликов - так как используется round-robin DNS, то текст страницы пользователь может получить с одного зеркала, а ссылку на видео - с другого. Это не мешает порталу работать - текст есть всегда, а картинка или видео рано или поздно объявятся.

Так как на сайтах есть динамические формочки - например, подписка на рассылку новостей - то эти формочки обрабатываются отдельно выделенным сервером (он не изображён на схеме, но сути это не меняет). Даже если предположить, что все посетители одновременно ломанутся подписываться на новости и этот сервер «ляжет» - ничего страшного не случится - формы подгружаются в iframe и на доступности новостей отсутствие этих формочек никак не отражается.

Добавление нового узла происходит просто - сначала синхронизируется новое зеркало с основной копией (это происходит параллельно с обычным режимом работы синхронизатора), затем запись добавляется в DNS и… никто ничего не замечает.

Удаление ноды происходит проще - просто убирается запись из DNS. Добавление и удаление вполне поддаются автоматизации (именно так мы поступили с частью, которая отвечала за веб-стриминг около 1000 мегабитных потоков на Amazom EC), но если вы вдруг решитесь повторять подобное - советую сначала посчитать, сколько занимает первичная синхронизация данных (у нас это 2 Гигабайта для «лёгкой версии портала» и примерно 1 Терабайт для видео, хранится только несколько последних месяцев).

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

Отдельно стоит упомянуть про подсчёты отображений новости. У меня сложилось впечатление, что любимое занятие у журналистов (помимо написаний/съёмок репортажей) - это мерянье количеством посетителей той или иной новости. Примерно литр крови и километр нервов нам пришлось потратить, чтобы убедить журналистскую братию в том, что не требуется выводить изменения счётчиков в реальном времени.

Программисты прекрасно понимают, что узнать, сколько человек в настоящий момент читают статью просто невозможно, можно только посчитать количество запросов статьи с сервера, для журналистов же это одинаковые понятия. :)

Для подсчёта просмотров мы связались с Кирилом Коринским (также известным, как catap), который любезно согласился добавить фичу подсчёта просмотров URL в свою ветку Nginx-а. Ну а дальше уже всё просто - все узлы переодически опрашиваются и счётчики страниц учитываются в свойствах самой страницы. Так как счётчики (т.е. сами значения) хранятся в отдельных файлах (сейчас это по одному файлу на новость, в скором времени мы планируем сделать группу счётчиков в одном файле, чтобы уменьшить количество самих файлов) - то при синхронизации передаётся не страницы сайта целиком, а только файл-счётчик. При большом количестве файлов это создаёт дополнительную нагрузку на дисковую подсистему - поэтому, при использовании такого же подхода сразу продумывайте о том, как разбить счётчики по группам - мы остановились на разбиении счётчиков по типам новостей и дате - файлы относительно маленькие и со временем они перестают меняться, так как старые новости никого практически не интересуют.

Вот вкратце, плюсы использованного нами решения:

  1. Использование статических сайтов в качестве узлов веб-кластера позволяет свести администрирование всего кластера к нескольким рутинным задачам - обновлению операционной системы узлов и оплате траффика. Этот же пункт позволяет раскидать географически узлы кластера, что вкупе с GEO-DNS может рассматриваться вообще как некоторый аналог сети доставки контента (CDN) - по сути это оно и есть.
  2. Использование транзакционного механизма БД и перенос логики в саму БД позволяет всегда иметь целостную и логически непротиворечивую версию сайта - впрочем, я бы очень удивился, если бы «срез» данных с сервера был бы логически нецелостным.
  3. Если ожидается наплыв посетителей - то простым увеличением узлов кластера можно легко с ним справиться. В нашем случае, полный ввод нового узла в строй занимал чуть более часа для текстовой части портала и около суток (нельзя впихнуть невпихуемое) для видео. Если смириться с частичной синхронизацией сайтов и остальное «доливать» в фоне - то ввод нового узла для видео также можно сократить до часа.
  4. Административный сервер можно сделать из любого из узлов (при необходимости) - достаточно просто развернуть бэкап базы (в сжатом виде около сотни мегабайт). Весь остальной контент уже есть.

Ну и парочка минусов, чтобы не всё казалось таким безоблачным:

  1. Решение не подходит для случаев, когда есть части сайта, которые по-разному должны видеть разные пользователи, т.е. когда по условию задачи страницы генерируются персонально для каждого пользователя. В нашем случае этого оказалось и ненужно.
  2. Счётчики посещений обновляются с отставанием примерно в полчаса-час. Терпимо, но вам придётся в этом долго убеждать клиента.
  3. Больше всего проблем доставляет синхронизация с местным зеркалом - наши провайдеры ещё не продают траффик по цене в 7 евро за Терабайт и если и предоставляют 100 честных Мегабит в мир - то по очень неадекватным ценам.
  4. Проектируйте менее параноидальную систему слежения за узлами кластера - наша оказалась слишком чувствительной, пришлось переводить добавление и удаление узлов в ручной режим.

И буквально маленькая щепотка опыта, которая позволит разнообразить пресную кашу будней.

Для хранения оффлайн-копии сайта мы используем файловую систему JFS. Она себя очень хорошо зарекомендовала и при работе с множеством мелких файлов и при работе с большими файлами (по моему опыту ещё только XFS может практически моментально удалить файл размером в 200-300Гб).

Так вот - по умолчанию файловая система монтировалась с параметрами по умолчанию. Но так как у нас со временем стало очень много файлов, дисковые операции стали немного подтормаживать. Так как время последнего доступа к файлу нам не требуется, я добавил опцию «noatime» к параметрам монтирования ФС. Вот что получилось - момент добавления, думаю, вы определите сами:

Кратко повторюсь - для стабильной работы в обычном режиме используется:

  • 3 сервера для раздачи контента
  • 2 сервера для «админки»
  • 2 сервера для DNS и системы слежения за остальными серверами.
Узлы кластера разбросаны географически и находятся у разных провайдеров.
В случае ожидаемых событий, привлекающих большое количество посетителей - подключаются дополнительные сервера для раздачи контента.

В месяц потребляется около 40Тб траффика, общий объём контента - чуть более 1 Терабайта, видеоконтент хранится около 3-х месяцев.

Я с удовольствием отвечу на вопросы хабрасообщества.

Модуль Веб-кластер – это комбинация технологических решений, которые позволяют распределить один сайт на несколько серверов, решая тем самым несколько задач: обеспечение высокой доступности сайта, его масштабирование в условиях возрастающей нагрузки, балансирование нагрузки, трафика, данных между несколькими серверами. С веб-кластером Вы повысите производительность, масштабируемость и надежность вашего проекта!

Для каких задач нужен веб-кластер?

Кластер необходим для гибкого решения задач увеличения нагрузки и повышения стабильности сервиса. Так, при увеличении посещаемости можно быстро добавить в кластер новые серверы. А в случае выхода из строя одного из серверов кластера система продолжает беспрерывно обслуживать посетителей / клиентов. Не менее важная задача – это балансирование нагрузки, траффика, данных между несколькими серверами. При этому система позволяет снимать резервные копии со специально выделенных узлов кластера, не влияя на работу сайта, не выключая машины и не тормозя их. Отдельно стоят задачи гео-распределения. Когда вы запускаете географический веб-кластер, он позволяет поднимать целые группы серверов. В каждой из этих групп работает свой мастер – в независимых друг от друга датацентрах. Таким образом, ваши сайты, ваш бизнес полностью защищены от недоступности самих датацентров и каналов связи.

Как работает веб-кластер 1С Битрикс?

Рассмотрим какие технологии использует веб-кластер 1С Битрикс:

  • Для БД – это вертикальный шардинг (вынесение модулей на отдельные серверы MySQL)
  • Репликация MySQL и балансирование нагрузки между серверами
  • Распределенный кеш данных (memcached)
  • Непрерывность сессий между веб-серверами (хранение сессий в базе данных)

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

Секреты высоких нагрузок на 1С Битрикс с веб-кластером

1. MySQL Sharding (шардинг)

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



В отдельные базы можно вынести следующие модули продукта: , .

2. Репликация MySQL

Схема «master slave» реализуется средствами MySQL / MariaDB. Этот стек технологии достаточно хорошо описан и используется широко.

3. Балансировщик для выравнивания нагрузки между серверами

Остановимся на балансировщике подробнее. Платформа «1С-Битрикс: Управление сайтом» в функционале Веб-кластер позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.



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

4. Распределенный кеш данных (под управлением: memcached)

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


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

5. Непрерывность сессий

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



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



Рекомендуем почитать

Наверх