SlideShare a Scribd company logo
1 of 13
Download to read offline
Development and deployment freedom 
Вадим Хомчик 
WebTechnico 
MODX Meetup Minsk, 29.11.14
MODX: Creative freedom 
Гибкие шаблоны 
Удобная и 
настраиваемая админка 
Большое количество 
расширений 
«Непереносимость» 
настроек и кода
Как выглядит типичный 
процесс разработки на MODX? 
Основной цикл 
• Развернули MODX на localhost’е; 
• Программируем; 
• Делаем дамп базы данных; 
• Заливаем файлы и дамп в продакшн; 
Внесение изменений 
• Заходим в админку на продакшн; 
• Дорабатываем прямо в там - в лучшем случае в 
секретном разделе :)
Причина 
Часть артефактов системы хранится 
не в файловой системе (FS), а в СУБД (DB) 
Артефакты FS DB 
assets images, javascripts, stylesheets 
packages 
lexicons 
elements snippets, chunks, plugins, tvs, templates 
settings, media sources, content types, forms, content types 
contexts, security settings, component settings, etc 
Артефакт ‒ элемент информации, который используется или порождается в процессе 
разработки программного обеспечения. [UML]
Что разработчику хорошо? 
• Хранить все в файловой 
системе; 
• Контроль версий 
посредством SCM; 
• Работать из любимой IDE или 
редактора; 
• Публикация изменений с 
минимальным количеством 
усилий;
Development freedom 
• Выносим все артефакты в 
файловую систему; 
• Осуществляем мониторинг 
(watching) изменяемых файлов 
(артефактов); 
• При их изменении/удалении 
отображаем в базу данных;
Карты преобразований 
Карты преобразований (maps) 
необходимы для отображения 
наших файлов в php-код для 
сохранения или удаления 
объектов в MODX
Front matter 
Jekyll-style YAML-метаданные 
Позволяют расширить файл 
и хранить в нем помимо 
основного контента наборы 
атрибутов
YAML config 
1. Maps: Шаблоны преобразования 
файлов в PHP-инструкции для 
сохранения/удаления артефактов; 
На данный момент источник — GitHub; 
2.Modules: Gulp (Node.js) модули 
преобразования файлов; 
Источник - npmjs; 
3.Map: Идентификатор шаблона 
указанных в maps; 
4.Pipeline: Последовательность 
модулей указанных в modules;
Deployment freedom 
• Пакеты обновлений 
создаются на базе файлов из 
git diff пропущенных через 
map/pipeline; 
• Ноды опрашивают сервер на 
предмет наличия пакетов 
обновлений; 
• При наличии пакет 
скачивается и 
устанавливается; 
z 
n 
n 
n 
n
Что в итоге получилось? 
• Хранение всех артефактов в GIT; 
• Возможность полной разработки сайта на MODX 
из IDE; 
• Возможность непрерывной поставки изменений в 
production (staging) — continuous delivery;
Ближайшие планы 
• Публикация ядра и базовых компонент как open 
source на GitHub (http://github.com/zaffre); 
• Написание карт для компонент, доработка карты 
MODX; 
• Бета-тестирование zaffre.io
vh@webtechnico.com 
vadim.homchik

More Related Content

What's hot

Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control GroupsOSLL
 
Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)AvitoTech
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2TagOSLL
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17MoscowJS
 
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе dockerIvan Grishaev
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Базовые принципы работы с SVN.
Базовые принципы работы с SVN.Базовые принципы работы с SVN.
Базовые принципы работы с SVN.DressTester
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to productionAnton Turetsky
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...MoscowJS
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker Andrey Markelov
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandexaviatakz
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with SeleniumOSLL
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsKirill Danilov
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...Kirill Danilov
 
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerAnton Maksimov
 
Как Webpack сделал меня счастливее
Как Webpack сделал меня счастливееКак Webpack сделал меня счастливее
Как Webpack сделал меня счастливееYaroslav Serhieiev
 

What's hot (20)

Git for you
Git for youGit for you
Git for you
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Базовые принципы работы с SVN.
Базовые принципы работы с SVN.Базовые принципы работы с SVN.
Базовые принципы работы с SVN.
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 
Git basis
Git basisGit basis
Git basis
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.js
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
 
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
 
