Интервью с Антоном Весниным о компании Locum и хостинговых решениях для платформы Ruby on Rails

декабря 3, 2011  |  Published in Интервью  |  4 Comments

Сегодня в виртуальной студии RubyDev пройдет уникальное интервью. Уникальное оно потому, что мы будем говорить не о самой разработке, но о размещении проектов в интернете и о бизнесе построеном на предоставлении хостинговых услуг. Расскажет нам обо всем этом наш гость — Антон Веснин, который будет представлять компанию Locum и расскажет, почему хороший хостинг для Rails проектов не обзательно должен быть заграничным.

Добрый день, Антон. Представся пожалуйста, читателям RubyDev и расскажи немного о себе.

Меня зовут Антон Веснин. На данный момент являюсь техническим директором проекта Locum Hosting House. Помимо основной деятельности занимаюсь велоспортом.

Расскажи пожалуйста, что за компания такая Locum и какого рода услуги предоставляет?

Мы на рынке уже несколько лет. Началось все с того, что мы видели явный вакуум на рынке хостинга для современных технологий. Таких как ruby on rails или, например, django. Несмотря на то, что рынок услуг хостинга был и остается переполненным, обычно речь идет о стандартном PHP+MYSQL, чего достаточно далеко не всем.
На данный момент предоставляем услуги как хостинга, так  виртуальных выделенных серверов (VDS) и регистрации доменов. Для некоторых клиентов мы так же оказываем консалтинговые услуги в вопросах разработки на Ruby On Rails. Это позволяет делать нам огромный опыт работы с совершенно разными проектами в этой области. Не редко бывает так, что вначале у нас размещается какой-то стартап, а после вырастает и переезжает на выделенный сервер, предложенной нами конфигурации.

Можешь рассказать подробнее об истории возникновения компании, что позволило выжить и развиваться в жестких конкурентных условиях, ведь сейчас Rails и Django хостинг предоставляют многие компании,  и почему такое название — Locum?

На деле не так уж много кто и предоставляет хостинг для rails и Django, а уж тем более мало кто в том виде, в котором делаем это мы — где сейчас найдешь полную поддержку rvm, выбор разных версий ruby, возможность ставить свои gem и другие интересные фичи вроде mongodb? Конечно, конкуренция есть и она, в том числе, заставляет нас развиваться и постоянно улучшать сервис, добавлять новые возможности, внедрять новые технологии и т.п. Помимо этого все, кто общался с нашим саппортом подтвердят — чтобы такая компетенция инженеров в rails была и самом ruby — очень редкий случай. И, опять же, тесное взаимодействие с сообществом RoR и Django разработчиков делает свое дело. Бывали и проблемные времена, например на нас почему-то в одно время нас стали очень часто ДДОС-ить, причем совершенно по непонятным причинам — вроде никому мы зла не делаем. Сил и ресурсов на отражение атак уходило не мало, ну а потом ситуация нормализовалась.История с именем немного смешная вышла. Очевидно, что перед нами стояла задача придумать такое имя, чтобы был доступен домен, оно имело какое-то отношение к хостингу и звучало более-менее нормально. Мы перебирали разные варианты, которые сейчас никто уже и не вспомнит, пробовали подбирать комбинации на разных языках.

Название произошло от латинского корня «loc», что означает место (раз уж мы предоставляем место под веб-проекты), как английское «location». Правда потом выяснилось, что мы ошиблись с окончанием, и грамматически верно было бы locus или loca, но название уже прижилось. Суть-то ведь не в названии а в том, что за этим стоит.

В гуглогруппе RoR2Ru при вопросе: «Посоветуйте какой-нибудь хостинг или VDS в России.» всегда Locum является первым, я бы даже сказал, дефолтным ответом, в чем заключается такая популярность?

