Magento 2 — что под капотом?
На прошедшей недавно в Киеве конференции MageConf компания Magento рассказала о возможностях следующей версии своей платформы — Magento 2. Поскольку лично поприсутствовать на докладе не получилось, мы обратились за комментариями к системному архитектору проекта Дмитрию Сороке.
Дмитрий Сорока, Magento System Architect
— Итак, какие изменения претерпела новая версия, в чём заключаются ключевые отличия от Magento 1.x?
— Мы не ставили целью переписать всё с нуля. Основная задача проекта Magento 2 — исправить ошибки и неудобства, которые были допущены в процессе создания первой версии ввиду короткого временного промежутка, который был выделен на её разработку. Собственно, процесс рефакторинга нацелен на улучшения качества системы. Так, например, вводится полностью автоматизированное тестирование, от юнит-тестов до функциональных.
Ещё одна ключевая цель — улучшение модульности системы. Сейчас Magento является модульной, но разработчики модулей не всегда обладали полной гибкостью для изменения и дополнения существующей функциональности. В Magento 2 мы пытаемся улучшить среду, в которой они будут разрабатывать свои модули. Разработка модулей является одним из самых приоритетных направлений, это существенно влияет на дальнейшее развитие продуктов, построенных на основе Magento.
И, разумеется одна из важных задач — улучшение производительности системы.
У системы очень много пользователей, и проблемы с производительностью весьма актуальны. Мы ведём очень интенсивную работу в этом направлении.
Хотелось бы упомянуть также и упрощение разработки под Magento. Это касается как фронт-энда (мы переходим на jQuery в качестве основной библиотеки), так и более глубоких уровней, вплоть до админки, которая также разбита на модули, для обеспечения большей гибкости для разработчиков.
— Что касается производительности — эта проблема была весьма актуальна для прошлых версий. Что изменится в новой?
— Рекомендации по мощности серверов и допустимой нагрузке доступны публично, в whitepapers, которые выходят с каждым релизом. Но да, производительность Magento 2 — это ключевой вопрос, которым мы будем доводить до оптимального уровня. Назвать конкретные цифры я сейчас не могу, точный объём работ пока не определён, но то, что она будет увеличена на порядок — это точно.
— Какой фреймворк используется в Magento?
— Magento фактически расширяет Zend Framework. Вернее, он используется как основной источник библиотечных компонент: уровень доступа данных через Zend_Db, кэширование — через Zend_Cache, локализации — через Zend_Locale, и т. д. Мы используем много готовых компонент — они уже реализованы, зачем их реализовывать ещё раз.
Но поверх этих компонент построен Magento Framework, с которым, собственно, и имеет дело разработчик — к примеру, при создании новых тем. Модульность также реализована на уровне нашего собственного фреймворка.
— А что касается обратной совместимости плагинов для разных версий, будет ли актуальной эта проблема?
— Да, проблема будет весьма актуальной.
Это будет первый релиз Magento, несовместимый с предыдущими версиями. Изменения в ядре весьма значительны, но при этом новая версия обладает огромным количеством преимуществ, которые я озвучивал ранее — модульность, улучшенная производительность, тестируемость и т. д.
Но мы учитывали тот факт, что каждому разработчику расширений придётся мигрировать на эту версию. Все обратно несовместимые изменения чётко задокументированы, и в процессе миграции наших собственных модулей, которые разрабатывались внутри компании, мы выработали набор утилит для автоматизации миграции некоторых частей системы. Таким образом, разработчикам будет предоставлена документация и набор инструментов, который облегчит сам процесс миграции.
— Будет ли компания стимулировать каким-либо образом переквалификацию разработчиков, популяризировать новую версию системы?
— Если говорить в мировых масштабах, то у компании есть тренинг-классы (к сожалению, пока не в Украине, но этот вопрос в стадии решения и весьма приоритетен). Но мы не предполагаем, что те люди, которые долгое время работали с первой версией, в один прекрасный день будут поставлены перед фактом — вот вам вторая, и делайте что хотите. Процесс перехода будет постепенным.
Чтобы облегчить процесс обучения и миграции, мы уже сейчас выложили код Magento 2.0 в открытый доступ — люди могут следить, как он развивается и дополняется. Доступна также подробная документация — к слову, в отличие от первой версии, которая вышла совершенно без сопроводительной документации, всё создавалось уже в процессе эксплуатации.
Со второй версией всё по-другому — процесс разработки тщательно документируется, и всё это лежит в открытом доступе. Интересующиеся разработчики могут отслеживать, что и как меняется. Соответственно, на момент релиза те, кто отслеживал все изменения, уже будут готовы к разработке на Magento 2, для новых разработчиков программа будет покрыта тренинг-классами, плюс будет отдельный класс для тех, кто будет мигрировать со старой версии.
— Как Magento 2 вписывается в общую стратегию развития eBay? Вопрос весьма масштабный, но можно ли обрисовать некие тенденции?
— Да, вопрос очень глобальный, попробуем его немного декомпозировать и спуститься до уровня Magento. Сама по себе компания eBay — огромнейшая корпорация, с 25 тыс. сотрудников, владеющая многими компаниями, и основные её источники дохода — это, собственно, платформа eBay, платёжная система PayPal и разработчик сайтов GSI Commerce, также в этом году купленный eBay.
«Фундаментом», на котором работают эти три подразделения, фактически и является система X.Commerce. Основной стратегией корпорации в настоящее время является введение инноваций на уровне X.Commerce, большой частью которого, собственно, и является Magento. Включая нас, в настоящее время над проектом работают порядка 800 разработчиков. В X.Commerce входят подразделения, которые занимаются разработкой инфраструктуры для сообщества.
В свою очередь, задача X.Commerce — предоставление разработчикам среды, в которой они смогут разрабатывать новые функциональные элементы, к примеру, системы управления заказами, интеграции с eBay. Но эти разработки будут вестись на стандартизированном языке. Что он собой представляет — в X.Commerce есть проект под названием Ontology. Его цель — предоставить весь мир электронной коммерции в нормализированном виде, к примеру, если существует заказ, то какими атрибутами он должен обладать и т. д., то есть, спускаясь от уровня домена, полностью раскрывать структуру, входящие в неё сущности и взаимосвязи между ними. На основе этих стандартов разработчики смогут оперировать одной и той же терминологией и понятиями.
В основе X.Commerce лежит «Фабрика» (Fabric) — шина для передачи сообщений между приложениями и некими функциональными возможностями. Явное преимущество (а также глобальное видение развития) такой системы заключается в унификации интерфейсов взаимодействия программ и функциональностей.
К примеру, у нас есть возможность проведения платежей, интегрированная в X.Commerce и поддерживающая несколько платёжных систем — PayPal, Authorize.net, CyberSource и т. д. Соответственно, у разработчика приложения есть две опции — интеграция с выбранной платёжной системой напрямую, либо посредством X.Commerce. Объём работ будет примерно сопоставим. Но интеграция с помощью X.Commerce позволяет легко подключать приложение ко всем существующим платёжным системам, в противном случае каждую платёжную опцию придётся реализовывать отдельно. Соответственно, если на рынок будут выходить новые платёжные системы, поддержка которых будет интегрироваться в X.Commerce, — соответственно будут расти и возможности приложения. Провайдерам такой расширяемой функциональности могут быть платёжные системы, marketplace, социальные сети и т. д., набор возможностей довольно большой.
Все приложения могут в стандартной поставке иметь модуль, который позволяет осуществлять как синхронные, так и асинхронные интеграции, поскольку методология PubSub не подразумевает синхронной интеграции. X.Commerce будет расширяться утилитами, дополнительными уровнями, одним из которых, к примеру, будет Bridge, позволяющий работать с «Фабрикой» в синхронном режиме.
Magento в этой архитектуре является потребителем функциональности предоставленной X.Commerce. То есть к системам платежей, интегрированным в X.Commerce, Magento обращается через интерфейс X.Commerce. Для Magento в свою очередь — это просто дополнительный модуль, построенный поверх стандартного модуля коммуникации с «Фабрикой».
В текущий момент идёт разработка модуля Multi-marketplace, реализующего интеграцию Magento-каталога с marketplace. В настоящее время модуль работает только с eBay, но X.Commerce ищет способы привлечения и других крупных игроков, таких как Amazon, и т. п. Соответственно, используя этот модуль, разработчик получает интеграцию со всеми поддерживаемыми магазинами.
— Вы рассказали о плюсах новой платформы в основном со стороны разработчика. А какие преимущества получает заказчик, пользователь продукта на Magento 2?
— Прежде всего, это то, что мы облегчаем разработку новых продуктов. Разработка более простая, может быть выполнена быстрее, соответственно, она обойдётся заказчику дешевле.
— Когда новая версия увидит свет?
—
Финальный GA-релиз назначен на четвёртый квартал 2012 года, бета-релиз запланирован на третий квартал.
— Magento открывает собственный магазин приложений Connect, расскажите, пожалуйста, подробнее о нём?
— Частью Magento 1.x является огромный набор расширений (extensions) — дополнительных модулей-приложений и тем. Магазин приложений даёт возможность разработчику поделиться своими наработками, а владельцу магазина — расширить его функциональность.
Существует три редакции Magento, от простой к более продвинутой — Community, Professional и Enterprise, кроме того, есть облачный сервис Magento Go. Расширения, предназначенные только для старших редакций, несовместимы с младшими, но обратная совместимость присутствует. Облачный сервис фактически обладает функциональностью Enterprise-редакции.
Таким образом, глобальная стратегия магазина — дать разработчику возможность представить своё приложение на всех возможных рынках — от Community до Go.
— А как разработчику или компании можно начать продавать свои расширения посредством Magento Connect?
— На сегодняшний день, как упоминалось, у нас существуют два направления — продажа расширений для независимых редакций Magento и для Go. Для того, чтобы начать продавать свой extension на Go, нужно пройти сертификацию. Нa Magento Connect есть форма, с помощью которой разработчик может отправить запрос на сертификацию собственного расширения, этим занимается команда разработчиков Magento. Существует определённый набор требований, которым должно соответствовать приложение.
Когда расширение проходит сертификацию, оно получает «метку» Trusted Extension. После этого становится доступным его использование на Magento Go Platform и его можно продавать. Есть комиссия компании, но она минимальна. Возможности получать платежи за продажу расширений для индивидуальных редакций пока нет, но мы как раз работаем над этой функциональностью.
— Стоимость каждого приложения устанавливает автор?
— Да, если расширение простое, но действительно гениальное, во много раз увеличивает продажи — то можно за него запросить хоть тысячу долларов. Если же оно сложное, но бесполезное, — не будет пользоваться таким успехом, соответственно, продать его удастся только за небольшие деньги.
— А о Magento Go расскажите чуть подробнее...
— C технической точки зрения это Magento 1.9 (мы в данный момент проводим процесс миграции на последнюю версию Enterprise — 1.11), с доработками, которые позволяют её масштабировать на нашем «облаке», созданном специально для хостинга Magento Go.
В чём особенность: все «торговцы» работают на одной и той же базе кода и фактически, установка расширений производится только нами, пользователь не может установить сторонний, индивидуальный, модуль, не относящийся к разряду Trusted. Но как показывает практика, для персонализации магазина предлагаемого нами набора расширений недостаточно — каждый бизнес индивидуален, люди хотят иметь возможность иметь ту же гибкость Magento, которая доступна в индивидуальных редакциях.
Устранить этот недостаток и призвана Magento Go Platform, разработкой которых мы сейчас занимаемся. Это инфраструктура, которая позволяет владельцу сайта заливать собственный код и расширения в Magento Go.
— Будет ли Magento Go мигрировать на вторую версию?
— Да, сейчас производится миграция на 1.11 и мы уже в компании обустроили процесс обмена кодом между командами. Соответственно в процессе миграции, Magento Gо будет уже приближена к Magento 2.0 и далее мы будем продолжать миграцию.
Процесс миграции пройдёт прозрачно для пользователя. Все trusted-расширения будут также доступны и со второй версией. Что касается кастомных — к сожалению, не знаю точных дедлайнов по Go Platform, если эти сроки совпадут с дедлайнами по Magento 2, то и вопроса такого не возникнет — вся кастомизация будет доступна уже только для второй версии.
— Спасибо!
43 коментарі
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.