27 апреля 2015 в 13:09

Virtuozzo переходит на открытую модель разработки

imageМы в бизнес-подразделении Odin* компании Parallels занимаемся разработкой технологий виртуализации с 1999 года. За прошедшие 15 лет мы превратили концепт в платформу для гипервизорной и контейнерной виртуализации Virtuozzo. Всё это время параллельно с коммерческим продуктом развивался открытый проект OpenVZ, в рамках которого разрабатывались компоненты для создания и управления контейнерами, а исходный код был доступен под лицензией GPL. И, несмотря на то, что проект сильно проигрывал коммерческому продукту по объёму функциональности и производительности, вокруг него сформировалось активное и открытое сообщество пользователей.

Нас часто спрашивали почему процесс разработки закрыт и почему компания так недружелюбна к контрибьюторам. Принимая во внимание эти просьбы и интерес к нашим технологиями со стороны сообщества мы открываем часть компонентов Virtuozzo, предоставляя доступ к исходному коду этих компонентов, и открываем процесс разработки. Это позволит всем, заинтересованным в наших технологиях, свободно использовать наши наработки и принять участие в разработке новой версии Virtuozzo.


Вторая важная проблема, которую мы решаем, делая разработку открытой и объединяя кодовые базы — это совместимость открытой и коммерческой версий продукта. Часто наши потенциальные покупатели сначала смотрели на открытый проект, и даже запускали на нем коммерческие сервисы. Однако когда они решали перейти на коммерческую версию, то сталкивались с тем, что обновление с OpenVZ на Virtuozzo неудобно, и порой переход на него даже сложнее, чем с других коммерческих решений виртуализации.

Сейчас пользователи открытого OpenVZ получат возможность простого обновления до коммерческой версии (для чего раньше потребовалось бы покупать отдельный продукт Virtuozzo), а плюс к этому — качественно протестированный код и дополнительные возможности и функции, включая техническую поддержку.

Теперь о деталях. Репозиторий с исходным кодом Linux ядра версии 3.10 свободно открыт для всех желающих, и вы можете как пассивно наблюдать за работой над ядром, так и подключиться к разработке. Документация, описывающая правила приёма патчей, находится в состоянии оформления, но в целом мы будем придерживаться общепринятых правил разработки Linux-ядра, поэтому соблюдайте стандарты кодирования и правила приёма патчей, принятые в сообществе. Процесс разработки ведётся в почтовой рассылке devel@openvz.org, на которую может подписаться любой желающий.

Важное замечание — ядро находится в стадии разработки, оно не готово к промышленному применению, и возможны проблемы совместимости со старыми версиями. Например одним из существенных временных ограничений является отсутствие совместимости ядра со старой версией утилиты для управления контейнерами vzctl, вследствие изменения API для управления контейнерами. Исходный код новой версии утилиты vzctl, совместимой с ядром 3.10, мы также опубликуем, но чуть позднее.

Следующий шаг, который мы сделаем, это открытие исходного кода пользовательских утилит для работы с контейнерами, создания темплитов и т.д. Следите за новостями о проекте в социальных сетях.



* С марта 2015 года бизнес-подразделение компании Parallels, которое занимается продуктами для сервис-провайдеров и решениями серверной виртуализации, работает под новым брендом — Odin.
Автор: @estet
Parallels
рейтинг 183,83

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

  • –5
    Друзья, ну вы что-то затянули. Я понимаю, что LXC на пятки наступает, но вполне возможно благодаря открытию разработки сообществу несколько лет назад, в Docker возможно использовались бы ваши технологии.
    • +1
      Cогласен, индусы из ibm захватили своим lxc всё, что так долго завоевывалось openvz. Хотя я пользуюсь и lxc, и openvz, openvz мне более симпатичен.
    • +5
      Не понимаю сравнений openvz с lxc. Openvz — прежде всего ядро, lxc можно сравнивать с vzctl.

      Что касается докера — в libcontainer вторым по вкладу вижу сотрудника parallels.
    • +6
      Боюсь вас разбудить, но Docker и LXC именно наши технологии и используют — те, что мы влили в ванильное ядро (network namespace, pid namespace, IPC namespace, разные улучшения для cgroups и так далее — всего около 2000 патчей).

      Ваш К.О.
      • +1
        пардон, около 3000
  • –7
    Остался главный вопрос: почему вы ведёте разработку в отдельном репозитории, а не в апстриме? Боитесь язвительных комментариев из LKML?
    • +12
      Конечно же нет. Мы разрабатываем ядро в отдельном репозитории просто потому что так удобнее. Все свои изменения мы пытаемся добавить в апстримное ядро, но так как процесс этот не быстрый, то проще вести разработку в своём репозитории и параллельно вести работу с апстримом.
      Вот, к примеру, патчи от проекта CRIU (Checkpoint and Restore in Userspace) — http://criu.org/Upstream_kernel_commits. Вот патч от нашего разработчика, который делает новый memory management для конетйнеров в 3.10 — https://lkml.org/lkml/2015/2/11/347. Остальные примеры вы можете сами найти.

      P.S. есть ещё отчет о контрибьюторах в Linux ядро от Linux Foundation
    • +2
      Не боимся, у нас уже около 3000 коммитов в ядро.

      $ cd git/linux
      $ git pull
      $ git log --format=oneline --author='@openvz.org|@parallels.com|@sw.ru|@swsoft.com|@sw.com.sg|kuznet@|gorcunov@' -E | wc -l

      2739

      Ваш К.О.
  • +1
    Крутейшая новость :) Интересно, а код настоящей итеративной live миграции откроют или нам придется подтянуться и выложить свою реализацию для нее в user space? :)
  • 0
    отсутствие совместимости ядра со старой версией утилиты для управления контейнерами vzctl, вследствие изменения API для управления контейнерами

    это как раз то, чего когда-то не хватало LXC, а теперь наоборот github.com/lxctl/lxctl.
    • 0
      Это временная несовместимость. Мы не можем сделать всё и сразу, поэтому совместимости пока нет. Но в планах есть пункт с починкой этой совместимости. Кстати, если у вас есть опыт разработки, то можете заняться. У нас очень дружелюбные разработчики и если где-то будет непонятно, то они направят и помогут. :)
    • +1
      Так мы тоже умеем: openvz.org/Vzctl_for_upstream_kernel
  • –1
    Что-то по ссылке на репозиторий ядра открывается вики.

    Дайте угадаю, поменяли в конфиге веб-сервера listen local_ip:80 на listen 80 и сделали не restart, а reload? :)

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

Самое читаемое Разработка