Наверное в тесном сотрудничестве нас с RoR-сообществом. Интересный факт: у нас в компании кроме бухгалтерии, наверное, нет ни одного сотрудника, кто не написал ни строчку ruby-кода. Мы сами все являемся членами сообщества, потому четко чувствуем его потребности. Так же любой, кто общался с нашей технической поддержкой может подтвердить — уровень компетенции и понимания очень высок. Интересный момент еще заключается в том, что у нас политика «навязывания правильного подхода». Например, все рассчитано на использование capistrano, систем контроля версий, оптимизации отдачи статики и тп. Без преувеличения можно сказать, что некоторые начинающие разработчики, просто используя нашу хостинг-платформу и общаясь с нами, обучились полезным приемам и средствам, которые пригодятся им в будущем.

 

Почему Locum позиционирует себя именно как хостинг для Rails проектов? Узкая, относительно свободная ниша или любовь к Ruby и Rails?

На самом деле это не совсем верное представление. Мы позиционируем себя как хостинг для rails проектов в основном только среди Rails-сообщества. Наверное разработчик на Django мог бы задать аналогичный вопрос: «почему вы позиционируете себя как хостинг для django?». Но так же верно и то, что в отрасли rails-ориентированного хостинга мы все-таки продвинулись намного дальше. Взять хотя бы одно из последних наших улучшений — полноценная поддержка различных версий ruby и rails через rvm и bundler.

А расскажи, если не секрет о самых больших и самых любимых клиентах Locum’а.

Мы предпочтем тут пока не хвастаться. Скажем только, что несколько крупных веб-студий сотрудничают с нами, размещая свои проекты, есть и самостоятельные отдельные. Много компаний наших друзей и коллег. Как уже и упоминалось выше — мы стараемся больше уделять внимания молодым и перспективным проектам, которые потом перерастают в крупные. В некоторых мы и сами иногда готовы участвовать.

Мне как реальному пользователю панели управления Locum она очень понравилась. Я пользовался несколькими хостингами (достаточно известными нужно заметить, правда для php проектов) и те панели управления aka «кабинет пользователя» мне казались очень монструозными. Панель управления Locum это ваша собственная разработка?

Спасибо за теплые слова. Да, наша панель — это собственная разработка. Веб-часть написана на ruby on rails, но сама система намного сложнее чем просто веб. Панель управления хостингом это распределенное приложение, которое работает на нескольких машинах одновременно. Основные компоненты:

- Веб интерфейс (то,  с чем вы обычно и имеете дело)

- Очередь задач

- Маленькие исполнители задач, которые расположены на каждом сервере.

Думаю из описания примерно понятно как организована работа, так же об этому у нас была статья в блоге: .

Кусочек Locum’а (кликабельно)

Что касается подхода, использованного при разработке, то мы, как ценители Ruby On Rails, решили использовать подход, при котором от пользователя требуется минимум настроек. Заранее предполагается что все настроено уже оптимально. Пользователю не нужно выбирать в какой директории будет размещаться его проект, создавать базу отдельно и т.п. Вообще, сама идея ввести единицу «проект», объединяющую под собой набор файлов и директорий, базы данных и некоторых доменов, показалась нам очень удачной. При таком подходе, чтобы запустить свой сайт нужно всего несколько кликов.

Когда мы только начинали, у нас были разные взгляды на проблему, были идеи применить или доработать какое-то готовое решение в качестве панели управления, чтобы сэкономить время, но в итоге оказалось проще написать все самим. То, что мы видим на рынке готовых решений панелей управления не соответствовало нашей идеологии «проектной» работы, а так же не поддерживала все те интересные и новые технологии, какие хотелось предоставлять нам. Конечно, PHP+MYSQL  — это тоже неплохо, но хочется дать и rails и MongoDB, тут-то и приходится все писать самим.

 

Расскажи, а Locum имеет какое-нибудь отношение к open-source движению? Какие open-source проекты разработаны в Locum, в каких участвовали сотрудники Locum?

