Компания
20,49
рейтинг
21 июня 2010 в 11:08

Разное → APS-стандарт – использование на примере CMS LiveStreet

imageВ 2007-м году компанией SWSoft, ныне Parallels, опубликован новый стандарт средств, для развёртывания веб-приложений на хостинге – APS — Application Packaging Standard: apsstandard.org.
APS-формат разработан, чтобы упростить реализацию бизнес-модели Software-as-a-Service (SaaS) для облачных сервис-провайдеров и разработчиков ПО. APS-пакет – упакованное в соответствии с APS-стандартом веб-приложение.
В статье — краткий обзор APS-стандарта и описание процесса подготовки и публикации APS-пакета в общедоступном каталоге — на примере APS-пакета CMS Livestreet, выход которого вызвал определённый интерес на Хабре: (Блог LiveStreet CMS).
Надеюсь, статья заинтересует разработчиков веб-приложений, сервис-провайдеров и пользователей их услуг.


Введение в APS


На данный момент, APS-стандарт поддерживается хостинг-панелями Parallels: Plesk, Small Business Panel, POA (parallels.com) и SysCP (syscp.org — open source проект). По имеющейся информации, ISPSystem (ispsystem.com), разработчик панели ISPManager, рассматривает возможность поддержки APS-стандарта.
Всего в APS-каталоге опубликованы более 200 наименований CMS и различных веб-приложений (как коммерческих, так и open source): apsstandard.org/app

Вкратце, порядок подготовки и использования APS-пакета следующий:
  1. Разработчик CMS (или другой «упаковщик») «пакует» веб-приложение по стандарту APS;
  2. Полученный APS-пакет проходит сертификацию и размещается в общедоступном каталоге;
  3. Хостинг-провайдер загружает пакет и предоставляет своим Клиентам;
  4. Пользователь получает возможность в панели управления хостингом установить «в один клик» веб-приложение.

Многим известен «комплект» fantastico и аналогичные средства автоустановки, зачем было изобретать что-то новое? Но отличия есть:
  • В APS-каталог может добавить свой продукт любой разработчик, достаточно разобраться со стандартом и пройти сертификацию пакета. Это обеспечивает также своевременность обновлений;
  • fantastico включает в себя 50 веб-приложений — в APS-каталоге уже более 200 наименований (есть и русскоязычные);
  • APS-стандарт позволяет из панели управления хостингом не только установить веб-приложение, но и сменить шаблон, установить плагин, сбросить пароль, выполнить обновление и т.п.;
  • APS-стандарт может использоваться и в Parallels Virtuozzo Containers, включая в себя не только веб-приложение, но и серверное программное обеспечение.

Преимущества использования APS-стандарта:
  • Для разработчика сервисов и веб-приложений – популяризация своего продукта;
  • Для хостинг-провайдера – расширение спектра услуг;
  • Для пользователя – упрощение установки: не надо загружать дистрибутив, разбираться с порядком установки – даже знать, что такое FTP, он получает работающий сайт или веб-сервис;
  • Для Parallels и других разработчиков хостинг-панелей – расширение рынка.


Разработчику — Подготовка APS-пакета


Первое, что нужно сделать, это изучить документацию APS-стандарта. Документация опубликована по адресу: apsstandard.org/isv/documentation
На заметку: В использовании стандартов есть различия, например, cтандарт APS 1.0 поддерживается в Parallels Plesk 9.x, APS1.1 – в POA (Parallels Operation Automation).
В этом году планируется выход Plesk 10, и уже через пару недель выйдёт POA 5.0 с поддержкой APS 1.2.


Архитектурной особенностью стандарта APS является декларативная модель описания приложения и минимизация объема кода «адаптеров», связывающих приложение с хостинговой системой. Такой подход был выбран, как более безопасный – чем меньше «чужого» кода исполняется на серверах провайдера, тем лучше.

Вкратце рассмотрим структуру APS-пакета.
APP-META.xml — файл описания пакета. Содержит описание версии, требования, changelog и т.п.,
так же генерирует интерфейс для ввода данных, необходимых для установки приложения. При установке APS-пакета могут быть предложены как типовые опции – логин и пароль и имя базы данных, логин и пароль к админ-панели веб-приложения, так и расширенные, например, выбор типа СУБД, шаблона отображения, регистрационные данные и т.п. Расширенное использование APS-пакета на примере установки python-фреймворка Django показано в статье: Автоустановка Django

Пакет так же содержит каталоги:
htdocs — файлы веб-приложения;
images – скриншоты установленного веб-приложения, выводятся при просмотре информации о пакете;
scripts — скрипты установки и конфигурирования приложения, в каталоге так же содержится дамп БД и SQL-запросы для смены логина/пароля из панели управления.

Общий порядок подготовки APS-пакета следующий:
  1. Из дистрибутива веб-приложения файлы копируются в папку htdocs;
  2. Копируется дамп БД и в таблицах, в которых хранятся учётные данные пользователей, логин/пароль/e-mail администратора заменяются на переменные — при установке приложения, введённые учётные данные будут записаны напрямую в БД;
  3. Подготавливается APP-META.xml.

