LINEで送る
Pocket

https://engineer.blog.lancers.jp/2019/01/phpconferencesendai2019/
上記のランサーズエンジニアブログにてイベントレポートを書きましたが、
他の登壇者についてメモしてたのでブログしていきます🙆🏻‍♂️


■Webサービスを支えるモニタリング
by オミカレCTO そーだいさん

  • 監視とは
  • 値を取り出して定期的に見る
  • インフラエンジニア、アプリケーションエンジニアの監視の考え方
  • apacheのプロセス大丈夫か?
  • シンタックスエラーの確認
  • このボタン押せるか?
  • 障害に気づきたい
  • サービス落ちてる→なんで落ちているのか
  • 分解するとapache、DB、など何が落ちているのか
  • このまま行くと危ない!
  • 発生する前に障害を防ぎたい
  • Webサービスは生き物
  • 常に変化している→コード追加、サーバが増える
  • Webサービスを見る
  • 通信は常に往来している
  • BGPは雰囲気でやってるけど?
  • 完全にマスターするのは難しい(スペシャリスト)
  • 難しいからこそ監視する必要がある
  • コントロールできない領域で監視することで気付く
  • それをどう監視するのか→入門監視に書いてある
  • 監視のアンチパターン
  • ツール依存
  • 手動設定
  • 監視だけして満足→チェックボックス
  • 監視のデザインパターン
  • 組み合わせ可能な監視
  • ユーザ視点での監視
  • 作るのではなく買う
  • 継続監視
  • システムは動いてる
  • ユーザ目線で監視する必要がある
  • あるものは最初に使う
  • ないものは使う
  • ないものってなんだろう
  • 誰かこれ監視したい
  • 継続監視
  • ダイエットと同じ
  • ビジネスを監視する
  • PVや訪問数
  • ダウンロード数
  • ユーザの利用料
  • クラウド料金
  • Webサービスを見る
  • 意図しないサービスの反応
  • SNS、テレビ、バグなどで想定外の挙動、SEOの順位
  • サービスを最も知っている人→作ってる人
  • サービスを見る=監視する
  • アプリケーションを監視をする
  • どこからはじめるの?
  • 大事なところから始めましょう
  • サービスが可動している
  • 200を返している
  • 外形監視
  • インターネット越しにcurlを叩く
  • GASからサイトをリクエストする
  • Saasを使う
  • えいのうさん→REST APIの監視どうするの?
  • 前回のリクエストの差分を出してアラートを出す
  • 値が増えたらアラート
  • アプリケーションに監視の穴を作る
  • エンドポイントを作る
  • 監視を育てる
  • MysqlからPosgreにレプリケーションしている
  • API経由でリファクタリングしている
  • データの不整合がある!
  • データの登録時のエラーを監視しよう!
  • apacheが時々固まる!
  • ハングしたら自動復旧しよう!
  • proc/memoryをcat
  • しきい値超えたらmackerelがapacheを再起動
  • ベストではないが深夜に起きる必要がない
  • 最初に治そうと試すと時間がかかる
  • 継続的監視が必要
  • 夜間バッチが固まるっす!
  • show engine innoDB statusについては以下
  • 生で読むのは難しい
  • mysqlのすべてが見れる
  • cloudwatchの値を使う
  • DML Latency deleteとupdateに詰まっている(更新/削除)
  • Mysqlんぼギャップロックで待ち時間が発生
  • 1→2 待ち行列が発生してギャップロックが発生
  • テレビ放映の影響だ!!
  • 継続的にメトリックを取れば判断できた
  • 入門監視を読みましょう
  • インフラの傾向が強くなれば抽象化している
  • テストはコード品質の可視化
  • 自分たちで直していく→アプリケーションエンジニア

ということで、ダンスダンスレボリューションを久しぶりにやったら脈が大変なことになったので、どのように
して身軽になれるのか、課題と継続をしていけば、ダイエットも成功します。なので、監視はダイエットと同じと言えることでしょう。


