Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
システムテスト自動化カンファレンス2018
Search
Atsushi Kawamura
December 08, 2018
0
8.2k
システムテスト自動化カンファレンス2018
登壇タイトル「freeeの品質トゥギャザー」の後半分です
Atsushi Kawamura
December 08, 2018
Tweet
Share
More Decks by Atsushi Kawamura
See All by Atsushi Kawamura
freeeにおける Kubernetes監視基盤
atk
6
14k
freeeにおけるSRE的取り組み
atk
0
8.2k
Kubernetesへのデプロイメント 〜進化の過程と展望〜 前半パート
atk
2
8.5k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
A Tale of Four Properties
chriscoyier
156
23k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Writing Fast Ruby
sferik
627
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Transcript
freee 株式会社 システムテスト自動化カンファレンス 後半 2018.12.08 システムテスト自動化カンファレンス2018
今年1月にfreeeにSREとしてJoin それまではSSD作ってました サービスインフラ構築、監視、生産性改善、マイク ロサービス化推進、 色々やってます Github: at-k Twitter: at_k Atsushi
Kawamura 河村 篤志 freee株式会社 2
3 これまでのおはなし(前半はこちら) • エンジニア・プロジェクトの増加 ◦ テストにかかる時間が急増 ◦ テストの効率改善が急務 • テスト環境の構築が大変
◦ 属人性いっぱい ◦ マイクロサービス化による環境構築が面倒に ◦ 環境構築方法の改善が必要
4 作りました テスト工程を加速する Pull Request評価環境構築基盤 全部クラウドで。
5 コンセプト Pull Requestのレビュー → E2Eテスト → マージ、のサイクルを高速に回したい • Pull
Request作成をトリガに、可能なところは自動でやる ◦ ユニットテスト (実現済み) ◦ コード静的解析 (実現済み) ◦ Pull Requestを反映したシステムの自動構築 (NEW!) ◦ Pull Requestを反映したシステムに対するE2Eテストの自動実行 (NEW!) • Pull Request(GitHub)が中心のオペレーション ◦ なるべくGitHub上で完結できるような作りに ◦ GitOpsの実現
6 デモ
7 PRレビューの流れ developer reviwer QA PR 作成 環境構築 変更確認 動作確認
修正 依頼 環境更新 追加 コミット 再確認 QA依頼 E2E 実行 E2E 結果 確認 LGTM マージ
8 全体像 全部クラウド API Gateway Lambda S3 ELB EC2 ECR
Parameter Store CodePipeline セットアップ 参照 reviewer github Event hook setup start pull request 作成
9 GitHub連携 • Webhook利用 ◦ 以下を選択 ▪ Issues comments ▪
Labels ▪ Pull Requests ▪ Pushes
10 GitHub連携 • 対象Pull Requestに投稿されたコメントを解析してコマンド実行 ◦ 死活確認 ◦ 環境確認 ◦
設定変更 ◦ その他 50円 / 1時間
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 プロジェクトの進め方 アプリケーションエンジニア、QAエンジニア、SREが共同で推進 • アプリケーションエンジニア ◦ docker化やチューニング(起動の高速化等)の推進 ◦ アプリケーション起因の問題へのアドバイス •
SRE ◦ インフラ整備 ◦ コンポーネントつなぎ込み、自動化 ◦ インターン生にもかなり(基本アーキは全部)お手伝いいただきました! • QA ◦ 要件定義、機能設計 ◦ E2E自動化
13 期待される効果 • 誰でも、独立した環境が、すぐに、構築できる ◦ レビュー、QAが誰でもすぐに始められる ◦ 評価環境を持っていない人はわざわざ作る必要が無い ◦ 環境を持っている人も自分の環境を汚したり、PR用にセットアップする必要がない
• 最新の評価環境が常に維持される ◦ バージョン誤りによるレビューQAの誤認を防ぐ • 評価環境のスペックを柔軟に変えられる ◦ 性能が必要な評価をすばやく行える • 大量のテスト環境を一気に用意できる ◦ テストの並列度を上げられる
14 課題と今後 • 使い勝手を上げていく ◦ 起動をもっと早く、早く ◦ すべての機能・マイクロサービスが揃っていない ◦ 異なるバージョン感のマイクロサービス結合テスト
• 環境構築の柔軟性を上げる ◦ より簡単なスケーリング ◦ リソース管理効率の最適化 • コスト最適化 ◦ 自動スケーリング ◦ 不要リソースの自動検出・停止 • モニタリング ◦ 使用状況監視、ロギング
15 終わり
スモールビジネスに携わる すべての人が「創造的な活動」に フォーカスできるよう