Представьте, что ваши облачные инстансы обновляются так же чётко, точно и быстро, как ОС мобильного телефона. Что, если все приложения можно изолировать друг от друга полностью, так что установка какого-нибудь из них не повредит работе другого или что уязвимость в одном повлияет на другие? То есть программы ставятся без зависимостей друг с другом и без сборочных конструкций.
Именно такую логику Canonical реализовала в новом образе Ubuntu Core (Snappy), который сегодня выкатили в облаке Azure и в виде KVM для установки на любой Linux-компьютер.
Марк Шаттлворт назвал Ubuntu Core самым большим нарушением традиции за 10 лет с момента создания Ubuntu, потому что здесь не используются пакеты .deb или apt-get. Новая система полностью меняет традиционную пакетную систему серверов и настольных версий Ubuntu.
Это нововведение анонсировалось ещё в мае 2013 года. Тогда говорилось, что новые «клик-пакеты» в первую очередь «коснутся версий ОС для планшетов/смартфонов, но в последствии могут быть применены где угодно, вплоть до не убунтушных дистров и даже не линуксовых осей». Так оно и вышло. Систему сначала опробовали в Ubuntu Phone, а теперь накатили на серверные и десктопные Ubuntu.
Как только Canonical делает какие-то изменения в пакетах — апдейт сразу накатываются в Ubuntu Core, и все системы могут обновиться транзакционно. Более того, по объёму новые обновления даже меньше, чем раньше, потому что присылается только разница между старой и новой версией. Установка файлов будет занимать секунды или доли секунды.
Марк Шаттлворт сказал, что новая snappy-система не ставит целью вытеснить другие версии Ubuntu, а будет существовать параллельно с ними. В то же время у неё есть ряд явных преимуществ: это чёткий контроль за конфигурацией сервера, скоординированные апдейты на тысячах машин, простой откат апдейтов назад и т.д. Всё работает очень просто и удобно.
$ snappy info
$ snappy build .
$ snappy install foo
$ snappy update foo
$ snappy rollback foo
$ snappy remove foo
$ snappy update-versions
$ snappy versions
Разработка нового формата обновлений продолжалась три года в рамках создания мобильной платформы. За это время другие компании тоже реализовали варианты транзакционных обновлений в своих системах: среди них ChromeOS, Gentoo, CoreOS, Docker, ещё есть такая версия RHEL Atomic.
В Ubuntu Core постарались использовать всё самое лучшее из каждой. Тут реализовали транзакционные обновления не только для системы, но и для приложений, реализовали возможность гибкой настройки конфигурации под себя, выбирая нужные версии пакетов и библиотек (скажем, в Atomic это плохо реализовано).
Хотя, типичной системе в облаке, по мнению Шаттлворта, достаточно всего трёх пакетов.
$ snappy info
release: ubuntu-core/devel
frameworks: docker, panamax
apps: owncloud
Ubuntu Core повышает и безопасность систем, потому что есть центральный репозиторий фреймворков и пакетов с цифровыми подписями, и любые компьютеры на разных концах мира могут сравнить и убедиться, что у них установлены в точности одинаковые версии ОС и приложений. Ни одно из приложение не имеет доступа к данным другого.
Автор: alizar