Пока что вклад наш в opensource сообщество, как компании, не велик. Но все наши сотрудники поддерживают эту идею. У некоторых из них есть свои opensource проекты, какие-то gem для Ruby или что-то еще. У меня вот даже есть небольшой кусок своего кода в ядре FreeBSD, точнее в драйвере USB. По крайней мере так было несколько лет назад, не уверен, что этот код сохранился до сих пор. Так же мы внедрили у себя в компании много открытых решений именно для своих нужд — повсеместно используются операционные системы на базе GNU/Linux, открытые офисные пакеты и средства разработки. Так же, раз мы используем много открытого ПО в своей работе, то иногда обнаруживаем в нем какие-либо ошибки или недочеты и исправляем их, высылая патчи разработчикам. Очень надеемся что в будущем мы сможем вести какие-то открытые проекты и приносить больше пользы для сообщества.

Ок. полугода назад  Locum перешел на почасовую оплату, с чем связано такое решение?

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

Читатели RubyDev преимущественно начинающие разработчики и многим очень интересной будет тема деплоя своих приложений на хостинг и VDS от Locum, расскажите как происходит деплой и как Locum упрощает эту задачу?

У нас все рассчитано на деплой с использованием capistrano. Ситуация периодически меняется, потому в нашем блоге обычно можно найти актуальную информацию о том как все организовано сейчас. Сейчас все стало очень просто — deploy.rb генерируется из панели управления, нужно только вписать свой репозиторий, настроить авторизацию и можно размещать проект при помощи capistrano. В этой статье мы постарались объяснить как сейчас все работает, какие проблемы могут возникать и как их избежать. Когда что-то изменится, мы актуализируем информацию. Так же в планах записать скринкаст по размещению проекта, но пока не очень понятно насколько это востребовано — проблемы возникают редко у кого.

Мне всегда было интересно как работает хостинговая компания, можешь поделиться техническими подробностями?

Отчего же не поделиться. Понятно, что все детали тут не изложить, но общее представление — запросто. На всех наших хостинговых серверах используется операционная система на базе GNU\Linux. Обычно это дистрибутив debian. Железо отличается в зависимости от задач, так под сервер баз данных это одно, а под сервер виртуализации — другое. Мы стараемся брать типовое железо, аналог которого всегда легко найти. Это обусловлено необходимостью резервирования и некоторыми экономическими факторами.

На хостинг серверах используются разные веб-серверы. Для php это apache, в нем же работает и django (через mod_wsgi), все apache находятся за nginx, который занимается отдачей статики, проксированием и балансировкой нагрузки.

Для rails и rack проектов используется unicorn. У этого решения долгая история. Вначале, еще в первые месяцы нашей работы это был thin. Выбран он был из-за того, что работал быстрее чем mongrel, а так же умел слушать не только порт, а еще и unix-сокет, что намного облегчала организацию его работы в многопользовательской среде. Затем была миграция на passenger, который вначале показался «серебряной пулей», но когда проектов стало много — оказался не работоспособен. Попытки связаться с phusion и как-то избавить его от этих недостатков ни к чему не привели. Видимо это было архитектурной проблемой. Возможно сейчас она решена, но нам уже это не интересно, так как мы перешли на unicorn и он нас абсолютно устраивает. А уж особенно сейчас, когда еще и версию ruby можно выбирать.

Антон, в твиттере компании Locum месяц назад писалось о том, что сервера переезжают в новый датацентр. На чем основывалось принятие такого решения и какие получились выгоды от переезда?

Да, мы поменяли московский Дата-центр (как известно, у нас часть оборудования размещается еще и в Германии), причинами послужило то, что сервис старого ДЦ нас совсем перестал устраивать. Помимо некоторых проблем со связью, последней каплей послужил слишком «советский» подход к решению всех проблем. Например, независимо от того что произошло, никто из наших сотрудников не мог попасть в дата-центр ночью в выходной день. Система оформления пропусков и разрешений на внос и вынос оборудования была настолько сложна, что от этого страдали все. В итоге было принято волевое решение, что нужно уезжать. Да — это простой, да — это смена адресов и все проблемы, из нее вытекающие, но ради дальнейшей стабильности мы пошли на этот шаг и он себя оправдал. Ни сколько не жалеем.

