Мы решили, что некоторым из наших пользователей будет интересно узнать технические детали работы нашего сервиса.
Мы попросили наших разработчиков писать нам небольшие заметки по ходу разработки. Ниже - дайджест за прошлую неделю из первых уст.
Привет из отдела разработки SMMplanner!
На этой неделе мы расстались с одной головной болью, чему очень рады. Проблема заключалась в постоянно растущей базе картинок, которые загружают наши пользователи. На текущий момент набралось около 200 гб. За всё время существования сервиса мы уже дважды меняли сервер (кстати, надеюсь, вы даже не заметили второго переезда, он должен был пройти незаметно для вас). Мы не хотим сразу брать большой и дорогой сервер, т.к. и текущий вполне справляется. Но второй переезд был вызван именно нехваткой места на диске.
И вот свободное пространство начало опять заканчиваться. На этот раз мы подошли радикальнее и перенесли все на Amazon S3. S3 это такое бесконечное файловое хранилище, облачный сервис, предоставляемый компанией Amazon. Это было сделать не трудно, т.к. все картинки уже были там - ежедневно они копировались туда в качестве резервной копии.
Оставалось немного подправить код и всё протестировать. Переход осуществлялся ночью, чтобы во время обновления было как можно меньше пользователей онлайн. Но и не слишком поздно, чтобы в случае проблем, кто-нибудь из разработчиков смог отреагировать.
А проблема все таки возникла :) К сожалению наши тестовые сервера несколько отличаются от боевого. Оказалось, что на боевом стояла устаревшая библиотека, которая подхватилась вместо новой. Это вызывало проблемы при загрузке файлов на S3. Проблему удалось локализовать быстро, но около 5 минут у пользователей были проблемы при загрузке картинок. Еще из-за логической ошибки в скрипте переноса, удалились некоторые картинки, которые были загружены во время переноса. Но удалились не окончательно, т.к. на S3 есть возможность включения версионности. Т.е файл удаляется не сразу. Он помечается как удаленный, а окончательно удаляется через заданное время. Поэтому все картинки мы восстановили.
Версионность позволяет защитить данные. Даже если взломают наши сервера и все сотрут, мы можем все восстановить. В следующей статье как раз можно поговорить о безопасности.
Надеюсь, статья вызвала у вас интерес. Ставьте лайки, пишите комментарии, если вам было интересно.