Upload
takahiro-yamaki
View
565
Download
3
Embed Size (px)
Citation preview
開発リードタイム短縮への挑戦~とある現場のパターン・ランゲージ~
2015/03/10山木隆寛楽天株式会社 楽天市場サービス開発・運用部http://www.rakuten.co.jp/
2
結論を先に!
• モチベーション
1. より早く、より良いものを、リリースしたい!
• 作戦1. 手作業排除
2. コーダーに対するフィードバックを素早く
1. ビルド結果
2. 静的なコード分析結果
3. 継続的システムテスト結果
4. セキュリティチェック結果
開発リードタイム短縮への挑戦
3
アジェンダ
• はじめに
–私の立ち位置
–お持ち帰りいただきたいもの
–利用したパターンについて
• 事例のご紹介
• 将来像
• まとめ
4
B2B2C ビジネスにおける私の立ち位置
楽天市場
バックヤード(RMS)
お買い物ユーザー
店舗様
売り場(MALL)
(1)開発リードタイム短縮(2)運用コスト削減
5
お持ち帰りいただきたいもの
• 過去2年の『事例』を『パターン』別にご紹介
• 気に入ったパターンがあれば、皆様の状況に応用して活用していただければと思います
6
利用したパターン for 人
みんなを巻き込む
エバンジェリスト
『アジャイルに効く アイデアを組織に広めるための48のパターン』Mary Lynn Manns, Linda Rising著, 川口恭伸監訳 (2014)
正式な推進担当者
イノベーター アーリーアダプター
勉強会やってみる
種をまく個人的な接触
体験談の共有
7
利用したパターン for システム
Git 化Step by Step
小さな成功
自動化
リポジトリ連携
脱Excel
外部のお墨付き
ちょうど十分
8
Git 化Step by Step
小さな成功
自動化
リポジトリ連携
脱Excel
外部のお墨付き
ちょうど十分
キーワード
pull-request
CI
テストケース管理
ブランチ管理
git-flow
チケットcode
ビルド, デプロイテスト
9
Git 化Step by Step
小さな成功
自動化
リポジトリ連携
脱Excel
外部のお墨付き
ちょうど十分
事例のご紹介
CI
ココ
ココ
チケットcode
ビルド, デプロイテスト
10
アジェンダ
• はじめに
• 事例のご紹介– リポジトリ連携
–自動化
• 将来像
• まとめ
11
事例のご紹介(1)
リポジトリ連携
12
パターン・リポジトリ連携
• 状況
–開発中におきる“ものこと” 同士を関連づけるのは、エクセルの備考欄! 個人メモ!
• このチケットの案件、コードレビュー終わった?
• このチケットの案件、どの環境にデプロイした?
• 問題
–トレーサビリティを簡単にしたい
13
パターン・リポジトリ連携続き
• 制約
–社内のツール推進部署がサービス提供中• チケット管理、ソースコード管理、ドキュメント管理
• 解決方法
–これらと相性のいいものを選んで、それぞれのリポジトリのデータを連携させる!
14
テストケーステスト結果
リポジトリ連携結果 (1)
チケット
Codes
成果物ライブラリ
ドキュメント
Code 品質
RMS
ビルド結果デプロイ結果
セキュリティレポート
情報蓄積
制約 (既存ツール)
15
チケットとCodesの簡単紐付け Tips
前提1.git-flow に従って、ブランチ名は feature/xxxx
2.feature 名はチケットID
cd .git/hooks
mv prepare-commit-msg.sample prepare-commit-msg
vi prepare-commit-msg
#!/bin/sh
#
mv $1 $1.tmp
echo -n "[`git branch | grep "*" | awk '{print $2}' | sed -e "s/feature\///g" `] " > $1
cat $1.tmp >> $1
サンプルコード
by T. Sugihara
16
リポジトリ連携 From ビルド結果
デプロイ情報
チケット
Codes
変更ログ (誰? 何?)
17
リポジトリ連携 From テスト結果
チケット
テストNG報告 チケット作成
テスト結果
修正チケット
18
MOVIE
テスト結果NG チケット起票
19
事例のご紹介(2)
自動化
20
パターン・自動化
• 状況
–手作業多過ぎ
• 問題
–手作業に工数を取られる。ミスもある
• 制約
–既存ツールとの親和性
• 解決方法
–既存ツールと相性のいいものを選んで自動化!自動化!自動化!
21
自動化参考資料 (1)
『継続的デリバリー』
David Farley (著), Jez Humble (著), 和智右桂 (翻訳), 高木正弘 (翻訳)
22
自動化参考資料 (2)
『万人のためのオートメーション: デプロイメントの自動化パターン』
Paul Duvallhttp://www.ibm.com/developerworks/jp/java/library/j-ap01139/
–シングル・クリック
–構成の外部化
–ヘッドレス実行
–スクリプト化デプロイメント
– リモート・デプロイメント
23
自動化インフラ・サーバ構成図
CI 関連システム
24
デモ自動デプロイ・シナリオ
アプリケーション管理サーバ
クラスター
#1
#2
#3
#4
手動テスト
継続的システムテスト*
(3)
(2)
(4)
* Kotaro Ogino and Francois Picalausa
“Continuous System Test”. Test Automation.http://kokotatata.hatenablog.com/entry/2014/03/14/075842
(1)
CIツール
25
MOVIE
自動デプロイ
26
継続的自動テスト・概略図
Selenium
Hub
テストケース管理ツール
RMS
Selenium Nodes
Script
結果
確認
手動テスト
結果
CIツール
テストデータ
27
アジェンダ
• はじめに
• 事例のご紹介
• 将来像
• まとめ
28
STG
QA
DEVBuild
将来像 ・・・ “デプロイメントパイプライン”
IT
Release
Judge
Acceptance
Test
PROD
Blue-
Green
Deploy
Clone
Build
UT
Code
Analysis
Deploy
Conf Test
Conf Test
Deploy
ST
Conf Test
Code
ReviewMetrics
Release
Judge
Security
Test
ST
Security
Test
29
大切なことなので再掲
• モチベーション
1. より早く、より良いものを、リリースしたい!
• 作戦1. 手作業排除
2. コーダーに対するフィードバックを素早く
1. ビルド結果
2. 静的なコード分析結果
3. 継続的システムテスト結果
4. セキュリティチェック結果
開発リードタイム短縮への挑戦
30
QA
31
エンジニア募集中!!!
https://progres02.jposting.net/pgrakuten/job.phtml?job_code=1971
https://progres02.jposting.net/pgrakuten/job.phtml?job_code=1972