Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

デプロイメントパイプラインって何?

社内LT用資料

  • Be the first to comment

デプロイメントパイプラインって何?

  1. 1. デプロイメントパイプライン ってなに? ~Jenkinsおじさんと遊んでみた編~
  2. 2. 前回のおさらい
  3. 3. 継デリってなに• 継続的に価値を提供し続ける テスト自動化だけじゃダメ デプロイコマンドだけでもダメ リリースプロセスの自動化までやろう デプロイメントパイプライン
  4. 4. 継デリってなに• 継続的に価値を提供し続ける テスト自動化だけじゃダメ デプロイコマンドだけでもダメ リリースプロセスの自動化までやろう デプロイメントパイプライン
  5. 5. 今回はでぷぱいの話をします
  6. 6. コミットステージ コンパイル 単体テスト コード解析 前回からの引用自動受入れテストステージ自動受け入れテスト 手動テストステージ ユーザ受け入れテスト 探索的テスト 本番リリース
  7. 7. じっさいには
  8. 8. コミットのたびに実行される コンパイル 単体テスト コード解析 こんな感じが 実行に 比較的時間のかかるもの ありそう 自動受け入れテスト手動テスト 評価環境リリース キャパテストユーザ受け入れテスト いわゆるステージング 負荷テスト探索的テスト 長期稼動テスト 本番リリース
  9. 9. えっ…大変そう…。
  10. 10. 実際そこそこ大変です。
  11. 11. もっともありがちな以下のステージを見てみましょうコミットのたびに実行されるコンパイル単体テストコード解析実行に比較的時間のかかるもの自動受け入れテスト評価環境リリースいわゆるステージング本番リリース
  12. 12. コミットステージ コミットのたびに実行される コンパイル 単体テスト コード解析コミットのたびに実行されるパイプラインの入り口ステージをコミットステージと呼びます•主に開発者テストの領域•コミット前にローカルでも実施しましょう•バンバン叩かれるしバンバン動くステージ•ここが遅いとうんざり具合半端ない•長くても数分以内に終了するようにしましょう
  13. 13. 自動受け入れテストステージ実行に比較的時間のかかるもの自動受け入れテスト実行に比較的時間がかかるものはステージを分けます受け入れテストは比較的時間がかかるケースが多いのでステージを分けて作られることが多いようです•顧客テストとしての色が強くなる•とはいえリグレッションテスト色も強い•CIサーバ上で動かす場合もあれば•専用サーバにデプロイしてから実行されることも•ここを突破できるビルドは多分リリースできる
  14. 14. ステージングリリース評価環境リリースいわゆるステージング擬似本番環境へのリリース人間による探索的テストなんかをやったりします。•顧客テストの領域•最終関門•専用サーバにデプロイしてから実行されることがほとんど•ここを突破すればさぁリリース
  15. 15. 本番リリース本番リリースお疲れ様でした。飲み行きましょう、飲みに。
  16. 16. さて、でぷぱいを作る上でいくつか気をつけることがあります。
  17. 17. ビルドは1回!• コミットステージで1回だけ• 受け入れテストや• 本番リリースも• 最初に作ったバイナリを持ちまわる
  18. 18. なんで?1. 都度ビルドは時間がかかる2. 問題が起きた時の切り分けが楽 – バイナリに差異がなければ – 問題は設定のほう3. デプロイが楽あれ、でも設定ファイルの切り替えは?
  19. 19. • アプリ内には設定へのポインタだけを含め るようにする• 環境変数とか• 出来れば設定は別で管理できるといい – 往々にしてアプリと設定は変化するスピード が違うので• Mavenのprofileの仕組みはこの方針に 合ってなかったりする – Classpath経由で設定ファイル食わせるとか、 やり方はいろいろあります
  20. 20. ビルドとデプロイは分ける• ビルド(自動テスト)スクリプトとデプロイ 用スクリプトは分ける• あるいは単独で実行できるようにする
  21. 21. なんで?1. 時間がかk(ry2. 「ビルドは1回」に反する3. 前述のでぷぱいの図より – 場合に応じていろんな環境にデプロイする – でぷぱいの保守拡張が – すごく楽になる。
  22. 22. ビルドは1回ビルドとデプロイは分けるを実施すると…•動くと保証されたバイナリを•すばやく•いろんな環境に•デプロイ出来るようになります
  23. 23. という感じのものをJenkinsおじさんで遊びながら作ってみました
  24. 24. ※デモ※
  25. 25. うまくでぷぱいが実装できると• どのコミットがどのビルドに紐付いてて• どのビルドがパイプラインをどこまでク リアしていて• 必要な関門をクリアしたビルドなら• 1クリックで好きな環境にデプロイできる• 本番リリースはそのうちの1つでしかない
  26. 26. おわり。

×