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.

Walter の進捗と今後

5,403 views

Published on

Walter status 2015/03

Published in: Software
  • Be the first to comment

Walter の進捗と今後

  1. 1. デプロイメントツール Walter 進 と今後 伊藤敬彦
  2. 2. 自己紹介 名前:伊藤敬彦 Twitter アカウント: takahi_i 所属:株式会社リクルートテクノ ロジーズ ATL 専門分野:データマイニング、情 報検索、レコメンド Walter 開発者の一人 2
  3. 3. Walter とは? CI でのビルドパイプラインを記述するツール 設定ファイルにジョブの処理内容と実行順序を記述 YAML フォーマット Go 言語で記述 オープンソース https://github.com/walter-cd
  4. 4. 開発のモチベーション CI/CD 環境の不満点の解消 不満点: 多様なCI環境:Jenkins、Go、Travis、CircleCI, Wercker etc… 設定の仕方も多様… 処理の内容だけでもどこでも動くものを使いまわしたい UI に依存した設定 何も考えずローカルでテスト実行したい
  5. 5. Walter でやりたかったこと プロジェクトごとに損じするビルドやデプロイの設定 を Git レポジトリに同梱したい。 ビルドやデプロイをローカルでもテスト実行したい。 ホスティングだと git push してからでないと設定 がうまくいったのかわからない。。 CI/CD に関する設定のほとんどを CUI だけで完結さ せたい。
  6. 6. Waler、ちょっと嬉しい機能 レポータ機能(Slack、HipChat 連携) ジョブの状況を通知 並列処理 マルチプラットフォーム
  7. 7. Walter の設定例 pipeline: - name: ビルドパイプラインの処理開始をHipChatに通知 (Step 1) command: echo "build pipeline is started" message: true run_after: - same: ansibleでサーバのプロビジョニング (Step 2) command: ansible-playbook -i hosts site.yml - name: アプリケーションのテスト実行 (rspec) (Step 2) command: bundle exec rake test - name: Capistranoでアプリケーションをサーバにデプロイ (Step 3) command: bundle exec cap production deploy -name: Serverspecでサーバ状態をテスト (Step 4) command: bundle exec rake spec - name: ビルドパイプラインの処理終了をHipChatに通知 (Step 5) message: true command: echo "build pipeline is finished"
  8. 8. 実は最近 Version 1.0 がリリースされました!
  9. 9. 機能追加(Version 1.0) サービス(GitHub)連携 環境変数のサポート いくつかの付加機能の追加(only_if、 directory) 直近で cleanup もサポート予定
  10. 10. サービス連携 設定:serviceブロックにバージョン管理シ ステム(GitHub)のレポジトリ情報を追加 実行:walter を ̶mode=service オプ ションをつけて実行する 利用方法:Cronで定期実行する 動作: 1.レポジトリの最新および、プルリクエス トをダウンロード 2.パイプラインを実行 3.結果をサービスに追加 service: type: github token: トークン repo: レポジトリ名 from: アカウント名
  11. 11. 実演:サービス連携 タスク:文書に問題ないかチェックを行う 検査には RedPen を使用 RedPen: 拙作の自然言語文書検査ツール レポジトリ:https://github.com/takahi-i/ walter-github-sample
  12. 12. 環境変数サポート パイプライン設定ファイル内で環境変数が使え るようになりました。 記法:$ENV_NAME メリット:パスワードのような重要情報をパイ プラインに記述しなくてよい。
  13. 13. 最近追加された付加機能 ステージで使用できるアトリビュートの追加 directory only_if cleanup パイプライン パイプライン実行後の後始末を記述
  14. 14. 追加されたアトリビュート:directory コマンドを実行する ディレクトリを指定 する 右図:root ディレ クトリのアイテムを 表示 pipeline: - name: root ディレクトリの表示 type: command command: ls -la directory: /
  15. 15. 追加されたアトリビュート:only_if 指定された条件が満 たされた場合のみコ マンドを実行する 右図:ファイル (file-a.txt)が存在し た場合のみ中身を表 示 pipeline: - name: ファイルの中身を表示 type: command command: cat file-a.txt only_if: test -f file-a.txt
  16. 16. cleanup パイプライン pipeline が実行後 に後処理を行う。 cleanup として定 義される 右図:cleanup で ログファイルを削除 pipeline: - name: start pipeline type: command command: | echo “pipeline” > log/log.txt cleanup: - name: type: command command: rm log/* stage_type: command
  17. 17. 今後の予定 サーバ機能の強化 デーモン化 Web フックに対応 複数のターゲット(deploy、setupなど)をサポー ト コードの整理 ><
  18. 18. おわりに 興味を持っていただければ、是非 Walter を使っ てみてください! Walter プロジェクトへのコントリビュートもう つけております。
  19. 19. ご静聴ありがとうございました

×