
Самое главное в технологии Zigzag Photo – это, безусловно, то, что ценные фотографии наших пользователей надежно и безопасно сохранены, независимо от объема всего ресурса или его загруженности. К примеру, каждая фотография, загружаемая на Zigzag Photo, сохраняется в пяти разных географических местах с целью ее резервного копирования. Более того, доступ ко всем частным фотографиям защищен криптографической подписью, а не просто длинной строкой прямой ссылки.
Такая высокая степень сохранности данных стала возможной для нашей команды благодаря использованию вычислительного облака компании Amazon Web Services. Это вычислительное облако известно тем, что представляет собой ту самую информационную инфраструктуру, на которой строятся все внутренние системы всемирно - известного магазина Amazon.com.
Так вот, в основу архитектуры Zigzag Photo были заложены несколько базовых сервисов этого облака, что и помогает нам обеспечить ожидаемое качество и надежность от нашего ресурса.
Итак, несколько слов о программной архитектуре Zigzag Photo:
Все страницы сайта полностью отделены от серверной части и представляют собой исключительно HTML, CSS и JavaScript файлы. Серверная часть реализована в виде программного интерфейса (API), функции которого вызываются клиентской стороной. Такое разделение позволяет нам вносить изменения в дизайн и верстку сайта, а также добавлять новые разделы, не сбивая работу серверной стороны.
Разработка Zigzag Photo привела к созданию динамичного кластера состоящего из инстанций Amazon Elastic Compute Cloud (EC2). Размер нашего кластера можно менять в большую или меньшую сторону без изменения каких-либо настроек. Все инстанции периодически проверяют время отклика друг друга и при необходимости, автоматически запускаются дополнительные инстанции или на время отключаются бездейственные.
Примерный сценарий работы Zigzag Photo в облаке следующий. Как только фотография загрузилась, в нашей системе происходят несколько параллельных процессов, таких как: индексирование данных фотографии, создание 5 разных размеров фотографии, нанесение водяного знака на снимок, и т.д. Все эти процессы задействуют тот или иной сервис облака. Например, все фотографии хранятся в Amazon Simple Storage Service (S3). Весь индекс ведется в Amazon SimpleDB и включает в себя несколько десятков разных полей. Нанесение водяного знака и сохранение нового файла осуществляется обработчиком, запущенным в нескольких копиях на инстанции EC2. Такие функции, как изменение размера снимка, удаление всего альбома, распаковка ZIP-архива, и даже рассылка электронных сообщений пользователям, также исполняются разными обработчиками на EC2, которые асинхронно получают свои задания из разных очередей Amazon Simple Queue Service (SQS).
Благодаря тому, что проект Zigzag Photo полностью обитает в облаке, нашей команде не приходится беспокоиться о содержании собственного центра данных, что сопряжено с огромным количеством сложностей. Вместо этого, наши усилия направлены на улучшение работы существующих разделов сайта и создание новых. На этом раннем этапе развития Zigzag Photo, на ресурс поступает порядка 8000 новых фотографий каждую неделю, а online-заказы разнятся в размере от 10 Мб до более чем 1 Гб.
Мы всей командой радеем за пользователей Zigzag Photo и в знак этого, в наши самые ближайшие планы входит ряд работ по оптимизации и ускорению работы всего сайта.