Необходимости вносить изменения в код самого приложения нет.

При подготовке APS-пакета желательно иметь доступ к панели, поддерживающей стандарт APS.

Разработчику — Сертификация и публикация на apsstandard.org


Опишем последовательность сертификации и публикации в общедоступном каталоге APS-пакета веб-приложения на примере CMS Livestreet.

Доступ к средствам тестирования Вы можете получить, обратившись через: apsstandard.org/feedback

Основной инструмент тестирования, сертификации и размещения — Панель администратора пакетов «Packager administration panel»: apscatalog.com/packager/admin

Панель управления написана на Django, имеет достаточно простой интерфейс, ориентированный на большое количество пакетов.
Packager administration panel

Нажав ссылку «Upload new package», переходим к форме добавления пакета. Выбираем нужный пакет и жмём «Upload» для загрузки пакета. Обратите внимание на то, что при добавлении новой версии пакета необходимо изменять номер версии и добавлять changelog. В примере полное наименование пакета Livestreet 0.4.1-1, где номер версии пакета следует после дефиса (1).

После добавления пакета, проходит его автоматическое тестирование. Следить за текущим статусом тестов можно, периодически нажимая кнопку «Update test report». Процесс может занять длительное время. Так выглядят результаты прохождения тестов:

Отчёт о тестах APS

Раздел отчёта «Test report» отображает результаты тестирования по установке и конфигурированию приложений. В подразделе «Test steps» отображаются пройденные шаги тестирования, там же доступны лог-файлы и скриншоты тестов.

Отчёт подробнее

В случае неудачного прохождения теста, в колонке «Details» отображается сообщение об ошибке. Ошибка может быть в самом пакете, в приложении или на серверной стороне.

В техническую поддержку apsstandard.org можно обратиться через форму на сайте: apsstandard.org/feedback. Писать можно на русском или английском, отвечают достаточно быстро и дружелюбно. При неудачных тестах пояснят причину ошибки. При возникновении ошибок на стороне сервера перезапустят тесты.

После успешного прохождения всех тестов приложение будет опубликовано в APS-каталоге. Используемый в примере Livestreet, опубликован со статусом «Gold application», стандарт APS 1.0 по адресу:
http://www.apsstandard.org/app/#pkg_name=LiveStreet&pkg_vendor=livestreet.ru&pkg_ver=0.4.1&pkg_rel=1
или в разделе каталога Web – Blogs:
http://www.apsstandard.org/app/#category=Web%2FBlog

С момента публикации APS-пакета LiveStreet, за трое суток было произведено 125 загрузок из APS-каталога.

Хостинг-провайдеру — Загрузка APS-пакета


Как только приложение публикуется в APS-каталоге, оно становится доступным для всех сервис-провайдеров. Продемонстрируем, как провайдер может загрузить CMS Livestreet, и как в дальнейшем пользователь может его использовать — на примере Parallels Plesk.

Plesk

Переходим в раздел «Хранилище приложений» – «Каталог APS». Находим приложение в соответствующей категории или поиском по названию, выбираем для добавления и делаем доступным для установки всем пользователям. Затем достаточно нажать кнопку «Добавить в хранилище» и дождаться загрузки на сервер.

Список хостинг-провайдеров, прошедших APS-сертификацию, опубликован на сайте apsstandard.org/hsp.

Пользователю — Установка APS-пакета веб-приложения


Клиент сервис-провайдера заходит в Панель управления и выбирает домен, на котором планируется установить CMS Livestreet. В группе опций «Приложения и услуги» надо выбрать пункт «Веб-приложения» и нажать «Установить веб-приложение». Затем в списке доступных веб-приложений выбираем требуемый APS-пакет и нажимаем «Установить».
При установке конечный пользователь выбирает целевой каталог, вводит пароли для доступа к базе данных и административной части сайта. Специальных знаний автоустановка не требует.

Приложения расположены в каталоге по разделам: Управление контентом, Блог, Галерея, Электронная коммерция, Электронное обучение, Форум, Календарные планы, Управление проектом и т.п.

Установка Livestreet

Нажав кнопку «Установить», Вы получаете через несколько секунд готовое установленное приложение CMS Livestreet или любое другое из каталога.

Livestreet

Мы рассмотрели весь путь APS-пакета — от его создания, до установки пользователем. Разумеется, в статье не охвачены все технические моменты. Это только краткий обзор использования APS-стандарта, а не детальная инструкция по созданию пакетов и их использованию.
Готов дополнить статью по интересующим хабр вопросам.

Надеюсь, статья заинтересовала разработчиков веб-приложений и коллег — хостинг-провайдеров.
Автор: @komtet
КОМТЕТ
рейтинг 20,49
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Похожие публикации

