Майкл Холл (Michael Hall) по долгу службы на посту Ubuntu Community Manager решил начать цикл интервью со сторонними разработчиками, чтобы узнать от них что сподвигло на использование нового формата пакета и что им это дало. Первое интервью с разработчиком Rocket.Chat Аароном Огле (Aaron Ogle).
Rocket.Chat - сервер для групповых чатов, с поддержкой обмена файлами, видеоконференциями, поддержкой ботов и так далее. Есть возможность использовать Rocket.Chat через веб или через мобильные/десктопные клиенты.
Как узнали про snap?
Мы в Rocket.Chat всегда были фанатами Убунту. Наши рекомендации по установке Rocket.Chat для пользователей предлагали Ubuntu 14.04 LTS. В последнее время пользователи стали просить руководство для Ubuntu 16.04 LTS и, проводя исследование, мы и столкнулись с новым форматом snap.
Что привлекло в snap, ради чего вы решили ими заняться?
Есть несколько причин, заинтересовавших нас:
* Безопасность и пуленепробиваемая изоляция. Для нас это было ключевым моментом при принятии решения. Нам нужна изоляция, так как на ПК пользователя нужно существовать с другими установленными программами. Тем более в будущем будем опираться на данный аспект при масштабировании в кластере с помощью JuJu.
* Автоматическое обновление. Мы легко можем предоставить пользователям обновления нашего продукта.
* Транзакционное обновление. Наши пользователи легко могут сделать откат при возможных проблемах, что избавит нас от головной боли при поддержке продукта.
* Возможность предоставить полный стек. С нашим сервером мы можем легко представить нужный нам mongodb сервис, исключив целый пласт вопросов по его поднятию.
* Время развёртывания. В наших тестах мы получили меньше минуты между вводом команды и готовым к работе сервером Rocket.Chat. Впечатляющий результат!
Широкая известность Ubuntu и возможность использовать её - невероятно ценно для нас. Сделать для пользователей с помощью Убунту ещё проще весь процесс - мы не могли такому сопротивляться!
Как бы вы сравнили процесс создания snap по сравнению с другими форматами? Как проходил вопрос интеграции с вашей существующей инфраструктурой и процессом?
Rocket.Chat поддерживает более 30 платформ развёртывания - от облачных решений до развёртываний внутри компании (on-premises software), от tarball до заранее подготовленных виртуализированных сред. Наша цель состоит в том, чтобы пользователю было как можно легче и проще поднять свой работающий Rocket.Chat сервер.
Реально понравилось в snap то, что он объединил в себе лучшее из различных методов развёртывания ПО и избежал их недостатков. Сам процесс упаковки Rocket.Chat в snap прост, как его YAML файл и добавление в нашу Continuous Integration (CI). Это, безусловно, самый простой метод дистрибьюции что мы когда-либо использовали.
Сейчас вы используете Ubuntu Store как механизм распространения вашего ПО?
Наш CI автоматически публикует новый релиз в Store. Нам нравится данный способ дистрибьюции, так как пользователи могут легко поставить наше детище - sudo snap install rocketchat-server
. Быстро скачается, поставится и в дальнейшем будет автоматически обновляться. Это круто!
Какие каналы для релизов (edge/beta/candidate/stable) вы используете или планируете использовать?
В данный момент мы используем stable для основных релизов, edge для наших разрабатываемых билдов. В ближайшем будущем планируем использовать beta и candidate.
Есть другое ПО, которое вы разрабатываете и хотели бы так же представить в виде snap пакета?
Мы так же пакуем в snap наш десктопный клиент. Если что-то выпустим ещё, то обязательно сделаем доступным в snap.
Кроме ваших программ, какое ПО или сервисы хотелось бы видеть в snap?
Многие разработчики хотели бы Visual Studio Code. Удивляет быстрый рост количества snap, которые пополняются большими темпами. Сам лично видел, что кто-то делает неофициальный snap для Google Play Music Desktop Player.