Swiftが動くDockerコンテナの各OSの性能比較 | try! Swift Tokyo 2018 Day2-14

Swiftがオープンソースとして公開されてLinuxサポートがされてから数年経ち、サーバーサイドSwiftの導入・運用事例が増えてきました。その間にもSwiftはアップデートされ続けていて、Swiftのバージョンを複数の開発・運用マシンで揃えることのコストが高くなってきています。このコストを削減するためにDockerを用いると、Swiftのバージョンを固定したコンテナ型の仮想化環境を用意できるので、マシンのローカルのSwiftのバージョン依存することなく開発することができます。また、Dockerは完全仮想化を行うわけではないのでディスク使用量は少なく、仮想環境の作成や起動は速いという特徴があります。このトークではSwiftに最適なDockerコンテナを紹介します。

Swiftが動くDockerコンテナの各OSの性能比較

f:id:niwatako:20180302171119j:plain

会社で英語のサービスを作っていますが英語苦手です。

Linuxに於けるSwift

f:id:niwatako:20180302171311j:plain

MacでなくLinuxならサーバーサイドが現実的です。しかし常に安定した環境を用意するのは困難なので解決策にDockerがあります。

Swiftが動くDockerコンテナでどのような環境が良いか調べました。

f:id:niwatako:20180302171407j:plain

ビルド環境です。LSTのUbuntuを使い、DockerSwiftImageを使いました

f:id:niwatako:20180302171438j:plain

Vaporがよく使われるものの一つなのでVaporイメージを選びました。Kituraにすればよかったでしょうか。

サーバー環境です

f:id:niwatako:20180302171552j:plain

こちらで負荷テスト

f:id:niwatako:20180302171556j:plain

f:id:niwatako:20180302171608j:plain

f:id:niwatako:20180302171619j:plain

f:id:niwatako:20180302171626j:plain

f:id:niwatako:20180302171634j:plain

f:id:niwatako:20180302171645j:plain

ベースのOSで殆ど変わりはなかった。

Imageのサイズで比較

f:id:niwatako:20180302171712j:plain

f:id:niwatako:20180302171731j:plain

Imageを軽量化した実行用のImageを用意したほうが良い

現在は16.04がベースが良いが、もうすぐ18.04が出るのでそちらがよいということになると思います。

f:id:niwatako:20180302171819j:plain

[広告]面白かったら、ためになったら

  • はてなブックマークSwift タグをつけてブックマーク!
  • 「インターネットで生活を楽しく豊かにしたい」仲間を募集しています
  • Bitcoin: 3KGqXtR1ZaGVdkvcw8CCNrkDxDhdbZBYHL