walter の進捗と今後

19
デプロイメントツール Walter 進捗と今後 伊藤敬彦

Upload: recruit-technologies

Post on 15-Jul-2015

3.840 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Walter の進捗と今後

デプロイメントツール Walter 進捗と今後

伊藤敬彦

Page 2: Walter の進捗と今後

自己紹介名前:伊藤敬彦

Twitter アカウント: takahi_i

所属:株式会社リクルートテクノロジーズ ATL

専門分野:データマイニング、情報検索、レコメンド

Walter 開発者の一人2

Page 3: Walter の進捗と今後

Walter とは?CI でのビルドパイプラインを記述するツール

設定ファイルにジョブの処理内容と実行順序を記述

YAML フォーマット

Go 言語で記述

オープンソース

https://github.com/walter-cd

Page 4: Walter の進捗と今後

開発のモチベーションCI/CD 環境の不満点の解消

不満点:

多様なCI環境:Jenkins、Go、Travis、CircleCI, Wercker etc…

設定の仕方も多様…

処理の内容だけでもどこでも動くものを使いまわしたい

UI に依存した設定

何も考えずローカルでテスト実行したい

Page 5: Walter の進捗と今後

Walter でやりたかったことプロジェクトごとに損じするビルドやデプロイの設定を Git レポジトリに同梱したい。

ビルドやデプロイをローカルでもテスト実行したい。

ホスティングだと git push してからでないと設定がうまくいったのかわからない。。

CI/CD に関する設定のほとんどを CUI だけで完結させたい。

Page 6: Walter の進捗と今後

Waler、ちょっと嬉しい機能レポータ機能(Slack、HipChat 連携)

ジョブの状況を通知

並列処理

マルチプラットフォーム

Page 7: Walter の進捗と今後

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"

Page 8: Walter の進捗と今後

実は最近

Version 1.0 がリリースされました!

Page 9: Walter の進捗と今後

機能追加(Version 1.0)サービス(GitHub)連携

環境変数のサポート

いくつかの付加機能の追加(only_if、 directory)

直近で cleanup もサポート予定

Page 10: Walter の進捗と今後

サービス連携設定:serviceブロックにバージョン管理システム(GitHub)のレポジトリ情報を追加

実行:walter を ̶mode=service オプションをつけて実行する

利用方法:Cronで定期実行する

動作:

1.レポジトリの最新および、プルリクエストをダウンロード

2.パイプラインを実行

3.結果をサービスに追加

service:

type: github

token: トークン

repo: レポジトリ名

from: アカウント名

Page 11: Walter の進捗と今後

実演:サービス連携タスク:文書に問題ないかチェックを行う

検査には RedPen を使用

RedPen: 拙作の自然言語文書検査ツール

レポジトリ:https://github.com/takahi-i/walter-github-sample

Page 12: Walter の進捗と今後

環境変数サポートパイプライン設定ファイル内で環境変数が使えるようになりました。

記法:$ENV_NAME

メリット:パスワードのような重要情報をパイプラインに記述しなくてよい。

Page 13: Walter の進捗と今後

最近追加された付加機能ステージで使用できるアトリビュートの追加

directory

only_if

cleanup パイプライン

パイプライン実行後の後始末を記述

Page 14: Walter の進捗と今後

追加されたアトリビュート:directory

コマンドを実行するディレクトリを指定する

右図:root ディレクトリのアイテムを表示

pipeline: - name: root ディレクトリの表示 type: command command: ls -la directory: /

Page 15: Walter の進捗と今後

追加されたアトリビュート:only_if指定された条件が満たされた場合のみコマンドを実行する

右図:ファイル (file-a.txt)が存在した場合のみ中身を表示

pipeline: - name: ファイルの中身を表示 type: command command: cat file-a.txt only_if: test -f file-a.txt

Page 16: Walter の進捗と今後

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

Page 17: Walter の進捗と今後

今後の予定サーバ機能の強化

デーモン化

Web フックに対応

複数のターゲット(deploy、setupなど)をサポート

コードの整理 ><

Page 18: Walter の進捗と今後

おわりに興味を持っていただければ、是非 Walter を使ってみてください!

Walter プロジェクトへのコントリビュートもうつけております。

Page 19: Walter の進捗と今後

ご静聴ありがとうございました