Лекция: Проблемы масштабирования

 

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

 

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

Билл Гейтс, 1981 год

 

Функциональность OZON.ru создавалась и развивалась инкрементально: магазин состоял из модулей, которые взаимодействовали между собой. При разработке каждого из модулей задавались определенные параметры нагрузки: например, интернет‑витрина должна была выдерживать пять тысяч посетителей в день. Также нужно было решить вопрос синхронизации интернет‑витрины со складом: либо витрина и склад существуют совместно, но тогда они могут заметно тормозить друг друга при больших объемах, либо же они разделены, но в этом случае возникает серьезная проблема синхронизации данных.

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

Много проблем доставляли отслеживание состояния заказа (на тот момент было более 10 статусов: «заказ оплачен», «условно оплачен», «в комплектации» и так далее), идентификация его на складе, а также контроль за отправкой и доставкой. Логистика заказов (прием товара, его обработка, хранение, поиск позиций на складе, отправка, контроль за доставкой) не была заложена в проект и создавалась по мере развития самой системы, подстраиваясь под постоянный рост числа заказов. Другими словами, та логистика, которая была хороша при тридцати заказах в день, уже не годилась для четырехсот. Как именно это должно работать, никто не знал – придумывалось все на ходу. Опыта создания логистики для интернет‑магазинов на тот момент в России не было вообще.

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

В общем, систему писали «по живому», пробовали на клиентах, переделывали, снова писали, снова переделывали – и так без конца.

 

еще рефераты
Еще работы по информатике