Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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標準イメージ

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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鍵ペア指定可能

Slide 18

Slide 18 text

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)

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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