Slide 1

Slide 1 text

「最近変わったね」と素早く気付け サイボウズ株式会社 チーム 鈴木 亜耶 (@szkayeah)

Slide 2

Slide 2 text

Speaker ▌鈴木 亜耶 (@szkayeah)  サイボウズのエンジニア  今年1月に中途入社  好き:CI・自動化・自動テスト  チーム所属

Slide 3

Slide 3 text

気付くのが遅すぎて、 取り返しがつかなくなった事はありますか?

Slide 4

Slide 4 text

APIのパフォーマンスを毎日計測できるようにした!

Slide 5

Slide 5 text

おしながき ▌ とは(かるーく) ▌やったこと ▌苦労したこと・工夫 ▌これから

Slide 6

Slide 6 text

とは

Slide 7

Slide 7 text

とは ▌サイボウズの業務系クラウドサービス  ノンプログラミングでデータベース型のアプリ作成  社員間のコミュニケーション機能

Slide 8

Slide 8 text

とは つくって ためて かきこむ

Slide 9

Slide 9 text

とは ▌上司煽り広告で一部では話題に

Slide 10

Slide 10 text

やったこと

Slide 11

Slide 11 text

やったこと ▌従来の性能検証の問題点  劣化の検知時期が遅い  2~3か月ごとのリリースモジュールが試験期間に入ったら  個別に検証を回すと負担が大きい  1週間近くかかる  具体的にどのモジュールが劣化したか分かりにくい  画面への負荷テストに近い ▌完全に代わりにならなくても一部代替できるものを!

Slide 12

Slide 12 text

やったこと 開発環境VM 開発中 普段使い モジュールUP API速度計測 測定結果 レコード登録 & 性能劣化通知 出典: https://jenkins.io/ http://junit.org/junit4/ https://www.python.org/

Slide 13

Slide 13 text

やったこと ▌毎日自動で実行 ▌APIごとに性能の推移を確認できる ▌APIごとに性能劣化が検知できる

Slide 14

Slide 14 text

苦労したこと・工夫

Slide 15

Slide 15 text

苦労したこと・工夫 ▌測定結果の安定化  環境面  計測方法  集計方法

Slide 16

Slide 16 text

苦労したこと・工夫 ▌測定結果の安定化  環境面  毎日VMを作り直す  VM上は1ドメインのみ、他用途では使用しない  並列実行しない

Slide 17

Slide 17 text

苦労したこと・工夫 ▌測定結果の安定化  計測方法  同じ条件で複数回計測する(数十~数百回)  同じ条件でもinputパラメータはバラす  計測値が小さくなりすぎないようにデータ量を増やす

Slide 18

Slide 18 text

苦労したこと・工夫 ▌測定結果の安定化  集計方法  計測結果の中央値をとる(not平均値)

Slide 19

Slide 19 text

苦労したこと・工夫 ▌オライリー「Javaパフォーマンス」  2章のパフォーマンステストで似たような内容が  Javaに限らない 出典:https://www.oreilly.co.jp/books/9784873117188/

Slide 20

Slide 20 text

これから

Slide 21

Slide 21 text

これから ▌性能劣化の検知精度UP  ま、まいにちJenkins先生が怒っている…! ▌ジョブ実行時間の短縮  現在5時間

Slide 22

Slide 22 text

ありがとうございました!