Веб-сервисы, "облачные вычисления", социальные сети - эти изобретения эпохи Веб-2 стали уже привычными для современных пользователей. Ну разве что "облачные вычисления" для некоторых ещё в новинку. Интернет-проект OpenSUSE Build Service (OBS), созданный компанией Novell, - хороший способ познакомиться с "облачными платформами".
Основы
Интернет-сервис сборки пакетов openSUSE Build Service представляет собой полный набор инструментов разработчикам программного обеспечения для различных дистрибутивов "Линукс". Во-первых, автор программы получает в своё распоряжение вычислительные мощности серверов Novell для компиляции, разработки и тестирования своего приложения. Во-вторых, OBS содержит в себе функциональность социальных сетей, что позволяет разработчикам связывать свои проекты и создавать команды для совместной работы. В-третьих, OBS представляет собой веб-сервис для публикации, распространения и поиска приложений.
Для непосредственных пользователей эта интернет-служба является ресурсом, где они могут найти свежие пакеты с открытым кодом для своего дистрибутива "Линукс". OpenSUSE Build Service предлагает пользователю также возможность более тесного взаимодействия с разработчиками.
По своей идее, OBS является логическим продолжением концепции известной службы распространения программ с открытым кодом SourceForge. Основной особенностью OBS является реализация набирающей популярность концепции Cloud Computing.
Концепция Cloud Computing появилась на самом деле довольно давно. Автором этой идеи считают американского профессора и коммуниста Джона МакКарти, создавшего язык LISP. МакКарти в революционные 60-е годы предложил смотреть на вычислительные ресурсы так же, как и на какие-нибудь централизованные коммунальные услуги - электроэнергия, отопление и т.д. Но только в последнее время эта концепция начала принимать определённые практические формы.
Такой подход даёт возможность не заниматься "натуральным хозяйством" в области вычислений, разгрузить собственные вычислительные ресурсы и воспользоваться мощностями на удалённых серверах. В этом отношении сервис OBS позволяет производить сборку и компиляцию программ централизованно на серверах Novell, совершенно не загружая этим процессом собственный компьютер разработчика. От программиста требуется только загрузить на сайт исходники и специальный файл для сборки.
Удобство для разработчика программы от такой организации не только в некоторой экономии собственных вычислительных средств. Действительно, сборка программы на внешнем сервере даёт возможность мобильного доступа к текущему проекту с любого компьютера, который подключён к Сети, а также использовать для управления компиляцией и сборкой даже "тяжёлого" приложения лёгенький EeePC или даже смартфон.
Но наиболее очевидны преимущества "облачной" компиляции именно для системы GNU/Linux в силу их специфики. Популярных дистрибутивов "Линукс" существует чуть ли не целая дюжина, и в ближайшей исторической перспективе вряд ли стоит ожидать, что останется один единственный универсальный дистрибутив. Поэтому разработчик программы обычно публикует только исходные коды своей программы, а уже готовые пакеты этой программы создают майнтейнеры каждого дистрибутива или сам пользователь. В последнем случае это возня с devel-пакетами, библиотеками, зависимостями, версией компилятора и прочими прелестями самостоятельной сборки программы. Да и сам непосредственный разработчик программы не в состоянии собрать готовые пакеты хотя бы для пятёрки самых популярных дистрибутивов, так как это потребует наличия настоящей "компьютерной фермы", компилирующей программное обеспечение для разных дистрибутивов и архитектур.
Служба OpenSUSE Build Service решает эту проблему, так как даёт возможность скомпилировать программу не только для серии систем SUSE, но и для других популярных дистрибутивов. Для этого надо всего лишь загрузить на серверы OBS исходники, специальный сборочный файл и выбрать на специальной странице дистрибутивы и архитектуру, для которых нужно собрать действующий пакет.
На текущий момент поддерживаются следующие системы: SUSE, Debian, Red Hat Enterprise Linux, Fedora, CentOS, Mandriva Linux, Ubuntu. Сервис OBS автоматически решает проблемы с зависимостями между пакетами. Служба сборки может функционировать и с внешними службами и веб-ресурсами (например, SourceForge).
Пользователь, благодаря доверительным отношениям в службе сборки, получает возможность иметь теперь свежие сборки пакетов, в том числе и для устаревших версий дистрибутивов. А опытный пользователь "Линукс" и сам может посредством этого ресурса собрать нужную себе программу. Требуется только знание и понимание процесса создания готовых пакетов.
Функциональность и интерфейс
Сервис ещё молодой и экспериментальный, многие его функции будут изменяться, развиваться, и, соответственно, будет изменяться и интерфейс службы. Поэтому приведу только общее описание функциональности и интерфейса.
Доступ к функциям сервиса осуществляется посредством веб-интерфейса. Но для линуксоидов, которые считают "мышиный" интерфейс интернет-браузера неудобным, существует и интерфейс командной строки посредством специальной утилиты osc.
Как и положено на любом веб-сервисе, работа в OpenSUSE Build Service предполагает создание рабочего экаунта, после чего на почтовый адрес новичка будут высланы поздравления и необходимые рекомендации и советы по эксплуатации сервиса.
Линуксоиды не любят изобретать велосипед, и прежде чем собрать новый пакет, следует посмотреть, не существует ли уже аналогичный проект. Ознакомиться с текущими проектами можно через "Список всех проектов" или систему поиска. Присутствует и "облако тегов", ставшее уже привычным элементом интерфейса многих интернет-сервисов.
Для сборки пакетов имеется нечто похожее на мастера, который в пошаговом режиме проводит через стадии сборки пакета. Для каждого проекта имеется отдельная страница с ajax-интерфейсом, на которой можно отредактировать spec-файлы для сборки, добавить дополнительные патчи к исходникам, задать дистрибутивы. Здесь же можно добавить новых членов в команду для работы с данным проектом и связаться с ними через e-mail.
Заключение
OpenSUSE Build Service - это даже не отдельный веб-сервис, а целая инфраструктура веб-сервисов. Всё это носит пока экспериментальный характер, о чём говорят сами создатели проекта и призывают смелее экспериментировать. Но при этом уже сейчас здесь имеется много интересных сборок. Например, здесь уже собрана неплохая коллекция эмуляторов, есть неплохие интересные пакеты по теме мультимедиа.
Основная же проблема сервиса - это доверие к собираемым здесь приложениям. Никто не хочет под видом полезной программы установить себе трояна. Но, думаю, со временем появятся продвинутые функциональные возможности разрешать любые опасения, связанные с опубликованными на этом ресурсе пакетами.
Михаил АСТАПЧИК