ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

DockerとかImpara+kuduとかを聞いてきた!

2017-10-09 07:52:18 | Weblog
10月8日PHP Conference 2017に行ってきた!つづきをメモ
(最後に「PHPカンファレンス2017」のスライドまとめ)




■DockerでPHPアプリケーションを本番リリースするまで
・おしらせ
 speaker deckにアップするよ

・アンケート
 開発でDocker使ってる人
 本番で運用している人:1人→この状態2年くらい

・じゃ、これからコンテナ本番リリース

・Dockerを本番運用してわかったこと
 福岡でやった

・今回は趣向を変えて
  あなたのハートに火をつけたい

 さあはじめましょう
 
・Dockerコンテナを本番で使うのに必要なこと
 1.深く考えない
 2.コピペ
 3.クレジットカード

・とはいえ、最低限の知識
 1.ローカルでコンテナを作成
 2.レジストリにPUSH
 3.本番にリリース

・代表的マネージドサービス
 GKE
 Docker Cloud

・クバルネティス K8S クーバネーティス 操縦者の意味

・Docker Swarm すうぉーむ

・本番環境ごとに説明

・GKE
 事前準備:
  GCPアカウント
  gcloudコマンド

 手順
  ローカルでのコンテナ作成(動作確認)
  レジストリにPHSH
  本番コントロール K8Sをつかってる(コントロール)

 あとはkubecontrollに習熟すればOK

・Swarm mode
 AWS,Azureに入れる。方法は一緒

 手順はいっしょ
  ローカルでのコンテナ作成(動作確認)
  レジストリにPHSH
  本番:ここがswarmにかわるだけ→cloudformationを使う
  →ただ、10分くらい上がってこない

・Heroku:
 アカウント作ってください
 APP作成、PUSH→イメージもherokuが作る
  
・まとめ
 マネージドな環境を使うことで、かなり簡単

■Kuduを使用したKPI分析システム
・自己紹介
・会社紹介
・この資料はPHP 2%あるかないかくらい
・ゲーム開発におけるKPI基盤
 ないときKPIシステムをゲームごとに集計
  DAU/ARPU
 →KPI基盤を開発して共通化!
・KPI基盤
  BIツール作成、KPI集計
・CDH5.4.11で
  HDFSでログ
  バッチはHive
  そのあとRDBMS
  ログをFluentd経由
・しばらくは問題なし
  人間の欲は深い
  いろいろな要求が出てくる
 →実現困難
   速度面:Hive
   バッチの量産は困難
   バッチ前提:リアルタイム分析は困難
 →Hiveとは別のシステム
   高速に集計するしくみ
   分析者にも集計してもらう
   リアルタイムにアクセスできる仕組み
・解決策は
  これらを満たすには→Impala+Kudu
 (別のapacheプロジェクト)

・なぜImparaとkudu
 3つのメリット
  高速処理
  全員分析者になれる
  リアルタイム処理

 バッチ処理後のデータはkuduに格納
 バッチ以外のアクセスはImpalaで

・高速処理
  ImpalaはHiveと捕獲すると、かなり高速
    インメモリでの集計
    Impala-Demon
 Hive4分30秒→Impala+kudo0.22秒
    爆速

・全員分析者になれる
  以前 HDFS→Hive集計→MySQL→PHP
   イレギュラーケースは対応できない
  標準的なSQLでの分析は便利

  Impalaと組み合わせることでSQL可能
  (KuduはSQLインターフェースない)

・リアルタイム処理
 ストリーミングでデータが流れていた
 ログさえ到達すればアクセス可能

Impara
・標準的なSQLインターフェース
 高速処理

 Kudu
  更新削除
  全データに触れること可能

・導入時に行ったこと
 CDHのバージョンアップ(5.10以上→5.11へ)
 インストール:Cloudera Manager
 データ移行:Apache sqoopによるデータ転送(MySQLからHive)
  HiveからKuduはImparaでできる(SQL)

・注意点
 導入 CDH 5.10
 kuduのカラムの型にtimestampが使用できない Unixtime→BIGINT
 タイムスタンプ系の関数はUTCとして扱われる
  Impalaの起動オプション

・最後に
 いつでもだれでも多様な分析を行えるように!
 Kudu簡単に検証できるQuick VMがある
 エンジニアも非エンジニアも幸せに

■片手間MySQLチューニング戦略
・自己紹介
・スローログ出しましょう
 一定時間以上かかったSQLを出力する
  →オンラインでも有効にできる。小数点で時間指定できる。テーブルにもできる
 ジェネラルログ:全部吐き出す→実行前に吐き出す
 スローログ→実行後に吐き出す
 ポイント
 Timeが短時間に集中している
 時間分布を把握するためのツール あねもめーたー
 row_examined,row_sentが十分小さい→indexつけるか?
 そもそもrow_sentが大きくない?
 WHEREが特定の物に偏っていないか→インデックスの使い分け

・バッファプールの気持ちになる
 物理メモリーの75%
 ヒープ領域
 あくまでバッファプールからよむ:テーブルスペースから
  テーブルスペースとバッファプールは非同期

 ダーティーページがあるとき
  →Selectしただけで、書き込みが走る

 Insert、Deleteも同じ

 →ここが小さいとボトルネック

・インデックス
 特定のキーを狙い撃ちするのがうまくいく
  →これ以外は・・・
 JOINはきらわれる
 ORやNOT→AND、=に落とし込めないか?
 カラムに対して演算してはいけない
 ネクストキーロック:indexに対するロック

・劇薬に手を出さない
 MyISAM


まとめ
・MySQL Casual




国内最大のPHPイベント「PHPカンファレンス2017」のスライドまとめ
https://techplay.jp/column/158

この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« AWSのサーバーレスの話と... | トップ | AndroidのOreoまでと、かんた... »
最新の画像もっと見る

Weblog」カテゴリの最新記事