Save 37% off PRO during our Black Friday Sale! »

システムテスト自動化カンファレンス2018

A4ac4d1f93fcad66266ed6c10237614f?s=47 Atsushi Kawamura
December 08, 2018
6.7k

 システムテスト自動化カンファレンス2018

登壇タイトル「freeeの品質トゥギャザー」の後半分です

A4ac4d1f93fcad66266ed6c10237614f?s=128

Atsushi Kawamura

December 08, 2018
Tweet

Transcript

  1. freee 株式会社 システムテスト自動化カンファレンス 後半 2018.12.08 システムテスト自動化カンファレンス2018

  2. 今年1月にfreeeにSREとしてJoin それまではSSD作ってました サービスインフラ構築、監視、生産性改善、マイク ロサービス化推進、 色々やってます Github: at-k Twitter: at_k Atsushi

    Kawamura 河村 篤志 freee株式会社 2
  3. 3 これまでのおはなし(前半はこちら) • エンジニア・プロジェクトの増加 ◦ テストにかかる時間が急増 ◦ テストの効率改善が急務 • テスト環境の構築が大変

    ◦ 属人性いっぱい ◦ マイクロサービス化による環境構築が面倒に ◦ 環境構築方法の改善が必要
  4. 4 作りました テスト工程を加速する Pull Request評価環境構築基盤 全部クラウドで。

  5. 5 コンセプト Pull Requestのレビュー → E2Eテスト → マージ、のサイクルを高速に回したい • Pull

    Request作成をトリガに、可能なところは自動でやる ◦ ユニットテスト (実現済み) ◦ コード静的解析 (実現済み) ◦ Pull Requestを反映したシステムの自動構築 (NEW!) ◦ Pull Requestを反映したシステムに対するE2Eテストの自動実行 (NEW!) • Pull Request(GitHub)が中心のオペレーション ◦ なるべくGitHub上で完結できるような作りに ◦ GitOpsの実現
  6. 6 デモ

  7. 7 PRレビューの流れ developer reviwer QA PR 作成 環境構築 変更確認 動作確認

    修正 依頼 環境更新 追加 コミット 再確認 QA依頼 E2E 実行 E2E 結果 確認 LGTM マージ
  8. 8 全体像 全部クラウド API Gateway Lambda S3 ELB EC2 ECR

    Parameter Store CodePipeline セットアップ 参照 reviewer github Event hook setup start pull request 作成
  9. 9 GitHub連携 • Webhook利用 ◦ 以下を選択 ▪ Issues comments ▪

    Labels ▪ Pull Requests ▪ Pushes
  10. 10 GitHub連携 • 対象Pull Requestに投稿されたコメントを解析してコマンド実行 ◦ 死活確認 ◦ 環境確認 ◦

    設定変更 ◦ その他 50円 / 1時間
  11. 11 環境構築 • ECRのdocker imageでコンテナ起動 ◦ docker imageは常に最新を維持 ▪ bundle

    install, yarn install済み • git checkoutでPRのコードを取得 • assetsはcircle ciでbuildされたものを流用 • DBはmysql dump取り込み & db:migrate Lambda S3 ELB EC2 ECR Parameter Store CodePipeline 認証情報管理 PRマージに フックして docker build実行 PR固有設定 セットアップスクリプト テスト結果
  12. 12 プロジェクトの進め方 アプリケーションエンジニア、QAエンジニア、SREが共同で推進 • アプリケーションエンジニア ◦ docker化やチューニング(起動の高速化等)の推進 ◦ アプリケーション起因の問題へのアドバイス •

    SRE ◦ インフラ整備 ◦ コンポーネントつなぎ込み、自動化 ◦ インターン生にもかなり(基本アーキは全部)お手伝いいただきました! • QA ◦ 要件定義、機能設計 ◦ E2E自動化
  13. 13 期待される効果 • 誰でも、独立した環境が、すぐに、構築できる ◦ レビュー、QAが誰でもすぐに始められる ◦ 評価環境を持っていない人はわざわざ作る必要が無い ◦ 環境を持っている人も自分の環境を汚したり、PR用にセットアップする必要がない

    • 最新の評価環境が常に維持される ◦ バージョン誤りによるレビューQAの誤認を防ぐ • 評価環境のスペックを柔軟に変えられる ◦ 性能が必要な評価をすばやく行える • 大量のテスト環境を一気に用意できる ◦ テストの並列度を上げられる
  14. 14 課題と今後 • 使い勝手を上げていく ◦ 起動をもっと早く、早く ◦ すべての機能・マイクロサービスが揃っていない ◦ 異なるバージョン感のマイクロサービス結合テスト

    • 環境構築の柔軟性を上げる ◦ より簡単なスケーリング ◦ リソース管理効率の最適化 • コスト最適化 ◦ 自動スケーリング ◦ 不要リソースの自動検出・停止 • モニタリング ◦ 使用状況監視、ロギング
  15. 15 終わり

  16. スモールビジネスに携わる すべての人が「創造的な活動」に フォーカスできるよう