Boomstarter в облаке — кто помогает запускать новые проекты?
Привет!
Сегодня с нами Руслан Тугушев, основатель компании Boomstarter, уже 3.5 года разрабатывающей краудфандинговую платформу и консультирующей авторов проектов, как привлекать деньги на свои деньги. На момент марта 2016 года проекты привлекли уже больше 210 миллионов рублей, и Руслан рассказывает, как Microsoft Azure поддерживает платформу возможностями уже инфраструктурными. Как раз недавно Бумстартер помог собрать космическому проекту «Маяк» без семи тысяч два миллиона рублей — самый успешный проект о космосе за всю историю Boomstarter! Под катом — подробности.
Про старт Boomstarter
Boomstarter запустился очень успешно, так как мы были одной из первых платформ краудфандинга, нацеленной на русскоязычную аудиторию. С технологической точки зрения запуск прошёл плавно, без неприятных сюрпризов, благодаря тому, что мы сделали ставку на проверенные технологии. Хотя аппаратное обеспечение иногда подкидывало сюрпризы (мы запускали проект на арендованных выделенных серверах), но чаще всего мы были к ним готовы. Сейчас мы являемся одной из лидирующих платформ краудфандинга в России, нас ежемесячно посещают 300.000 уникальных посетителей, и в основном мы нацелены на русскоязычный сегмент интернета. Мы знаем, что Хабр любит космос, и у нас есть проекты, которые напрямую с ним связаны. Один из последних успешно завершившихся таковых проектов — космический спутник «Маяк», который привлёк 1 993 146 рублей на испытание и создание лётного варианта малого космического аппарата (МКА) «Маяк», который будет выведен на орбиту Земли на ракете-носителе «Союз-2» в середине 2016 года. Проект «Маяк» — самый успешный проект о космосе за всю историю Boomstarter!
Автор проекта — Александр Шаенко — дал небольшой отзыв о работе с Boomstarter: «Самое приятное, что Бумстартер — это не площадка, это сервис, где есть люди, готовые помочь советом и делом. Многие советы были услышаны и воплощены. В рамках этого проекта мы убедились в том, как много среди нас энтузиастов, инженеров и любителей космоса, что тема популяризации космонавтики интересна людям. Что люди готовы объединиться и помочь в борьбе с проблемой космического мусора.
Мы получили много полезных контактов, партнеров, которые помогают нашему проекту.
Ну и, конечно, мы получили возможность реализовать проект, о котором узнает весь мир уже в этом году!»
Про выбор облака
Мы рассмотрели все возможные варианты и опасались неочевидных проблем и как следствие, длительной недоступности сервисов. Анализируя возможные недостатки и преимущества различных подходов развертывания нашей платформы, мы закономерно решили абстрагироваться от физических проблем с серверами. При этом, разумеется, в самом начале было много сомнений, особенно в контексте того, какую платформу выбрать, но, благодаря положительным отзывам, выбор в конце концов пал на Microsoft Azure и после проведённых тестов почти все сомнения отпали. В целом, мы ожидали увидеть более стабильную работу сервиса и уменьшение затрат на расширение сервисов и поддержание работоспособности в долгосрочной перспективе. Тем, что дало нам облако, мы довольны.
Про технологии и миграцию
За исключением переноса файлового хранилища, миграция прошла неожиданно легко. Технический департамент проекта воспринял миграцию и облачную платформу с энтузиазмом. В основном были временные затраты, особенно сложной частью стал перенос файлов из Amazon S3 в хранилище Azure. Наши объёмы не позволяли осуществить перенос с хоть каким-то приемлемым даунтаймом, поэтому мы были вынуждены переносить данные инкрементально. Что хотелось бы иметь, и чего не было, так это готового инструмента для этих задач. На самом деле даже вытащить список файлов из S3 оказалось нетривиальной задачей: готовые инструменты не справлялись с нашими объёмами. Когда мы всё-таки добыли список файлов и запустили наш самописный инструмент миграции, нас ждало разочарование: оценочные расчёты времени превысили полтора месяца! Нам пришлось научить нашу утилиту распараллеливаться, в том числе для запуска на нескольких машинах. Здесь нам и помогла возможность облака быстрого введения в строй дополнительных машин.
Если же говорить о технологиях, то, так как наш проект имеет прямое отношение к финансам, мы должны были ответственно подойти (и подошли), к выбору технологий. Главными требованиями были надёжность и отсутствие уязвимостей. Конечно, нас также интересовала скорость разработки.
Архитектурно наш проект представляет собой вполне стандартное веб-приложение, в том числе для мобильных клиентов, с трёхзвенной архитектурой. В качестве основного инструмента используется Ruby On Rails. Большое количество логики вынесено на фронтенд.
Для кэширования используется отказоустойчивый Azure Redis Cache, реализация Microsoft Redis как сервиса у себя в облаке. Данные хранятся в PostgreSQL, для фоновых задач — resque. Все вполне традиционно для Ruby On Rails, да и решения, проверенные временем.
Заключение
Наша нагрузка стабильно и плавно растёт, но благодаря масштабируемости облака мы готовы и к резким всплескам — это позволяет меньше задумываться об инфраструктурных проблемах и обслуживании оборудования и сервисов и сосредоточиться на прикладных задачах. Облако оправдало все ожидания, но в этом есть еще и большая заслуга наших сотрудников — мы обдуманно подошли к задаче, все реализовали в заданные сроки (несмотря на то, что перенос файлового хранилища пришлось задержать на некоторое время) и аккуратно перенесли инфраструктуру.