Чем облачная установка лучше локальной и почему мы работаем только в формате SaaS

В одном из прошлых постов я описывал причины, по которым компании интересуются нашей программой, но не решаются на её использование. Одной из таких причин является то, что картодромы не хотят, чтобы их данные находились в облаке, и настаивают на локальной установке физически на своем картодроме.

Пример такого формата есть у наших конкурентов; их программа сделана в виде прикладного ПО, устанавливаемого на компьютер, и в их ситуации вполне логично разместить на нем же сервер и базу, раз уж требуется какая-то установка. Но это было актуально лет так 10 назад. Сейчас же интернет не является чем-то дефицитным: повсеместно распространяется IP-телефония, интернет теперь более доступен и на мобильных устройствах.

И в отличие от аналогов, мы предлагаем решение, которое изначально задумано и реализовано как веб-приложение, доступ к которому происходит через браузер.

Но у нас есть и опыт локальной установки — первые месяцы мы размещали Авенду непосредственно на картодроме Le Mans, на одном из компьютеров. И за это время, надо сказать, мы хорошо оценили количество граблей на этом пути.

В этом посте я хочу сравнить два вида установок и объяснить, почему мы пришли именно к формату SaaS. Я выделил 4 главных критерия для проведения различий и привел несколько ситуаций по каждому из них. Итак, давайте начнем.

I. Установка, настройка и поддержка сервера

1. Работа с сервером, к которому нет физического доступа, несет под собой большие риски.

Основная проблема здесь — выход оборудования из строя. Осознают ли владельцы компаний потери из-за простоя сервера в таком случае?

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

Но данные риски исключены при работе с облаком, поскольку в этом случае у вас есть поддержка, доступная вплоть до 24/7.

2. Организовать массовую поддержку серверов и обновление ПО затратно или невозможно.

В силу того, что мы регулярно улучшаем свой продукт, примерно раз в месяц нам требуется производить обновление кода на сервере (по-научному, это называется деплой). В свое время я приезжал на картодром после 12 ночи для того, чтобы исключить проблемы с обрывом связи во время обновления и несколько раз такие обновления затягивались до 5 утра по причине того, что при обновлении выявлялись частные проблемы, связанные с особенностями локального сервера и таким образом требовалась установка/обновление/настройка ПО.

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

Я не представляю возможным проводить обновление на десятках картодромов по ночам. И уж тем более не представляю, как можно покрыть риски падения сервера в этот момент, если в это время ни у нас, ни у сотрудников трассы нет физического доступа к серверу.

3. То, что у вас работало на тестовой среде, может не заработать на боевой.

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

В конечном счете дополнительное время на тестирование будет учтено в итоговой цене за продукт.

II. Безопасность

Довольно часто мне приходится слышать о том, что компании не хотят, чтобы их данные хранились где-то на стороне и чтобы у кого-либо был к доступ к этим данным.

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

Вот только есть несколько проблем:

1. В любое время, пока сервер подключен к интернету, к нему есть доступ. А значит в данном случае совершенно неуместно говорить о том, что у вас есть рубильник отключения его от внешнего мира. Это не решает ровным счетом ничего.

2. При обновлениях ПО разработчик должен получить доступ к серверу. Вариант того, что приобретатель ПО сам его устанавливает возможен, но это будет требовать времени на разработку, что будет учтено в цене.

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

Итого, локальная установка не несет никакой дополнительной безопасности или гарантий, просто она будет переложена на плечи одного единственного человека — который будет обслуживать ваш сервер.

III. Производительность

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

Поэтому нужно или рассматривать вариант аренды сервера (то есть размещаться не физически на картодроме), или инвестировать значительные средства в оборудование.

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

IV. Финансовая сторона

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

V. Прочие трудности

При локальной установке вам также нужно будет решить следующие вопросы:

  • Обеспечить соответствие закону о персональных данных.
  • Самостоятельно заключить договор с банком на эквайринг.
  • Обеспечить покупку, настройку и регулярное обновление SSL-сертификата.
  • При публикации мобильного приложения, разработанного нами, с вашего аккаунта — зарегистрировать и купить аккаунты разработчика.
  • Осуществлять техническую поддержку клиентов, выделить для этого человека, принимающего запросы и реагирующего на проблемы пользователей (перепутанные телефоны при регистрации, сложности при бронировании и т.п.).

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

Заключение

Если коротко отвечать на вопрос, который сформулирован в заголовке, то ответ будет таков: облако дешевле, быстрее, надежнее и безопаснее. То есть по всем статьям выигрывает у локальных серверов, как бы вам ни хотелось предполагать обратное.