Бизнес-процессы в компаниях с каждым годом все больше диджитализируются. И веб-сайты, созданные исключительно для информационных целей, постепенно уходят в прошлое. А на смену им приходят веб-приложения, помогающие в работе с целевой аудиторией и ориентированные на мобильные гаджеты.
Где же разместить веб-приложения для получения максимальной надежности, скорости их работы и оптимальности расходов? В этом мы сейчас и поможем разобраться. Возможных платформ для решения этой задачи несколько. Мы рассмотрим каждый из вариантов хостинга веб-приложений, разберем как достоинства, так и недостатки.
Небольшой «спойлер» — по результатам сравнения, облачные решения все-таки являются более оптимальными.
Сложности выбора
На вопрос «где лучше запустить веб-приложение», нет единого ответа. Вариантов тут масса. Вы можете использовать собственные серверы вашей компании, а можете разместиться на Shared Hosting провайдеров, можете приобрести VPS/VDS хостинг, а можете воспользоваться сервисами облачной инфраструктуры от интернет гигантов — Amazon Web Services (AWS), Google Cloud, Microsoft Azure. А также не стоит забывать, что существуют и ориентированные исключительно на хостинг веб-приложений решения вроде Pantheon или WP Engine.
Если вы сталкиваетесь с этой задачей первый раз, то это пространство вариантов не помогает в выборе, а лишь создает еще больше вопросов.
«Какой выбор будет правильным в моем случае?», «Что бюджетнее в перспективе?», «Как определить надежность этих вариантов?», «Где лучше техническая поддержка?», «Что если я захочу расшириться?»
Мы постараемся разобрать каждый вариант, понять преимущества и слабые стороны каждого, а также помочь вам найти ответы на эти вопросы.
Dedicated server
Самым привлекательным с точки зрения свободы действий, выглядит конечно собственный сервер. У вас будет полное управление конфигурацией, root-доступ и полный контроль для обеспечения максимального уровня безопасности системы. С другой стороны стоит рентабельность такого выбора. Высокая стоимость Dedicated server является главным отрицательным фактором такого решения.
Вам нужно будет регулярно оплачивать амортизацию оборудования, серверное помещение, а также работу квалифицированных администраторов, обеспечивающих поддержку. И это зачастую сводит на нет большинство плюсов выбора выделенного сервера под хостинг ваших веб-приложений.
Также важно учитывать, и расходы на поиск, найм и менеджмент квалифицированного персонала, а также необходимость составления и реализации плана по замене комплектующих.
Если вы впервые сталкиваетесь с задачей хостинга веб-приложений, не рекомендуем рассматривать этот вариант, потому что он требует высокой квалификации по многим техническим вопросам. Часто для поддержки выделенных серверов требует довольно большой штат людей, парт-тайм чаще всего, но от этого не сильно проще. Одним из вариантов может быть collocation — это аренда сервера из оборудования вашего сервис провайдера в его же датацентре. Это гораздо выгоднее выделенного сервера при соразмерных преимуществах.
Shared Hosting
Интересный вариант для хостинга — Shared Hosting. И интересен он, в первую очередь, своей стоимостью. Это самое доступное решение для вашей задачи. При этом вам также становятся доступны бесплатные доменные имена. Специальных профильных знаний для размещения веб-приложений не требуется — все администрирует и поддерживает техническая служба хостинг-провайдера.
Из минусов тут можно назвать ограниченность в плане добавления и конфигурирования дополнительных возможностей. Да и производительность со стабильностью в этом случае сильно может пострадать от непрогнозируемых и больших потоков трафика, а также от задействования ресурсов сервера соседними приложениями и веб-сайтами. И таких соседей у вас может быть довольно много — от нескольких десятков до нескольких сотен. На сильную оперативность поддержки в таком случае рассчитывать также не стоит. Да и в вопросах безопасности выбор shared hosting не лучший — если будет взломан один веб-сайт или веб-приложение на сервере, то с большой вероятностью злоумышленники смогут получить доступ и к другим проектам, в том числе к вашему.
По совокупности этих отрицательных факторов, shared hosting не самый популярный выбор и востребованность этой услуги падает с каждым годом.
VPS Hosting
Довольно востребованное решение на рынке хостинга веб-приложений. Виртуальные приватные сервера дороже, по сравнению с предыдущим вариантом, но эта разница в цене окупается. Вы получаете персональные ресурсы сервера, при чем соседи с их приложениями и сайтами не влияют на вашу производительность. Также вы можете рассчитывать на гораздо более высокую конфигурируемость — вам предоставляется root-доступ и вы сможете самостоятельно проводить все без исключения операции на сервере. Вы получаете возможность вертикально масштабировать ваш VPS вручную и с даунтаймом — просто останавливаете сервер, добавляете ресурсы и снова запускаете. Что, конечно, невозможно сделать работая с физическим сервером.
Теперь к сложностям. При работе с VPS вам точно потребуется довольно высокая квалификация и глубокие технические знания в управлении серверами, примерно сравнимые с необходимым уровнем подготовки при работе с физическими серверами. Только опыт работы с hardware не пригодится, в случае с VPS вам не нужен план замен, закупок, монтажа оборудования и тому подобное. Но инфраструктурно всё то же самое. Таким образом вам для работы с VPS hosting точно понадобятся квалифицированные администраторы. А если решите заниматься конфигурированием окружения вашего веб-приложения без опыта работы с VPS, вам потребуется довольно много времени.
Managed Hosting
В этом варианте непосредственное управление сервером вам недоступно — для вас запускают ваше веб-приложение и дают административный доступ к нему. То есть в возможностях управления вы ограничены исключительно своим приложением. Ну и поскольку с вами на физическом сервере присутствуют соседи, то в случае с Managed Hosting вас ожидают те же риски, что и с Shared hosting — нестабильность объема фактически доступных ресурсов, медленный ответ техподдержки и так далее.
Clouds
Этот вариант хостинга предлагаем разобрать подробнее. Рынок Clouds-решений стремительно растет и с каждым годом набирает все большую популярность. Команда аналитиков из компании Gartner оценила этот рынок в в $242,7 млрд по итогам 2019 года. И, по их же прогнозам, в 2021 году мировой рынок публичных облачных сервисов превысит $306 млрд.
При этом решения облачных сервисов активно внедряются в компаниях самого разного размера, ввиду таких общих преимуществ:
- Практически мгновенно масштабируемые ресурсы в зависимости от ваших текущих задач — либо по требованию либо в зависимости от изменения нагрузки. Это гораздо выгоднее, чем разворачивать собственные облачные сервисы на базе внутренней мультисерверной инфраструктуры.
- Вы можете планировать свои расходы ежемесячно, а не инвестировать капитально. Вместо крупных авансовых вложений на закупку и настройку нужного оборудования, вы платите равномерными платежами только за реально потребленные услуги.
- Нет больше необходимости в поиске, инсталляции и поддержке физических серверов в компании или у провайдеров. Вы экономите как на офисной площади, так и на таких сопутствующих расходах как кондиционирование, безопасность доступа, энергопитание и другое.
- Вам больше не требуется содержать в штате системных администраторов для поддержки и обслуживания серверной инфраструктуры
- Также больше не нужно следить за регулярностью обновлений систем — все это ложится на плечи провайдера, как и обслуживание и поддержка серверов.
Есть, конечно, и сложности, с которыми сталкиваются при выборе Clouds. Основная — это сложность выбора облачной архитектуры. Бывает непросто подобрать AWS stack, подходящий для вашего проекта, чтоб и закрывал все потребности и по стоимости укладывался в бюджет.
В целом, AWS stack очень схож с конструктором — при определенных навыках и знаниях из него можно создавать разные вещи. Часто даже организацию хостинга с его помощью сравнивают с самостоятельной сборкой компьютера. Как продолжение этого сравнения, заказ хостинга у провайдера сравним с покупкой готового ПК. EC2 — сравним с материнской платой и памятью, с его помощью можно запускать instance на базе образа операционной системы. EBS — схож с логическим диском, накопителем. Вы можете создать диск определенного размера и подключить его к определенному instance (созданный «диск» будет называться volume). В итоге в вашем распоряжении будет устройство, которое вы сможете монтировать, форматировать и работать с ним. При этом все данные, которые были записаны на него, будут сохранены независимо от жизни instance. S3 — сравнимо с внешним хранилищем. Вы можете использовать его для сохранения файлов большого размера и хранить их вечно. Также вам доступны сервисы логирования, баз данных, мониторинга, DNS и многие другие.
Как видите, может быть довольно сложно из имеющихся комплектующих собрать машину, которая бы обеспечивала оптимальную работу вашего приложения и при этом не выйти за рамки бюджета. Без опыта работы с облачными хостингам довольно сложно определить верную схему AWS stack для использования, правильно подобрать компоненты и сервисы и настроить их интеграции. Эта схема дает возможность оценить сложность выбора — CNCF Cloud Native Landscape.
Конечно же, для использования AWS Cost Forecast (калькулятора для расчета расходов) от вас потребуются профильные навыки и знания. Также сложность могут представлять создание описание структуры, процессов и необходимых скриптов. Для этого нужны квалифицированные специалисты с экспертизой в облачных технологиях Amazon, Google или Microsoft.
В общем, главный минус хостинга в облаках — он сложный.
App-specific providers
Самыми популярными услугами App-specific providers, рассчитанными на разработчиков, являются сервисы Google AppEngine, VMWare Pivotal Cloud Foundry, Heroku, Pantheon и другие. Эти сервисы предлагают целые наборы готовых компонентов для создания приложений, плюс фреймворки для управления платформой. Компонентами тут являются сервисы баз данных, репозитории, инструменты автоматизированного деплоя, мониторинга, среды тестирования и тому подобные.
Необходимая квалификация для работы с такими сервисами несколько ниже, чем с облачными. Не смотря на это, в тех же Heroku или Pantheon требуется написание специального манифеста, разрабатывать и заниматься отладкой которого может стать довольно сложной задачей.
Что касается недостатков, то ситуация сравнима с Managed hosting — вы имеете только то, что вам дают. При этом часто бывают случаи, когда отсутствует нужная конкретная версия какого-то компонента. Также к минусам относятся и довольно негибкие тарифные планы — в большинстве случает вы или не помещаетесь в свой план или вынуждены платить гораздо больше, чем можете задействовать своим проектом. В итоге, это может привести к тому, что рост вашего приложения начинает обходиться вам довольно дорого, но так как оно у вас уже адаптировано под конкретный PaaS, переход на другое решение будет вызывать дополнительные вложения и сложности. При этом у App-specific providers нет проблемы выбора и соединения множества компонентов, как у AWS или других облачных провайдеров.
Summary
Как видите, в каждом решении на рынке хостинга веб-приложений есть свои плюсы и свои недостатки. Наша команда готова как проконсультировать вас по вопросам выбора платформы, так и организовать миграцию и поддержку во всех вопросах, связанных с размещением веб-приложений.
Обращайтесь, подберем решение идеально подходящее именно для вас!