■PhpStormとPHPUnitを連携してユニットテスト作成を楽にする BASE tenkomaさん

  • ユニットテスト書いてますか?
  • まじめんどう!
  • ここで、PhpStormとPHPUnitを連携するとテスト楽になる
  • PHPUnit
  • ユニットテストを書くためのフレームワーク
  • PHpStorm
  • PHPアプリケーションのための統合開発環境
  • ユニットテスト作成がどんだけ楽になるのか
  • PhpStormからテスト実行
  • テストファイル、テストメソッド全部
  • 失敗したテストのみ再実行
  • 失敗したテスト結果からコードジャンプ
  • メリット
  • ターミナルとIDEを切り替えずに済む
  • 特定のメソッドだけ実行したい場合は–filter=testsomethingなど指定せずに済む
  • テストしながらデバックができる
  • メリット
  • ブレークするとテスト中の変数が簡単に確認できる
  • 実行中の変数をコピペできる

デモでテストするときに結構荒ぶってて焦りましたが、ユニットテストめんどうだからといってやらないよりはPhpStormとPHPUnitを組み合わせすることで楽になることを知りました!!


■PHPのmiddlewareを使いこなすために テンマド 山岡広幸

  • webアプリとは
  • リクエストを受け取る
  • 認証、DBとか処理する
  • レスポンス返す
  • 入れ子構造
  • 入れ子式に処理をつないでいく仕組みを考える
  • 関数AとBを実行していく
  • 特徴
  • アプリ本体を包み込むよう実装
  • PSRとは?
  • PHP Standard Recommendations
  • PSR-7
  • webアプリ入出力の標準化
  • PSR-15
  • webアプリの標準化
  • フレームワークとmiddlewareの関係
  • Slim Framework
  • Zend Expressive
  • Laravel
  • Symfony
  • CakePHP
  • 処理をmiddlewareで分割
  • 記述が完結に、テストが簡単に
  • PSRがで標準化されることで差し替え可能に
  • DIコンテナとの組み合わせも便利

フレームワークって自作できるんだ。。オレオレフレームワークとかすごい。。


■テストコードが無くてPHP7へのバージョンアップが出来ない?ボットで解決しました!
岩上 裕樹 / 株式会社グリフォン

  • 2ヶ月でPHP7にバージョンアップ
  • デバッカーさんに頼らずデバックする
  • 毎日チームで30分間だけ時間をとってもらった
  • ボットによるデバックシステム
  • Google Chrome Extensions
  • JS
  • 約一ヶ月でリリース!
  • PHP7早い
  • コスト66%減少

ボットでここまで短期間でPHP7へバージョンアップできると思うと自動化は鬼かと。。
にしてもランサーズでも同様に真似してみたい!


■PHPでファミコンエミュレータを作る 長谷川 智希 / デジタルサーカス株式会社

  • エミュレータとは
  • 仮想技術
  • Virtualboxも同じ
  • php-terminal-nes-emulator
  • ファミコンのCPU
  • RP2A03E
  • リコー製
  • 6502ベース
  • CPUの役割
  • メモリの読み書き
  • 外部デバイスとの通信
  • 命令の実行
  • メモリーとCPUの動き
  • カセット
  • プログラム、キャラクター
  • CPUバス、PPUバス
  • カセットアドレスバス15本
  • カセットにはROMしか入っていない
  • 様々なメーカーから安価でゲーム供給
  • エミュレータを作るとは
  • ハードウェアの仕様を理解する
  • ソフトウェア的に表現する

にしても長谷川さんのトークめちゃくちゃ面白かった!!ファミコンのエミュレータよりPS2のエミュレータとか昔試していたので、カセットのCPUなど興味深かった!


■まとめ

PHPカンファレンスは初めてだったので、強いエンジニアさんと人脈取れたのはよかった!!
地元のエンジニアさんと交流できたのもいい出会いとこのイベントのおかげ!!仙台はまた行く!!!

LINEで送る
Pocket


あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善などの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供、AWSで新サービスのインフラ構築、PHPバージョンアップ、新卒採用、採用広報、分析基盤を担当している。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください