Назад | Перейти на главную страницу

Как распределить виртуальную машину, чтобы пользователи могли опробовать программу с большим количеством зависимостей?

Я написал часть академического программного обеспечения, которое имеет множество зависимостей стороннего программного обеспечения (и требует СУБД). Я хотел бы создать образ виртуальной машины Linux, предварительно загруженный со всеми необходимыми зависимостями и настроенными учетными записями пользователей, чтобы мои пользователи могли загружать и опробовать мое программное обеспечение без необходимости устанавливать все зависимости.

Как лучше всего это сделать и какой формат файлов виртуальной машины мне следует использовать?

Вы, вероятно, захотите изучить OVF, который, скорее всего, станет отраслевым стандартом для виртуальных устройств. Он преимущественно поддерживается VMware и VirtualBox, обеими платформами, на которые вы, вероятно, захотите ориентироваться; Xen поддерживается в XenServer, а KVM поддерживается в RHEV, при этом встроенная поддержка обоих базовых продуктов гипервизора все еще ожидается.

Лично я предлагаю его в форматах Virtualbox и VMWare, поскольку Virtualbox бесплатный, а плеер VMWare бесплатный, хорошо поддерживается и популярен.

Что вы имеете в виду под «лучшим способом»? Если вы имеете в виду предлагать его пользователям, вы всегда можете создать CD / DVD и предложить его бесплатно по почте и / или предложить его через CDN или личный веб-сайт; вы не упоминаете, какие ресурсы у вас есть. У вас есть вебсайт? Это часть бизнеса? Это побочное хобби?

Насколько большими будут полученные изображения? Они вообще сжимаются?

Вероятно, это будет популярная загрузка, которая может создать нагрузку на ваш сайт или облагать налогом любые ограничения передачи, установленные вашим провайдером?

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

Это как бы сводится к вопросу о том, какие ресурсы вам доступны, и насколько сообразительными будут ваши конечные пользователи, чтобы понять, насколько детально вы будете предъявлять требования к конечному пользователю, просто чтобы опробовать ваш продукт. Некоторым может не понравиться загружать отдельные продукты, чтобы опробовать вашу виртуальную машину. Другие системные администраторы, вероятно, уже установили VMWare или VMWare player или Virtualbox.

Известно ли вам, что ваши пользователи имеют доступ к тому или иному гипервизору? это очень поможет.

Один, далеко не бесплатный, метод - использовать VMWare ThinApp Система позволяет упаковать виртуальную машину и связать ее с легким гипервизором в один файл .exe - это очень мало влияет на пользователей, но требует затрат.

Я бы предпочел вообще отказаться от использования виртуального образа для этой цели. Рассмотрите возможность использования Кукольный без использования ролей хозяина / агента. (или Поварили любой другой вариант). Затем вы просто отправите нужные вам спецификации в одном файле.

Единственное, что вам нужно будет предоставить, это ваши классы Puppet и пример определения узла. Затем попросите пользователя установить агент Puppet на одну из поддерживаемых ОС и запустить

puppet apply myapplication.pp

Преимущества:

  • Вы отправляете только текстовый файл, содержащий спецификацию того, что устанавливается. (в идеале, если все зависимости могут быть удовлетворены из общедоступных мест)
  • Его можно использовать повторно для других операционных систем и версий.
  • Программное обеспечение на виртуальной машине всегда в актуальном состоянии (с точки зрения безопасности или, по крайней мере, это больше не ваша работа).
  • Может работать в существующих наборах машин.
  • Конечный пользователь может просматривать изменения, вносимые в его систему, вместо того, чтобы запускать виртуальную машину из внешнего ненадежного источника в своей доверенной сети.
  • Отправляя обновление файла Puppet, пользователи также могут легко обновить его, не устанавливая новую виртуальную машину.

Недостатки:

  • Требуются некоторые усилия, чтобы создать хороший файл Puppet без ошибок.
  • Не все можно очень легко окучить.