Комментарии (26)

  • 0
    Если попробовать скачать представленный пакет LiveStreet по кнопке Download на сайте, то мы получаем 404 ошибку.
    • 0

      Проверил — загрузилось. Но на всякий случай скинул информацию техподдержке apsstandard.
      Странно, если хабраэффект накрыл.
  • +1
    Если не трудно, расскажите о процессе дальнейшей поддержки продукта со стороны разработчика. Иными словами, как новые версии LS в будущем разлетаются по хостинг-площадкам?
    • 0
      Аналогично подготовке нового пакета. Т.е. после выхода обновления веб-приложения повторяется весь процесс: упаковка, сертификация, загрузка провайдерами.
      «Автоматической» загрузки новых пакетов нет — на усмотрение хостинг-провайдера. Но в панели администратора (на примере Plesk) очень хорошо видно, какие именно пакеты обновились и можно отметить интересующие и загрузить. Это очень простая процедура. Единственное что — мы все загруженные или подготовленные нами пакеты устанавливаем и проверяем, другим так же советую это делать.
      Хостинг-провайдер может и «для внутреннего использования» готовить APS-пакеты (или получать их от разработчика) и публиковать их только на своих серверах, т.е. минуя aps-каталог.
      • +1
        А как будет происходить апгрейд установленного ПО у конечного пользователя? Или APS не предусматривает миграцию установленных приложений? Ну, мало ли, наменял я там чего-нибудь уже в своей версии…
        • 0
          Пункт «Обновить» установленное веб-приложение есть, и реализация зависит от пакета.
          Не совсем понял, относительно «наменял». Если Вы установили веб-приложение, но при этом вносили изменения в код, устанавливали плагины и т.п. — возможны те же проблемы, что при «штатном» обновлении средствами CMS.
  • +1
    есть-ли какой-то консольный скрипт кторый умеет делать установку таких пакетов? Т.е. я подумал использовать такую штуку для работы с клиентами — однообразное разворачивание проекта на прощадке из консоли.
    • 0
      Идея понятна и интересна. Но такой утилиты не знаю, просто не интересовался, т.к. используются панели. В тексте статьи есть прозрачный намёк, где можно «подсмотреть» реализацию: syscp.org
      Мне кажется, консольная реализация будет не совсем удобна — ведь при установке пакета в панели вводятся или выбираются параметры установки, но для администратора — конечно проще ставить разнородные веб-приложения в едином интерфейсе консоли.
      Может сотрудники Parallels откомментируют?
      • 0
        ну идея контрольной панели как раз в селф-сервисе :) то есть чтобы администратору не надо было ставить ничего для или за пользователя. А пользователю, конечно, удобнее контрольная панель.
        Или какой-то другой сценарий имелся в виду?
        • 0
          Именно это я и имел ввиду. Если говорить о Plesk, то там развитые: XML-интерфейс, возможности командной строки и API. Только вот даже администраторам удобнее ставить из Панели.
          Если говорить про standalone реализацию, т.е. без панели — думаю такая утилита будет многим интересна.
          • 0
            отличный проект для кого-то из наших читателей :)
        • +1
          для внутреннего применения скажем, все готовые проекты складируются в «архиве» и через три года не нужно ничего вспоминать. читать ридми и т.п. на сервере используется некий скрипт для разворачивания — при этом ставить панель только ради этого ну совсем не айс.
          • 0
            Да, идея понятна. Хорошая утилита, кто-то желает реализовать?
            • +1
              Скорее всего каждый не ленивый админ/инженер уже написал подобный скрипт для себя.

              Но здесь заложена потенциальная дырка:
              Почти всем веб приложениям нужна база данных, соответственно два варианта:

              скрипт знает логин к одной базе, где хранятся базы всех приложений (таблицы разнесены по префиксам) — существенный минус в том, что есть риск, что одно приложение подпортит данные другого

              или скрипт знает рутовый пароль к БД серверу, чтобы иметь возможность создавать базы для приложений — имхо, такой вариант с точки зрения безопасности тоже неприемлем.
              • 0
                > Скорее всего каждый не ленивый админ/инженер уже написал подобный скрипт для себя.
                Именно так. Но вот сделать это юзабельным и для масс — сложнее.
                А учётные к БД — можно и этой утилите передавать.
  • 0
    Спасибо ТС. Добавили себе на плески.
    • 0
      Хорошая новость! Присоединяйтесь, советую пройти сертификацию и разместиться здесь:
      www.apsstandard.org/hsp/
      К слову, Вы ведь тоже можете готовить APS-пакеты и предоставлять их, как своим Клиентам, так и на apsstandard.
      • 0
        Да, это в планах. Наработки есть, будем делиться.
  • 0
    Это в каком-то смысле аналог джавишных war/ear для PHP?
    • 0
      Интересная аналогия. С .ear и .war сходство, мне кажется, довольно поверхностное. Т.е. да, есть и XML-файл и пакет находится в архиве, но цели и средства совсем другие.
      APS-пакет служит для автоустановки веб-приложения через унифицированный интерфейс панели управления хостингом, на каком языке написано веб-приложений — не принципиально. Попробуйте — станет понятнее.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное