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
8k
システムテスト自動化カンファレンス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
8k
Kubernetesへのデプロイメント 〜進化の過程と展望〜 前半パート
atk
2
8.3k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
216
8.6k
How to Ace a Technical Interview
jacobian
272
22k
Debugging Ruby Performance
tmm1
70
11k
Done Done
chrislema
178
15k
Web Components: a chance to create the future
zenorocha
305
41k
The Power of CSS Pseudo Elements
geoffreycrofte
59
5k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
What's in a price? How to price your products and services
michaelherold
237
11k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
How to name files
jennybc
64
93k
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 終わり
スモールビジネスに携わる すべての人が「創造的な活動」に フォーカスできるよう