В этой статье мы хотим поделиться тем, как мы выбирали
Следует отметить, что все наши технические специалисты, по большей части, чистые разработчики софта, а не системные администраторы, и, соответственно, в меньшей степени специализируются во многих вещах, связанных с созданием кластеров серверов и их администрированием.
Первый опыт
Когда наш сервис находился еще только на стадии идеи и мы делали первый прототип Воркзиллы, вопрос с
Пользователей, кроме наших друзей, у нас тогда не было, и вопросов с надежностью данного решения не возникало. Естественно, что перед первым публичным релизом нужно было выбрать что-то посерьезнее. Мы наткнулись на
Тех поддержка работала медленно, возникали постоянные сбои в работе, в том числе без предупреждения (с завидной постоянностью с нас требовали только деньги). Апгрейд железа нужно было заказывать заранее, за несколько дней.
Ради справедливости отмечу, что это было достаточно давно и не берусь утверждать, что сейчас дела там обстоят так же, но мы свои уроки извлекли.
В последствии мы решили хостить все свои сервера в клауде Amazon EC2. Даже несмотря на то, что они упали на 2 дня сразу после нашей миграции на их платформу, мы продолжали им доверять и это оправдалось.
Почему клауд?
Приведу несколько причин, но далеко не все, почему в клауде хоститься намного удобнее.
1. Можно очень быстро и легко создать новый сервер. Причем создавать можно как абсолютно пустой сервер, так и клонировать существующий со всеми настройками. Конкретно нам это сэкономило огромное количество времени.
2. Удобно настраивать доступ к сетевым портам для каждого сервера. Всего за пару кликов можно ограничить или разрешить доступ к любому сетевому порту сервера или группы серверов.
3. Диски можно переносить от сервера к серверу быстро и без ненужного копирования.
4. Можно забекапить целый сервер или диск всего за 3 клика.
5. Прозрачный и понятный централизованный биллинг.
Таких причин намного больше, но нам того, что я перечислил, уже было более чем достаточно.
Почему Амазон?
Здесь решающую роль сыграли цена, множество других доступных сервисов наряду с EC2, впечатляющая скорость разработки новых сервисов и улучшение уже существующих. Немаловажную роль сыграла и растущая популярность клауда (это важно, если вы не исключаете возможность продажи компании).
Сервера Воркзиллы
Все наши сервера работают в Ирландии. Пинг с Европой ожидаемо оказался лучше, чем с Америкой или Азией. Сервера именно в этих регионах доступны в данный момент.
Все сервера можно разделить на несколько групп по их назначению.
1. Вспомогательные сервера
Первый сервер этой группы является VPN сервером, а также нодой для мониторинга всей системы. Мы используем Nagios и Munin. Тип инстанса t1.micro стоимостью всего 15 usd в месяц. Если интересно, можем написать подробную статью о том, как можно это все настроить.
Второй сервер — наш SVN репозиторий. Там мы также хостим нашу систему документооборота и систему управления проектами (об этом мы расскажем позже). Тип инстанса t1.micro стоимостью всего 15 usd в месяц.
2. Сервера для разработки
В данный момент разработчики используют только один сервер, который намного слабее живого сервера и на котором установлены все компоненты реальной системы. Здесь происходит тестирование всех фитч и предрелизное тестирование. Тип
инстанса — m1.small за 85 usd в месяц.
3. Продакшн
Вебсервер. В данный момент мы используем только 1 сервер, подключенный через Амазоновксий loadbalancer для легкого добавления мощностей в дни с большими нагрузками. Обычно одного сервера более чем достаточно, если не проводится серьезных рекламных акций или пока мы не на главной странице habrahabr :)
Тип инстанса c1.medium.
Сервер БД. Там находится наше база данных на MS SQL Server. Лицензия стоит относительно дорого, но встроенные механизмы SQL Server берут на себя много головной боли по оптимизации SQL запросов и прочего.
Тип инстанса m1.large.
Файл сервер. Здесь хранятся все файлы, загруженные нашими пользователями. Тип инстанса m1.small.
Итого наш счет за месяц всего около 1000 usd, большую часть из которого занимает лицензия за использование SQL Server.
Таким образом, эти сервера позволяют выдерживать до 3000 юзеров онлайн и 25000 посещений в день. Возможно, это не так много, но Воркзилла — это не просто сайт объявлений и не обычный фриланс в том виде, в котором все привыкли его видеть. Наша бизнес логика достаточно сложна. Мы стараемся предоставлять заказчику всегда только наилучших кандидатов для его конкретного задания (Обзор уже используемых алгоритмов и тех, что мы только собираемся вводить, мы опишем в следующих статьях).
Другие сервисы AWS
В настоящее время мы работаем над построением системы автоматического масштабирования, чтобы сервера добавлялись и удалялись автоматически, в зависимости от нагрузки системы. Амазон также позволяет это сделать весьма просто.
Помимо EC2 мы используем множество других сервисов Амазона. Все они очень хорошо интегрированы друг с другом. В частности, мы используем S3 для хранения бекапов баз данных, SES — для рассылок емейлов, cloudwatch для мониторинга серверов и т.д. Этому мы еще посвятим несколько отдельных статей.
В общем, мы советуем работать с популярными клаудами для
P.S.
Наша цель — рассказать о своих проблемах и их решениях молодым командам, работающим над своими проектами. С радостью выслушаем ритику (особенно конструктивную). Пожелания о темах следующих статей — велкам.
Примерный список будущих нетехнических статей:
— Поиск первых сотрудников
— Запуск первой версии
— Поиск первых пользователей
— С какими трудностями мы столкнулись
— Удаленная работа команды
Примерный список будущих технических статей:
— Подготовка к массовой рекламной компании с JMeter
— DR — как мы решаем проблему форс мажора.
— Подробнее о бекапах
— Мониторинг сервиса с Munin, Nagios и прочее
— Проблема выбора надежного SMTP сервера
Автор: serproc