Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KUSANAGI RoDの紹介

KUSANAGI RoDの紹介

KUSANAGI Runs on Dockerが何をもたらすのか、を紹介します

Satoru MIYAZAKI

February 23, 2019
Tweet

More Decks by Satoru MIYAZAKI

Other Decks in Technology

Transcript

  1. KUSANAGI RoDの紹介
    OSC 2019 Tokyo/Spring
    みやざきさとる
    KUSANAGIユーザ会

    View Slide

  2. アジェンダ
    ⚫自己紹介
    ⚫KUSANGIについて
    ⚫KUSANAGI Run on Dockerとは
    ⚫KUSANAGI RoDがもたらすもの
    ⚫KUSANAGI RoDの今後

    View Slide

  3. 自己紹介
    ◦KUSANAGIを作ってる人
    ◦ 好きなOS: Solaris
    ◦ 好きなFS: ZFS
    ◦ 好きな仮想化: Solaris Zone
    satoru.miyazaki.31
    @s_miyaza
    宮﨑悟
    MIYAZAKI, Satoru

    View Slide

  4. 超高速WordPress仮想マシン「KUSANAGI」
    マスコットキャラクター 草薙 沙耶
    KUSANAGIについて

    View Slide

  5. KUSANAGIとは
    ⚫超高速WordPress仮想マシン
    ⚫16の主要なクラウドプロバイダで提供
    ⚫インスタンス料金のみで利用可能
    ⚫GPLv2で提供
    ⚫WordPress以外のLAMP環境も使用可能
    ⚫LAMP
    ⚫Concrete5
    ⚫Drupal7/8
    ⚫Rails

    View Slide

  6. WordPressとは
    ⚫圧倒的シェアを持つグローバルスタンダードCMS
    ⚫トップ1,000万サイト中 33.2%が
    WordPressを利用
    33.2%=世界の約1/3がWordPress
    ⚫CMSでは60.1%がWordPressを使用
    33%
    67%
    WordPress Others
    W3Techs.com調べ

    View Slide

  7. とにかく早いKUSANAGI
    ⚫今お使いのWordPressサイトの、
    最大約17倍の高速化を実現!!
    ⚫表示に1秒かかっていたページが、
    約20ミリ秒まで高速化!!!
    17x Fast!!!

    View Slide

  8. セキュリティもスゴイKUSANAGI
    ⚫サイトのHTTPSを強力に推進
    ⚫Let's EncryptによるSSL証明書対応
    ⚫HTTP/2に対応
    ⚫パイプライン化とストリーム多重化
    ⚫HTTPヘッダの圧縮
    ⚫コンテンツ種類による優先度設定
    ⚫TLS1.3に対応
    ⚫ハンドシェイクの暗号化強化と効率化
    ⚫古い暗号化スイートの排除

    View Slide

  9. 超高速WordPress仮想マシン「KUSANAGI」
    マスコットキャラクター 草薙 沙耶
    KUSANAGI Run on Docker
    とは

    View Slide

  10. KUSANAGI をDockerで動かす
    ⚫KUSANAGI Run on Docker(以下RoD)は、
    Dockerマシン上で動作するWordPressの仮想化
    ⚫ KUSANAGIの構成をDockerマシン上で再現
    ⚫docker-machine、docker-composeを使用
    ⚫Docker ImageはDockerHubにて公開中
    https://hub.docker.com/r/primestrategy/

    View Slide

  11. Dockerとは
    ⚫Docker=コンテナ型仮想化
    ⚫ホストOSからリソース(プロセス)のみを分離=準仮想化
    ⚫ホストOSと同じカーネルで動作する=オーバーヘッドなし
    ⚫Dockerは、アプリケーションコンテナ
    =アプリケーションを動作させるためのコンテナ
    ⚫IaaSの殆どは完全仮想化
    ⚫ホストOSとは違うOS(=カーネル)が動作
    ⚫エミュレーションを使用=オーバヘッドあり

    View Slide

  12. Dockerの特徴
    ⚫Docker イメージの利用
    ⚫1サービスをまとめたもの=イメージ
    ⚫複数サービスが必要なときは、複数イメージを使用
    ⚫Docker Hubなどのイメージリポジトリが用意される
    ⚫不要なファイルが必要ない=セキュア
    ⚫コンテナ型仮想化の特徴
    ⚫高速起動
    ⚫リソース使用量が少ない
    ⚫再利用が容易
    ⚫イメージのレイヤ構造が利用可能
    ⚫あるイメージに設定追加して別サービスが使用可能

    View Slide

  13. KUSANAGI RoDの基本構成
    docker-machine
    NGINX
    Apache
    PHP7 MySQL
    Data
    Client PC
    • docker
    • docker-machine
    • docker-compose
    http/https
    ログ収集
    (journaldなど)
    config

    View Slide

  14. KUSANAGI RoDの特徴(1)
    軽量LinuxOSの採用
    ⚫Alpine Linux3.9、Ubuntu(18.04)ベースのイメージで構成
    ⚫NGINX-1.15.8
    OpenSSL1.1.1a
    ⚫Apache httpd-2.4.38
    OpenSSL1.1.1a
    ⚫PHP7.3.2
    ⚫MariaDB 10.4.2
    Ubuntu Bionicベース
    ⚫ftpd
    ⚫config(WPCLI)
    WordPress標準イメージ

    View Slide

  15. KUSANAGI RoDの特徴(2)
    設定の簡易さ
    ⚫Docker-machineによる外部Dockerのサポート
    ⚫デフォルトはlocalhostでのDocker起動
    ⚫docker-composeによる複数Dockerイメージの管理
    ⚫docker-machineを指定することで、外部のDockerマシンを利用可能
    ⚫設定ファイルの生成/管理
    ⚫Dockerイメージは、環境変数により設定変更可能
    ⚫環境変数をファイルに書くことで容易に設定変更
    ⚫docker-composeの設定ファイルdocker-composeは、
    コマンドで実施

    View Slide

  16. KUSANAGI RoDの特徴(3)
    自由な構成管理
    ⚫自由な構成
    ⚫Webサーバとして、NGINXかApache httpd の選択可能
    ⚫デフォルトのDBはMariaDB
    ⚫外部のDBを利用可能(DBaas=DB as a Serviceを含む)
    ⚫FTPなしの構成可能
    =外部サイトからの更新を不可にする
    ⚫Gitによる版管理
    ⚫生成したWordPressデータは、ローカルディスクとDockerイメージ間で同期可能
    ⚫WordPress DBデータもimport/export可能
    ⚫同期したデータを、gitで版管理

    View Slide

  17. KUSANAGI RoDの特徴(4)
    より高いセキュリティ
    ⚫不要パッケージの排除
    ⚫root権限でのサービス起動を排除
    ⚫Dockerイメージ作成時に脆弱性検査を実施
    ⚫Aqua社のMicroScannerを使用
    https://blog.aquasec.com/microscanner-free-image-vulnerability-scanner-for-developers
    ⚫Dockerイメージ作成時点での高い脆弱性なし!
    ⚫最新のOpenSSL1.1.1系採用
    ⚫chacha20-poly1305など、最新の暗号スイートに対応済み
    ⚫HTTP/2およびTLS1.3に対応
    ⚫SSL鍵
    ⚫Let's Encryptにより、フリーの認証済みSSL証明書を使用可能
    ⚫SSL鍵ペア指定可能

    View Slide

  18. KUSANAGI RoDの動作環境
    ⚫クライアント
    ⚫docker、docker-compose、docker-machine
    ⚫bash、binutils
    ⚫OSはLinuxなど(WSLでもOK)
    ⚫サーバ
    ⚫dockerサービスが動作すること
    ⚫docker-machineが対応していること
    (amazonec2, azure, digitalocean, exoscale, generic, google,
    hyperv, rackspace, openstack, softlayer, virtualbox,
    vmwarevcloudair, vmwarefusion, vmwarevsphere)

    View Slide

  19. 超高速WordPress仮想マシン「KUSANAGI」
    マスコットキャラクター 草薙 沙耶
    KUSANAGI RoDが
    もたらすもの

    View Slide

  20. 物理サーバ・IaaS
    DBサービス
    PHPサービス
    httpサービス
    KUSANAGI RoDで何ができるか
    ⚫密結合サービスの分離
    ⚫LAMPスタック=Linux+Apache(NGINX)+MySQL+PHP
    ⚫KUSANAGI RoDに移行する
    →密結合したLAMPスタックのサービスを分離
    httpサービス
    PHPサービス
    DBサービス
    Data
    物理サーバ・IaaS
    httpd php DB
    Data

    View Slide

  21. 密結合から疎結合へ
    ⚫KUSANAGIでもクラスタ構成は可能
    ⚫DBのクラスタ=Garela Cluster
    ⚫データ同期をlsyncで実施
    ⚫サーバ単位でのクラスタ構築→密結合でスケールしにくい
    ⚫スケールアウトしやすい構成へ
    ⚫サービス毎にスケールできる
    ⚫ボトルネックになるサービスだけを増強
    ⚫サービス毎にバージョンアップしやすい構成
    ⚫ローリングリリース

    View Slide

  22. なぜ疎結合にするのか
    ⚫いまはスケールアップしにくい環境にある
    ⚫CPUスピードが上がらない
    ⚫メモリを増やすのにも限界がある
    ⚫CPUもスケールアウトの時代(メニーコアの台頭)
    ⚫本当に欲しいものはCPUパワーですか?
    ⚫サービスが継続できる事が重要
    ⚫接続スピード=CPUパワーで解決
    ⚫接続数=CPUの数で解決できる
    ⚫CPUの数を増やすことで、CPU1つあたりの負荷を低下

    View Slide

  23. 疎結合サービス化
    ⚫複数クラウドサービスの併用
    ⚫ハードウェアからの解放
    ⚫スムーズなスケール構成
    ⚫本当に必要なサービスを顧客に届ける

    View Slide

  24. 開発・デプロイしやすい構成
    ⚫開発環境と本番環境の分離
    ⚫gitのbranch
    ⚫docker-machineの切替
    ⚫ブルー・グリーンデプロイ
    開発環境
    本番環境
    ステージング環境

    View Slide

  25. 超高速WordPress仮想マシン「KUSANAGI」
    マスコットキャラクター 草薙 沙耶
    KUSANAGI RoDの今後

    View Slide

  26. KUSANAGI RoDは絶賛開発続行中
    ⚫2月リリースできなかったよ…orz
    ⚫現在、WordPressに注力中
    ⚫WordPress以外(LAMP、concrete5、Drupal、Rails)も続々
    ⚫KUSANAGI RoDは、すべてGithubで開発中です

    View Slide

  27. 今後の流れ
    ⚫まずは正式版リリース(近日中)
    ⚫WordPress以外の対応(近日中)
    ⚫各種クラウドでの検証(近日中)
    ⚫CaaS(Container as a Service)への対応(?)
    ⚫KaaS(Kubernetes as a Service)への対応(?)
    ⚫CI/CDツールとの連携(?)

    View Slide