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
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
How STYLIGHT went responsive
nonsquared
95
5.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
106
48k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.8k
Embracing the Ebb and Flow
colly
84
4.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
31
1.7k
The World Runs on Bad Software
bkeepers
PRO
65
11k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Gamification - CAS2011
davidbonilla
80
5k
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 終わり
スモールビジネスに携わる すべての人が「創造的な活動」に フォーカスできるよう