Как Webpack сделал меня счастливее
Как Webpack сделал меня счастливееКак Webpack сделал меня счастливее
Как Webpack сделал меня счастливее
 

Similar to Development and deployment freedom - MODX Meetup Minsk

NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложенияDenis Latushkin
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word pressvovasik
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Drupal -organizaciya_razrabotki
Drupal  -organizaciya_razrabotkiDrupal  -organizaciya_razrabotki
Drupal -organizaciya_razrabotkidrupalconf
 
Drupal организация разработки
Drupal   организация разработкиDrupal   организация разработки
Drupal организация разработкиAnna Fedoruk
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011camp_drupal_ua
 
идеология Drupal 8 уже в drupal 7 вячеслав касихин
идеология Drupal 8 уже в drupal 7 вячеслав касихинидеология Drupal 8 уже в drupal 7 вячеслав касихин
идеология Drupal 8 уже в drupal 7 вячеслав касихинdrupalconf
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битриксAndrii Podanenko
 
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Eugene Fidelin
 
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.DrupalCampDN
 
Phalcon. Что нового?
Phalcon. Что нового?Phalcon. Что нового?
Phalcon. Что нового?Oleksandr Torosh
 
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupalLviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupaldeWeb
 
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфікаОлена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфікаLEDC 2016
 
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотестыСтажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты7bits
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор БогатырёвMinsk PHP User Group
 

Similar to Development and deployment freedom - MODX Meetup Minsk (20)

NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Drupal -organizaciya_razrabotki
Drupal  -organizaciya_razrabotkiDrupal  -organizaciya_razrabotki
Drupal -organizaciya_razrabotki
 
Drupal организация разработки
Drupal   организация разработкиDrupal   организация разработки
Drupal организация разработки
 
Genome
GenomeGenome
Genome
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
 
идеология Drupal 8 уже в drupal 7 вячеслав касихин
идеология Drupal 8 уже в drupal 7 вячеслав касихинидеология Drupal 8 уже в drupal 7 вячеслав касихин
идеология Drupal 8 уже в drupal 7 вячеслав касихин
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикс
 
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
 
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
 
Phalcon. Что нового?
Phalcon. Что нового?Phalcon. Что нового?
Phalcon. Что нового?
 
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupalLviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
 
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфікаОлена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
 
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотестыСтажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
 

More from MODX Беларусь

История возникновения и развития связки Modstore — Modx.pro — Modhost
История возникновения и развития связки Modstore — Modx.pro — ModhostИстория возникновения и развития связки Modstore — Modx.pro — Modhost
История возникновения и развития связки Modstore — Modx.pro — ModhostMODX Беларусь
 
E-commerce проекты 15000+ товаров в полной интеграции с 1С
E-commerce проекты 15000+ товаров в полной интеграции с 1СE-commerce проекты 15000+ товаров в полной интеграции с 1С
E-commerce проекты 15000+ товаров в полной интеграции с 1СMODX Беларусь
 
Синхронный MODX: как сделать настоящую синхронизацию и не застрелиться
Синхронный MODX: как сделать настоящую синхронизацию и не застрелитьсяСинхронный MODX: как сделать настоящую синхронизацию и не застрелиться
Синхронный MODX: как сделать настоящую синхронизацию и не застрелитьсяMODX Беларусь
 
miniShop2 – что нас ждет в новых версиях
miniShop2 – что нас ждет в новых версияхminiShop2 – что нас ждет в новых версиях
miniShop2 – что нас ждет в новых версияхMODX Беларусь
 
MIGX. Табличный тип данных в MODX - MODX Meetup Minsk
MIGX. Табличный тип данных в MODX - MODX Meetup MinskMIGX. Табличный тип данных в MODX - MODX Meetup Minsk
MIGX. Табличный тип данных в MODX - MODX Meetup MinskMODX Беларусь
 
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup MinskElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup MinskMODX Беларусь
 

More from MODX Беларусь (8)

modmore Team Time
modmore Team Timemodmore Team Time
modmore Team Time
 
