/note/tech

コンテナ向けの軽量Ubuntu「Snappy Ubuntu Core」

Ubuntu Core is a tiny, transactional version of Ubuntu for IoT devices and large container deployments. It runs a new breed of super-secure, remotely upgradeable Linux app packages known as snaps ‐ and it’s trusted by leading IoT players, from chipset vendors to device makers and system integrators.

これまでのUbuntu Coreとの最大の違いは、Ubuntuのモバイルオペレーティングシステムが採用している同社のAppArmorセキュリティシステムを使っていることだ。これによって、ユーザがインストールするアプリケーションのすべてが、互いに完全に隔離される。同社の主張によると、それにより、“ユーザが自分のクラウド展開上にあちこちからの雑多なアプリケーションをインストールしても安全”、である。一つのアプリケーションが抱える問題が、同じシステム上で動いているそのほかのアプリケーションに、何も影響を及ぼさないのだ。

Ubuntuによると、そのため、アプリケーションのアップデートもずっと容易で、信頼性が高い。アップデートの前にはデータが自動的にバックアップされ、アップデートが失敗したら旧バージョンにロールバックするだけで、データはまったく無傷だ。

簡単にまとめておくと,この「Snappy Ubuntu Core(以下Snappy)⁠」はクラウドとコンテナ型仮想化や,さらにはIoTの時代まで見据えた,軽量かつ汎用的な新しいインストール済みイメージファイルです。標準でロールバック機能や個々のアプリケーションの隔離機能を備えており,さまざまなクラウドプラットフォーム上に,Ubuntuシステムをより簡単にデプロイ・リリースできるようになります。

Snappy Ubuntu Coreの特徴は次の点です。

・OSコア部分と,アプリケーションを動かすためのファイルシステムが完全に隔離されている。

・OSコア部分は読み込み専用だが,任意にイメージを差し替えることでアップデートが可能。

・現状ではapt/debパッケージは利用できない。

・「snappy packages」と呼ばれる新しいパッケージ形式を採用し,アプリケーションの管理は「アプリケーションをまるごとコンテナに封印した」バイナリイメージをダウンロードして展開するだけ。

・アプリケーションはそれぞれが完全に独立しつつ共存可能になっており(いわゆるside by side)⁠,お互いに影響を及ぼさない。

・Docker等がもたらした「1アプリケーション1コンテナ」モデルに近いが,完全なコンテナとは異なり,OSコア部分は共有できるようになっている。

・いつでも,「⁠前に正常に動いていた状態」にロールバックできる。

コンテナを使ってアプリケーションを実行させる場合、アプリケーションの実行に必要となるライブラリや関連コンポーネントなどはすべてコンテナ内に配置しておくのが一般的だ。そのため、コンテナを仮想させるホスト上では、コンテナ管理ソフトウェア(一般的にはDocker)を実行させるのに必要なソフトウェアのみがあれば良い。しかし、一般的なLinuxディストリビューションではコンテナ管理ソフトウェアの実行に不要なソフトウェアまでもインストールされてしまう。コンテナに特化したOSでは、このような不要なソフトウェアがインストールされず、必要最小限のソフトウェアのみを含む環境を容易に構築できるのが特徴となる。