Как выбрать сервер для разработки

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

Для того, чтобы начать писать код достаточно иметь под рукой любой удобный редактор под используемую вами платформу: macOS, Linux и Microsoft Windows. При этом не важно, какой именно инструмент вы используете в своей работе: старый и добрый Notepad++, удобный Sublime Text, универсальный Brackets, интуитивный Atom или другие утилиты. Ваша задача — создать удобные условия для себя и для самого проекта. 

Если мы говорим о больших проектах, то тут уже понадобятся еще более функциональные условия для разработки, которые значительно увеличивают производительность — IDE. Интегрированные среды разработки как Microsoft Visual Studio, PyCharm, Eclipse, IntelliJ IDEA и прочие в своем функционале имеют больше инструментов, чем редактор кода. Это компилятор, отладчик, инструменты для тестирования совместимости и другие полезные компоненты, упрощающие процесс разработки. IDE используются на разных проектах, начиная с мобильных и веб-приложений и заканчивая разработкой видеоигр.

При выборе подходящего сервера всё будет упираться в один вопрос: какая задача стоит перед проектом. Рассмотрим все возможные варианты.

Локальный сервер для разработки

Обычно программист ведет разработку, например, сайта на своем устройстве. Для того чтобы этот сайт «ожил» его нужно разместить на сервере. Самый простой способ — создать локальный сервер. Для этих целей существуют решения, которые уже включают требуемое для веб-разработки ПО. Для разных платформ есть свои программы: OpenServer, WampServer, XAMPP для Windows или MAMP Pro для macOS. Благодаря таким программам можно локально запускать сайт без использования домена и хостинга, разворачивать и настраивать CMS, взаимодействовать с базами данных и т.д. Безусловно можно развернуть localhost собственноручно без готовых программ, установив нужные компоненты как Apache, РНР, MySQL и так далее в мануальном режиме. Однако этот подход скорее будет исключением из правил.

Локальный сервер обладает рядом положительных характеристик, но имеет и недостатки. В процессе работы можно столкнуться с ограничением на выполнение скриптов и функций, отсутствием полноценного тестирования ресурса с реальной нагрузкой, разночтением в настройках локального сервера и будущего хостинга, что повлияет на отображение и работу сайта. При разработке проекта под разные web-версии или под различные СУБД, встанет вопрос с установкой всех этих параметров на свой локальный сервер. Кроме того, используя локальный сервер для разработки на своем компьютере или ноутбуке, вы выделяете часть этого устройства и его ресурсов на выполнение работы хостинга. При этом после переноса проекта с локального на удаленный сервер, его все равно придется тестировать на предмет корректной работы.

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

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

Виртуальный хостинг для разработки

Обычный shared хостинг очень ограничен в системных настройках. С одной стороны это готовое решение для размещения сайтов, интернет-магазинов и прочих ресурсов, но перечень ограничений слишком велик в рамках разработки даже среднего уровня сложности. Конфигурации, ядро ОС, набор доступных языков, ресурсы процессора и так далее. Данное решение отлично подойдет для домашних проектов или штучных несложных сайтов на популярных CMS из серии WordPress. Для разработки более серьезных проектов потребуется виртуальный или физический сервер в аренду.

В процессе разработки понадобится тестовый сервер, на котором выявляются и фиксируются ошибки, проводятся испытания новых версий, производится отладка обновлений. Как минимум нужен тестовый и боевой сервер, а в командной работе также используется development сервер, на котором ведется сама разработка проекта.

Серверы для разработки проекта

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

  • Development сервер, на котором непосредственно ведется разработка.
  • Test сервер, на котором развертывается проект и там же проходит его тестирование.
  • Production или боевой сервер, на который переносится протестированный и готовый к полноценной работе проект.

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

Физический сервер для разработки

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

Главным недостатком или важной особенностью такого решения считается необходимость администрирования. Чтобы все грамотно настроить понадобятся знания, внутренний специалист или внешний системный администратор. Также не стоит забывать про окружение. Если для разработки требуется Windows, то к ценнику сервера еще добавится аренда лицензий от Microsoft.

Выделенный сервер подойдет для разработки средних и крупных проектов. Понадобятся компетенции для настройки необходимого окружения и среды для работы команды.

Как выбрать выделенный сервер

Сервер выбирается по параметрам: процессор, оперативная память и диск. Бекенд требователен к процессору. При использовании сервисов как Memcache, стоит помнить, что они привередливы к оперативной памяти. Фронтенд также требователен к оперативной памяти, так как занимается обработкой соединений от количества посетителей.

Достаточно сложно предсказать нагрузку и объем данных заранее. Лучше взять более быстрые SAS или SSD диски и поместить их в RAID для безопасности. В процессе работы, диски можно добавить или заменить на более объемные аналоги в зависимости от используемой платформы.

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

Виртуальный или облачный сервер для разработки

Стоит сразу разграничить бюджетные VPS серверы, которые недалеко ушли от shared хостинга, и облачные ресурсы, которые по функциональности смело можно сравнивать с физическим оборудованием. Основная разница между ними кроется в типе виртуализации и в свободе настроек.

Программная виртуализация (openVZ, Virtuozzo, VDSmanager) построена на базе модифицированного серверного ядра и имеет заданные общими настройками оборудования характеристики.

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

Аппаратная виртуализация (Hyper-V, VMware, KVM, Xen) создается на основе гипервизора, где каждая ВМ использует свое собственное ядро и ОС. Из одного пула ресурсов можно создавать необходимое количество виртуальных машин, которые могут использовать самостоятельные настройки ОС. Такой же формат встречается у облачной инфраструктуры IaaS. 

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

На примере облачной инфраструктуры Hyper-V, считающимся одним из лучших решений для виртуализации серверов с ОС Windows, можно выделить ряд следующих преимуществ:

  • Простота масштабирования. Добавление vCPU, vRAM, дисков (SAS, SSD, SATA) по мере роста проекта.
  • Лицензии Windows Server Standard и Datacenter без ограничений в любом объеме.
  • Неограниченное количество внутренних IP-адресов.
  • Безлимитный трафик без ограничений. Интернет 100-500 Мбит/сек.
  • Готовые шаблоны Windows, Oracle Linux, CentOS, Ubuntu, Debian, Red Hat Enterprise Linux, Bitrix и прочие.
  • Готовое решение для бэкапа виртуальных машин с разной глубиной хранения данных.

К минусам можно отнести вариативность функционала одной и той же услуги у разных компаний на рынке. Стоит сразу уточнить насколько функционал VDS, облачного сервера или IaaS соответствует нужной именно вам инфраструктуре. Для настройки облака понадобятся компетенции или помощь системных администраторов.

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

В качестве итога

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

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

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

вернутся назад

Протестируйте сервер перед покупкой

Оставьте свои данные, чтобы мы могли подобрать нужную конфигурацию