Можешь дать какую-то среднюю характеристику проектов, которые хостятся на Locum, например какой самый предпочитаемый VDS и DS, какая посещаемость, используемая БД, используется ли memcached, какой сервер или связка используется и т.д.?

Самый популярный VDS, как это не удивительно — самый дешевый, т.е. «шот+», но это только для мелких проектов, для чего-то более нагруженного он не подходит, потому многие потом переходят на более производительный вариант. Из тарифов хостинга «плекс» и «оптима» идут впереди всех. Оптима за то так и назван, что для хорошего проекта он оптимален по лимитам и цене.

Абсолютным лидером среди баз данных, конечно же, используется mysql. Детальной статистики по memcached нет, потому что он ее ни в каком виде не хранит, но им пользуются, и пользуются довольно часто. Тем более что за него никак не приходится доплачивать.

Связка для Rails проектов — nginx+unicorn. Она настолько хорошо себя проявила и зарекомендовала, что те наши клиенты, кто вырастает до собственных выделенных серверов чаще всего сохраняют на них всю структуру и связку, которую мы предлагаем на хостинге. Это еще раз подтверждает оправданность этого выбора. Если интересно — самым популярным готовым продуктом на rails, что запускается у нас, является redmine или его модификация chiliproject.

Антон, расскажи пожалуйста какие нововведения планируются в обозримом будущем?

Сейчас тестируем различные варианты server side javascript, например . Пока, к сожалению, они довольно сыры, но скорее всего мы что-нибудь придумаем.

Другим направлением развития будет упрощение размещения проектов, базирующихся на готовых продуктах. Разного рода автоматическая установка cms и т.п. Чтобы тот же redmine в рабочем виде можно было бы получить в несколько кликов. Сейчас это тоже не сложно, но все равно есть над чем работать. Ну а в общем — мы всегда следим за тенденциями в области и стараемся внедрять любые новые технологии, которые нужны нашим клиентам, как только они становятся достаточно стабильны, для промышленного использования. Так же мы всегда слушаем пожелания клиентов.

Имеется ли у Locum какое-нибудь предустановленное решение для мониторинга серверов, God, Monit, или Bluepill о котором рассказывал Акжан Абдулин в одном из интервью для RubyDev?

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

Расскажи пожалуйста о хостинге Rails проектов, я так понимаю, что хостинг Rails годится только потестировать проект и показать его клиенту, ведь Rails любит кушать много ресурсов или я не прав?

Это одно из превратных представлений о rails, с которым мы успешно боремся уже несколько лет. На деле все очень зависит от самого приложения и, конечно же, нагрузки на него. Конечно, для крупного проекта с огромным посещением обычный хостинг не подойдет, но для большинства сайтов средней величины он отлично подходит. Более того — не придется настраивать вдс, выбирать сервер приложений и делать много чего еще, а ведь разработчик далеко не всегда является еще и хорошим системным администратором — это скорее исключение, чем правило. Это поняли многие наши пользователи, не редко получается что их rails-проекты стали работать быстрее и лучше на нашем хостинге, чем делали это на виртуальных серверах, что они использовали ранее. Rails действительно довольно требовательный к ресурсам фреймворк, но с ruby 1.9.3 все стало намного лучше как в плане быстродействия, так и в плане потребления оперативной памяти.

Какая версия Rails является предустановленной на Rails хостинге, какие gem’ы и есть ли возможность устанавливать собственные gem’ы?

Сейчас, после того, как мы полностью перешли на rvm, говорить о какой-то предустановленной версии не совсем корректно. Все нужно ставить у себя в bundle, для каждого проекта. Безусловно, возможность устанавливать собственные gem присутствует, все делается стандартными средствами, такими как gem и bundle. Может возникнуть резонный вопрос — почему не rvm gemsets, раз уж используется rvm? Ответ довольно прост — они принципиально не предназначены для разделяемой многопользовательской среды, bundler намного безопаснее, да и современные rails проекты изначально рассчитаны на его использование.

Сейчас популярность набирают Cloud-решения, планируется ли в Locum предоставлять  услуги облачного хостинга  и вообще расширять перечень оказываемых услуг?

