Писал для vk, попиздеть, скопирую сюда. Каково ваше мнение?
Мне кажется, или вещи из разряда Heroku, Google App Engine, Windows Azure, которые условно назовем One-Click Deploy, появились из-за повышенной сложности разворачивания веб приложений?
Сравниваю php/perl с application applets (ну назовем их так) для языков python/ruby/nodejs и прихожу к выводу что "для вебмастера обычного" очень тяжело развернуть приложение.
Если исторически веб начал свое развитие с perl / php, то там все делалось с помощью простого direct редактирования файлов приложения, не требовало менеджера приложений который бы следил за инстансами, который бы их перезапускал, чистил кеши работы и тп.
То ROR/Python/NodeJS приложения устроены значительно сложнее в этом плане. Эти языки скриптовые, но у них абсолютно иная архитектура работы. Чтобы обновить приложение на этих языках, необходимо перезапускать сам рабочий сервер, который отвечает за приложение. Даже банальные изменения в базе требуют перезапуска приложения, потому что архитектура ror/django приложений работает в виде One Time Initialization -> Multiple Requests. В отличие от perl/php пути Initialization -> Request -> Die.
Это я к чему, если обычный вебмастер хочет поменять заголвок на страничке, он просто редактирует PHP файл например. В случае с ROR / Python / NodeJS этого недостаточно как правило (чтобы не врать, оговорюсь что обычно это можно, в development режиме работы приложения, но это сильно понижает скорость работы и в production такой режим не принято использовать).
Разворачивать с 0 ROR / Python / NodeJS приложение значительно сложнее чем php/perl. Это затрагивает настройку сразу порядка 4-6 сервисов (nginx, uwsgi, supervisor, мигрировать базу, перекомпилировать ассеты, обновить use libraries список, если он поменялся), вместо простого копирования файлов через ftp например. Всю эту фигню надо постоянно перезапускать, проверять, перекомпилировать и тп.
Именно поэтому и стали популярны One-Click Deploy системы, которые по факту ничто иное как cPanel style решение для ROR / Python / NodeJS.
Так сказать "палка-помогалка" для вебмастеров, которые далеко не администраторы Linux систем, для которых деплой "Руками" это смертиподобно
К чему это я? Да ни к чему, просто в голову пришло. Как считаете? Имеет такой расклад смысл? Если вы ROR / Python / NodeJS разработчик, часто вы руками разворачиваете, или реально считаете этот процесс очень геморройным и проще заплатить?
Теги: #python #django #ror #rubyonrails #nodejs #php #perl #nginx #uwsgi #deploy #production