2016-09-09 MediaWiki4Intranet — развертываем для разработки и в production c помощью Vagrant и Ansible
(Created page with "Как быстро бежит время! Проекту MediaWiki4Intranet уже больше десяти лет, а самих попыток натягивать <s>с...") |
|||
Line 4: | Line 4: | ||
И изначально все было достаточно просто и понятно — стандартный PHP-проект, в духе «скопируй файлы в настроенный PHP-хостинг», и вообще было не зазорно вести разработку и доработку в винде, | И изначально все было достаточно просто и понятно — стандартный PHP-проект, в духе «скопируй файлы в настроенный PHP-хостинг», и вообще было не зазорно вести разработку и доработку в винде, | ||
под LAMP-окружениями типа XAMPP, и деплоится на линукс-машину через SVN. | под LAMP-окружениями типа XAMPP, и деплоится на линукс-машину через SVN. | ||
+ | |||
+ | Поэтому мы и завели такую штуку, как [[Windows-сборка Mediawiki4Intranet]], где обычным каталогом лежали все необходимые утилиты/фреймворки, и любой виндовс-пользователь мог попробовать проект, и даже не приходя в создание начать что-то править и создавать<ref>Вот [http://0x1.tv/2c8-architecture-of-mediawiki-filippov короткая, почти не устаревшая лекция про архитектуру MediaWiki]</ref>. | ||
+ | |||
+ | Но время идет. | ||
+ | |||
+ | MediaWiki из моностекового монолитного PHP-проекта, с классической моделью «генерации страницы на сервере» постепенно превращается в мультистековый микросервисный проект с realtime взаимодействием — так, например, появившийся WYSIWYG-редактор требует <tt>node.js</tt>-стека с специально поднятым сервисом парсинга, | ||
+ | на подходе [https://sagarhani.wordpress.com/2016/07/31/one-last-step-for-completion-of-google-summer-of-code-kde-wikitolearn/ мгновенное коллаборативное редактирование] в стиле «etherpad/googledocs» — все это уже не развернуть тупо копированием файлов, да и хлопотно тащить все это под Windows — в целом, уже почти все вменяемые вебразработчики ушли с Windows на Mac/Linux. | ||
+ | |||
+ | Впрочем, современный тренды разработки вовсе требуют вынести за скобки систему разработчика (это его личное дело), а все-все-все зависимости проекта инкапсулировать и контейнеризировать<ref>Самый последний писк моды это «ехал докер через докер», но сейчас мы рассмотрим промежуточную версию, с виртуальными машинами и гибким обновлением через ansible.</ref>. | ||
+ | |||
+ | И тут еще возникают сложности разработки и обновления нашего «бандла» — как его ставить, чтобы можно было в пару действий, с минимальной кривой обучения | ||
+ | * запустить что-то работающее, | ||
+ | * получить и | ||
+ | ** тестовую версию для локальной отладки, в построчном IDE, с ручным ковырянием файлов по живому, и коротким REPL-циклом | ||
+ | ** надежное конфигурирование удаленного сервера на production. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Разрабатывать под Windows |
Revision as of 23:13, 9 September 2016
Как быстро бежит время!
Проекту MediaWiki4Intranet уже больше десяти лет, а самих попыток натягивать сову на глобус MediaWiki для всех интранет задач внутри IT компании и вовсе лет 12.
И изначально все было достаточно просто и понятно — стандартный PHP-проект, в духе «скопируй файлы в настроенный PHP-хостинг», и вообще было не зазорно вести разработку и доработку в винде, под LAMP-окружениями типа XAMPP, и деплоится на линукс-машину через SVN.
Поэтому мы и завели такую штуку, как Windows-сборка Mediawiki4Intranet, где обычным каталогом лежали все необходимые утилиты/фреймворки, и любой виндовс-пользователь мог попробовать проект, и даже не приходя в создание начать что-то править и создавать[1].
Но время идет.
MediaWiki из моностекового монолитного PHP-проекта, с классической моделью «генерации страницы на сервере» постепенно превращается в мультистековый микросервисный проект с realtime взаимодействием — так, например, появившийся WYSIWYG-редактор требует node.js-стека с специально поднятым сервисом парсинга, на подходе мгновенное коллаборативное редактирование в стиле «etherpad/googledocs» — все это уже не развернуть тупо копированием файлов, да и хлопотно тащить все это под Windows — в целом, уже почти все вменяемые вебразработчики ушли с Windows на Mac/Linux.
Впрочем, современный тренды разработки вовсе требуют вынести за скобки систему разработчика (это его личное дело), а все-все-все зависимости проекта инкапсулировать и контейнеризировать[2].
И тут еще возникают сложности разработки и обновления нашего «бандла» — как его ставить, чтобы можно было в пару действий, с минимальной кривой обучения
- запустить что-то работающее,
- получить и
- тестовую версию для локальной отладки, в построчном IDE, с ручным ковырянием файлов по живому, и коротким REPL-циклом
- надежное конфигурирование удаленного сервера на production.
- ↑ Вот короткая, почти не устаревшая лекция про архитектуру MediaWiki
- ↑ Самый последний писк моды это «ехал докер через докер», но сейчас мы рассмотрим промежуточную версию, с виртуальными машинами и гибким обновлением через ansible.