ヤサイブログ

I'll keep hacking on fun. ~ 学びよ、加速しろ ~

JJUG CCC 2018 Fall 行ってきました!参加レポート

JJUG CCC 2018 Fall www.java-users.jp

↓朝8時半、爽快に晴れ、朝日が差し込む四谷駅から新宿二丁目西新宿に向かう f:id:yasay:20181217130733j:plain

f:id:yasay:20181217124225j:plain:w350

今年の冬もやってきました❗️JJUG CCC 2018 Fall❗️
所用があり午前中だけの参加でしたが、とても有益な情報を得られ、
おかげさまで参加したメリットがとても大きかったと思います❗️😃

レポートしていきます!📝

レポート📝

10:00 - 10:45 Spring BootのWebアプリケーションをDockerに載せてAWS ECSで動かしている話

www.slideshare.net

  • DDDとクリーンアーキテクチャの人(前回の登壇は見てた)
  • システム構成
    • 企業向けWebサービス、取り扱うデータ量は多い(数百GB~数TB)
    • ALB -> WEB UI Container -> in ALB -> other containers
    • in ALB -> independent EC2の流れもある
    • ECR -> ECSの王道を行く
    • CodeDeploy, GitLabを利用してECRに登録
    • 採択経緯
      • 学習コスト懸念、Fargateのランニングコスト懸念
      • (ECSでやっておけばFargateへの切り替えは比較的容易・・)
    • (Web)ALB -> Web Server Container -> UI Container
      • 本当はUI Containerの前にALBを挟みたかった
        • X-Forward-For, X-Forwarded-Proto, X-Forwarded-Portが書き換わる
        • リダイレクトURLのポートが変わっちゃう問題があった
  • 開発環境
    • メモリ16GB, Windows派多数、Macな人も
      • マージリクエストを利用
      • ローカル用プロファイルで動作させるSBが入ったDockerコンテナをビルド・起動
      • 他マイクロサービスのところはモック化
    • GitLab CIで開発環境にデプロイ
      • jarビルド -> Dockerイメージビルド -> ECRに登録 -> ECSのタスク定義 & サービス更新 -> Mattermostに通知
      • すぐにデプロイされない罠
        • ec2数 > タスク数:すぐにデプロイされる(新しいインスタンスに)
        • ec2数 = タスク数:1個止めに行っている間は待たされる
    • 環境毎の切り替え
      • β環境1 -> β環境2 -> β環境3
      • 性能ってのは測ってみるしかない!
      • プロファイルの切り替え
      • Git Flowを採用
      • ECSの環境変数をだけで動作設定を変更できる。
  • ログ出力
    • Kinesys Data Firehorseに連携、S3に保存して分析
  • アクセス監視
    • 未解決事件
      • コンテナ間通信が502エラー
        • ALB <- -> コンテナ
    • ECSはDockerコンテナを間違って落としちゃったとしても瞬時に検知して復旧できる仕組みがあるからそこがすごい。

11:00 - 11:45 Java + コンテナ向けパフォーマンス分析手法の紹介と活用事例

Java + コンテナ向けパフォーマンス分析手法の紹介と活用事例

  • 最小の変更点を発見し、速度を改善したい。
    • JMeter & APP DYNAMICS
    • APMでもモニタリング
    • プレリリース環境での継続的な負荷テスト
  • ボトルネックの発見
  • だれでもやること
    • ログをいい感じに仕込む
    • VISUALVMをつなぐ
    • FlightRecorder?
      • system, libc, Native library, GC, JIT?
      • perf-toolでサンプリング
  • 事故は起こってから観測しても遅い
    • perf-scriptは重い
    • perf-recordは比較的軽い
  • Interpreterによる分裂の障害
  • 利用しているツールなど
  • Off-CPUの自動解析は難しい
    • wPerf (Zhou et al)

f:id:yasay:20181217130337p:plain

@nakayama_sanの可愛いメモ

紹介せざるをえない!JJUG CCCでいつも可愛いメモを共有してくださっている、
@nakayama_sanのツイートです!

所感

ECSの環境変数を便利に使えるという話はとても有益でした。

[2018/12/19追記]
本イベントの後にAWSから発表があり、
SSM Parameter Storeの値の参照が Fargate から可能になったようです。

Avalancheについても是非とも実際に動かしてみて、
パフォーマンスを解析したいと思っています。
スター数とかも増えて是非とも盛り上がって欲しいOSSですねぇ。

短い時間での参加でしたが、本当に参考になるセッションばかりで感謝です!
見れなかったセッションは、TwitterGitHubを通して、各セッション情報を参照し、
確認したいと思います!

GitHub - jjug-ccc/slides-articles-2018Fall: JJUG CCC 2018 Fall 登壇資料まとめ

↓写真はおなじみの成子天神社の一コマ。今回も牛さん撫でできました 🐮 f:id:yasay:20181217130623j:plain f:id:yasay:20181217130638j:plain

以上です!