Да, популярность их, несомненно растет. Более того, я уверен, что в итоге они вытеснят остальные варианты, но ждать нам этого момента еще дольше, чем полного перехода на ipv6. Пока что, так называемый, public cloud слишком небезопасен на мой взгляд, но индустрия стремительно развивается. Мы начинали тестировать вопрос внедрения некоторых облачных решений, в процессе этого было обнаружено много проблем, которые решаются не быстро и не дешево, но мы, конечно же, будем мониторить ситуацию, когда-нибудь переход на облако должен состояться, вот биллинг-то почасовой уже работает ведь. Стоит отметить, правда, что реальной необходимости в облачных платформах у большинства проектов нет, более того, часто она увеличит суммарную стоимость владения, при этом не давая каких-то заметных плюсов. Многие пытаются пробовать такие решения, просто следуя за модой, но это и хорошо — за счет этого индустрия будет развиваться быстрее, а облачные решения становиться все надежнее и доступнее. Мы только за.

Что касается других аспектов расширения перечня предоставляемых услуг, то нам интересен сейчас SaaS и консалтинг крупных проектов на rails в вопросах оптимизации и безопасности. Консалтингом мы уже занимаемся, но не афишируем пока это массово на сайте, но обращения есть.

Так же есть мысли разработке некоторых проектов (не любых, а только действительно интересных нам) на заказ, но это, скорее всего будет отдельная от Locum история, хотя и связанная.

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

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

Лично я советую всем, кто хочет пойти первым путем, перейти куда-нибудь из области IT и высоких технологий — пожалейте в конце концов людей, нам же пользоваться потом этим :). Ну а тем, кто действительно хочет делать качественный продукт, чтобы было чем гордиться, чтобы было приятно что не просто смог организовать бизнес, но и сделал что-то действительно полезное и нужное людям, хочется напомнить об экономической составляющей. Если вы просто IT-специалист, который знает как сделать действительно хороший продукт — этого не достаточно. Не достаточно, чтобы выжить на рынке и получать прибыль. Обязательно привлеките кого-то, кто детально просчитает вам экономическую составляющую, это поможет вам избежать многих ошибочных решений.

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

 

Ссылки:

Личное мнение:
Компания Locum предоставляет действительно хороший и дешевый хостинг. Проект RubyDev с самого начала живет на серверах компании Locum и живет достаточно уютно. Простои случаются крайне редко, точнее встречались редко и виной всему был датацентр который компанию Locum успешно поменяла на новый. Поддержка в Locum’е замечательная, такое чувство, что люди совсем не спят. Locum не скрывает своих проблем, в Twitter’е компании или группе (в Twittere активнее) всегда можно узнать о нововведениях или о причинах и сроках решения редких неполадок. Я пользовался несколькими хостингами и большинство из них умалчивали о простоях — у Locum всегда все на виду и время простоев возмещается, что очень радует не просто потому, что ты платишь только за то время, которое сайт доступен, но потому, что хорошее отношение.

Responses

  1. anonymouse says:

    декабря 3, 2011 at 22:04 (#)

    Классное интервью, понравились и вопросы, и ответы. Здорово, что теперь в Локуме можно использовать Rails 3.1 и Ruby 1.9.2

  2. says:

    декабря 4, 2011 at 05:05 (#)

    Спасибо за интересное интервью, большое спасибо! Одно из самых лучших на сайте!!!

  3. says:

    декабря 5, 2011 at 06:55 (#)

    Locum действительно очень достойный Rails хостинг, в России таких нет на сегодяшний день. Уже скоро будет год как пользуюсь их услугами.

  4. tankard says:

    декабря 5, 2011 at 07:50 (#)

    Ребята молодцы. Желаю им успеха. Но не мешало бы еще таких хостингов. Конкуренция это всегда хорошо(для потребителей по крайней мере)

Leave a Response

Для подсветки кода используйте BB - коды: [language]...[/language], где language может быть: ruby, javascript, css, html.