История возникновения и развития связки Modstore — Modx.pro — Modhost
История возникновения и развития связки Modstore — Modx.pro — ModhostИстория возникновения и развития связки Modstore — Modx.pro — Modhost
История возникновения и развития связки Modstore — Modx.pro — Modhost
 
Sterc Team Time
Sterc Team TimeSterc Team Time
Sterc Team Time
 
E-commerce проекты 15000+ товаров в полной интеграции с 1С
E-commerce проекты 15000+ товаров в полной интеграции с 1СE-commerce проекты 15000+ товаров в полной интеграции с 1С
E-commerce проекты 15000+ товаров в полной интеграции с 1С
 
Синхронный MODX: как сделать настоящую синхронизацию и не застрелиться
Синхронный MODX: как сделать настоящую синхронизацию и не застрелитьсяСинхронный MODX: как сделать настоящую синхронизацию и не застрелиться
Синхронный MODX: как сделать настоящую синхронизацию и не застрелиться
 
miniShop2 – что нас ждет в новых версиях
miniShop2 – что нас ждет в новых версияхminiShop2 – что нас ждет в новых версиях
miniShop2 – что нас ждет в новых версиях
 
MIGX. Табличный тип данных в MODX - MODX Meetup Minsk
MIGX. Табличный тип данных в MODX - MODX Meetup MinskMIGX. Табличный тип данных в MODX - MODX Meetup Minsk
MIGX. Табличный тип данных в MODX - MODX Meetup Minsk
 
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup MinskElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
 

Development and deployment freedom - MODX Meetup Minsk

  • 1. Development and deployment freedom Вадим Хомчик WebTechnico MODX Meetup Minsk, 29.11.14
  • 2. MODX: Creative freedom Гибкие шаблоны Удобная и настраиваемая админка Большое количество расширений «Непереносимость» настроек и кода
  • 3. Как выглядит типичный процесс разработки на MODX? Основной цикл • Развернули MODX на localhost’е; • Программируем; • Делаем дамп базы данных; • Заливаем файлы и дамп в продакшн; Внесение изменений • Заходим в админку на продакшн; • Дорабатываем прямо в там - в лучшем случае в секретном разделе :)
  • 4. Причина Часть артефактов системы хранится не в файловой системе (FS), а в СУБД (DB) Артефакты FS DB assets images, javascripts, stylesheets packages lexicons elements snippets, chunks, plugins, tvs, templates settings, media sources, content types, forms, content types contexts, security settings, component settings, etc Артефакт ‒ элемент информации, который используется или порождается в процессе разработки программного обеспечения. [UML]
  • 5. Что разработчику хорошо? • Хранить все в файловой системе; • Контроль версий посредством SCM; • Работать из любимой IDE или редактора; • Публикация изменений с минимальным количеством усилий;
  • 6. Development freedom • Выносим все артефакты в файловую систему; • Осуществляем мониторинг (watching) изменяемых файлов (артефактов); • При их изменении/удалении отображаем в базу данных;
  • 7. Карты преобразований Карты преобразований (maps) необходимы для отображения наших файлов в php-код для сохранения или удаления объектов в MODX
  • 8. Front matter Jekyll-style YAML-метаданные Позволяют расширить файл и хранить в нем помимо основного контента наборы атрибутов
  • 9. YAML config 1. Maps: Шаблоны преобразования файлов в PHP-инструкции для сохранения/удаления артефактов; На данный момент источник — GitHub; 2.Modules: Gulp (Node.js) модули преобразования файлов; Источник - npmjs; 3.Map: Идентификатор шаблона указанных в maps; 4.Pipeline: Последовательность модулей указанных в modules;
  • 10. Deployment freedom • Пакеты обновлений создаются на базе файлов из git diff пропущенных через map/pipeline; • Ноды опрашивают сервер на предмет наличия пакетов обновлений; • При наличии пакет скачивается и устанавливается; z n n n n
  • 11. Что в итоге получилось? • Хранение всех артефактов в GIT; • Возможность полной разработки сайта на MODX из IDE; • Возможность непрерывной поставки изменений в production (staging) — continuous delivery;
  • 12. Ближайшие планы • Публикация ядра и базовых компонент как open source на GitHub (http://github.com/zaffre); • Написание карт для компонент, доработка карты MODX; • Бета-тестирование zaffre.io