(beta)clean release manual

Post on 24-May-2015

1.865 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

2014年1月29日、社内エンジニア向けプレゼンのために作成した資料です。リリース手順書の基礎について考えてみました。

TRANSCRIPT

114年2月16日日曜日

こんな経験ありませんか?

214年2月16日日曜日

「XXの運用作業お願い」

314年2月16日日曜日

「はーい!」

414年2月16日日曜日

とは言ったもののやったことないから

前の手順を探してみるかー

514年2月16日日曜日

それっぽいのあった!!

614年2月16日日曜日

とりあえず参考にしながらやってみるお!!

714年2月16日日曜日

「あれ!?」814年2月16日日曜日

パス違うじゃん

914年2月16日日曜日

「あれ!?」1014年2月16日日曜日

コマンド打ったけどこの結果でいいの?

1114年2月16日日曜日

「あれ!?」1214年2月16日日曜日

このコマンド何したいんだろう?

1314年2月16日日曜日

!?1414年2月16日日曜日

1514年2月16日日曜日

みなさんが怒りのあまり武丸さんにならない為に

1614年2月16日日曜日

うわ・・・私の手順書、しょぼすぎ!?>>あなたの手順スキルは?

ってならない為に1714年2月16日日曜日

リリース手順書の最低限のマナーについて

1814年2月16日日曜日

マジメにお話ししてみます。

1914年2月16日日曜日

題しまして、

2014年2月16日日曜日

CleanRelease Manualクリーンリリースマニュアル TAKAKING22 著

及部敬雄 訳

http://www.flickr.com/photos/16983197@N06/6806402045/

β2114年2月16日日曜日

この話のターゲットは

全員2214年2月16日日曜日

リリース手順書を書く書かないではなく、

2314年2月16日日曜日

他人と働く上で大切なポイントは同じ

ハズ

2414年2月16日日曜日

他人と働く上で大切なポイントは同じ

そもそもプロダクトコード書いててプロダクトをリリースできないって・・・(ry

2514年2月16日日曜日

http://www.flickr.com/photos/16983197@N06/6806402045/

1.リリース手順書- 定義と心構え -

2614年2月16日日曜日

の前に“手順書”とは?

2714年2月16日日曜日

“ ある条件に対応する方法を 知らない者(初心者)に対して 示し、教えるための文書である ”

/ wikipedia先生

手順書=マニュアル

2814年2月16日日曜日

“ ある条件に対応する方法を 知らない者(初心者)に対して 示し、教えるための文書である ”

/ wikipedia先生

手順書=マニュアル

2914年2月16日日曜日

手順書3014年2月16日日曜日

手順書には相手がいる

3114年2月16日日曜日

そしてその相手は入社してきたばかりの新人かもしれない

3214年2月16日日曜日

次の●●に当てはまる言葉を答えなさい

3314年2月16日日曜日

リリース●●本番●●運用●●

3414年2月16日日曜日

リリース作業本番作業運用作業

3514年2月16日日曜日

作業3614年2月16日日曜日

作業と仕事の違い

3714年2月16日日曜日

作業は与えられた指示にそって何かを行うこと仕事は目的があり

その目的の達成のために考えて行動すること

3814年2月16日日曜日

作業は、考えなくてもできる(ようにすべき)

3914年2月16日日曜日

作業は、ロボットでもできるだから自動化できる

4014年2月16日日曜日

リリース手順書

4114年2月16日日曜日

作業者が初心者でも、考えずに作業が実施できるように文書化

したもの

4214年2月16日日曜日

4314年2月16日日曜日

4414年2月16日日曜日

http://www.flickr.com/photos/16983197@N06/6806402045/

2.リリース手順書の必要条件

4514年2月16日日曜日

takaking22MacBookPro:work oyobe$ ls -latotal 8drwxr-xr-x 3 oyobe staff 102 1 29 06:31 ./drwx------@ 30 oyobe staff 1020 1 29 06:30 ../-rw-r--r-- 1 oyobe staff 53 1 29 06:31 release_manual.txt

takaking22MacBookPro:work oyobe$ chmod 744 release_manual.txt

takaking22MacBookPro:work oyobe$ ls -latotal 8drwxr-xr-x 3 oyobe staff 102 1 29 06:31 ./drwx------@ 30 oyobe staff 1020 1 29 06:30 ../-rwxr--r-- 1 oyobe staff 53 1 29 06:31 release_manual.txt*

takaking22MacBookPro:work oyobe$ ./release_manual.txtReleasing now....Release complete!!

以下でリリースできること

4614年2月16日日曜日

takaking22MacBookPro:work oyobe$ ls -latotal 8drwxr-xr-x 3 oyobe staff 102 1 29 06:31 ./drwx------@ 30 oyobe staff 1020 1 29 06:30 ../-rw-r--r-- 1 oyobe staff 53 1 29 06:31 release_manual.txt

takaking22MacBookPro:work oyobe$ chmod 744 release_manual.txt

takaking22MacBookPro:work oyobe$ ls -latotal 8drwxr-xr-x 3 oyobe staff 102 1 29 06:31 ./drwx------@ 30 oyobe staff 1020 1 29 06:30 ../-rwxr--r-- 1 oyobe staff 53 1 29 06:31 release_manual.txt*

takaking22MacBookPro:work oyobe$ ./release_manual.txtReleasing now....Release complete!!

以下でリリースできること

手順書に実行権限つけて、

実行したらリリースできる!

4714年2月16日日曜日

ここまでは言いませんが、最低でも・・・

4814年2月16日日曜日

リリース手順書の必要条件上から下までコピペして実行するだけの簡単な作業をすればリリースが完了すること

4914年2月16日日曜日

パスミス実行できない

意図がわからない

必要条件を満たしてない

5014年2月16日日曜日

めんどくせーなー自動化すればいいじゃん

って思ってるあなた

5114年2月16日日曜日

その通り!!

5214年2月16日日曜日

でも自動化するってことはひらたく言えば、

5314年2月16日日曜日

takaking22MacBookPro:work oyobe$ ls -latotal 8drwxr-xr-x 3 oyobe staff 102 1 29 06:31 ./drwx------@ 30 oyobe staff 1020 1 29 06:30 ../-rw-r--r-- 1 oyobe staff 53 1 29 06:31 release_manual.txt

takaking22MacBookPro:work oyobe$ chmod 744 release_manual.txt

takaking22MacBookPro:work oyobe$ ls -latotal 8drwxr-xr-x 3 oyobe staff 102 1 29 06:31 ./drwx------@ 30 oyobe staff 1020 1 29 06:30 ../-rwxr--r-- 1 oyobe staff 53 1 29 06:31 release_manual.txt*

takaking22MacBookPro:work oyobe$ ./release_manual.txtReleasing now....Release complete!!

こういう手順が作れること

手順書に実行権限つけて、

実行したらリリースできる!

5414年2月16日日曜日

リリース手順書がまともに書けない輩は

5514年2月16日日曜日

自動化って軽々しく言うな

自動化

5614年2月16日日曜日

http://www.flickr.com/photos/16983197@N06/6806402045/

3.リリース手順書を書く(基本編)

5714年2月16日日曜日

基本はたった1つ

5814年2月16日日曜日

1. 変化前のチェック2. 変化3. 変化後のチェック

5914年2月16日日曜日

pwd# /home/oyobe であること

cd /home/oyobe/work

pwd# /home/oyobe/work であること

変化前のチェック(現在地の確認)

変化後のチェック(現在地が変わった)

変化(移動する)

ディレクトリの移動

6014年2月16日日曜日

ls -la hogehoge# hogehoge が存在しないこと

touch hogehoge

ls -la hogehoge# hogehoge が存在すること

ファイル新規生成変化前のチェック(ファイル存在ない)

変化後のチェック(ファイルが存在する)

変化(ファイルをつくる)

6114年2月16日日曜日

diff hogehoge2 hogehoge# 以下の差分があること# 3d2# < Tommorow, we can see his magic!!

cp hogehoge2 hogehoge

diff hogehoge2 hogehoge# 差分がないこと

変化前のチェック(差分があること)

変化後のチェック(差分が無いこと)

変化(ファイルを更新)

ファイル更新

6214年2月16日日曜日

crontab -l | diff crontab.new -# 以下の差分があること# 5d4# < * * * * * /etc/OsakiMagic.sh

crontab crontab.new

crontab -l | diff crontab.new -# 差分がないこと

変化前のチェック(差分があること)

変化後のチェック(差分が無いこと)

変化(crontabを更新)

crontab更新

6314年2月16日日曜日

この繰り返しでリリースできるハズ

6414年2月16日日曜日

1. 変化前のチェック2. 変化3. 変化後のチェック

だからこれだけは、

絶対にさぼらない!!6514年2月16日日曜日

意図を持って書く

6614年2月16日日曜日

意図を持つ•期待値の明記•コマンドのオプション•絶対パス/相対パス

6714年2月16日日曜日

意図を持つ•期待値の明記•コマンドのオプション•絶対パス/相対パス

6814年2月16日日曜日

pwd# /home/oyobe であること

ls -la hogehoge# hogehogeが存在すること# ファイル権限が744であること

crontab -l | diff crontab.new -# 以下の差分があること# 5d4# < * * * * * /etc/OsakiMagic.sh

期待値を明記する# 始まりで書けば、

間違って実行しても大丈夫

期待値を誰が見ても迷わないように書く

差分を書いてあげると迷わないよね!

6914年2月16日日曜日

意図を持つ•期待値の明記•コマンドのオプション•絶対パス/相対パス

7014年2月16日日曜日

cp -p hogehoge ~/work/

cp -i hogehoge ~/work/

ls -ld ~/work

diff -r foo bar

rm -rf hogehoge

コマンドのオプション

全部わかりますか?7114年2月16日日曜日

cp -p hogehoge ~/work/

cp -i hogehoge ~/work/

ls -ld ~/work

diff -r foo bar

rm -rf hogehoge

コマンドのオプション権限、タイムスタンプそのまま

更新の場合、確認あり

ディレクトリの詳細情報

ディレクトリの差分確認

ディレクトリ強制消去

7214年2月16日日曜日

暗記しなくていいけどオプションは

意図して選択する

7314年2月16日日曜日

意図を持つ•期待値の明記•コマンドのオプション•絶対パス/相対パス

7414年2月16日日曜日

cd /home/oyobe/work

cd ./work

絶対パス / 相対パス

7514年2月16日日曜日

cd /home/oyobe/work

cd ./work

絶対パス / 相対パス絶対パス

相対パス

現在地を気にせずに使える

現在地を気にして使う

7614年2月16日日曜日

rm -rf ${WORK_DIR}/*

rm -rf ./work/*

絶対パス / 相対パス

もし現在地を間違えても同じディテクトリ名がなければ消えない

環境変数の設定を間違えると思わぬものが消えるかも

7714年2月16日日曜日

リハーサルは必須

7814年2月16日日曜日

ここまでは最低限

7914年2月16日日曜日

+α

8014年2月16日日曜日

手順書には相手がいるリリーサー?

チームメンバー?レビュワー?未来の後輩?

8114年2月16日日曜日

“相手”のことを考えてリーダブルにシンプルに書く

8214年2月16日日曜日

diff -br /foo/bar/test /yama/kawa/# 差分があることcp -p /foo/bar/test /yama/kawa/.diff -br /foo/bar/test /yama/kawa/# 差分が無いこと

インデントをそろえる

読みやすいし、パスを間違えてたら一目でわかる

8314年2月16日日曜日

bashexport WORK_TIME=`date +%Y%m%d`export WORK_DIR=${HOME}/work/${WORK_TIME}export APP_BASE_DIR=/usr/local/rms/jerry/recipe

diff -br ${WORK_DIR}/test ${APP_BASE_DIR}/hoge/# 差分があることcp -i ${WORK_DIR}/test ${APP_BASE_DIR}/hoge/diff -br ${WORK_DIR}/test ${APP_BASE_DIR}/hoge/# 差分が無いこと

長過ぎるパスをまとめる

文字数が減る、画面幅におさまる

8414年2月16日日曜日

お・も・い・や・り

8514年2月16日日曜日

http://www.flickr.com/photos/16983197@N06/6806402045/

4.リリース手順書を書く(応用編)

8614年2月16日日曜日

http://www.flickr.com/photos/16983197@N06/6806402045/

5.こんな手順はいやだ(実例)

8714年2月16日日曜日

【正式版】Clean Release Manual乞うご期待!!

8814年2月16日日曜日

http://www.flickr.com/photos/16983197@N06/6806402045/

5.読者の皆様へ

8914年2月16日日曜日

http://www.amazon.co.jp/gp/product/4822249212/

機械との競争エリック・プリニョルフソン、アンドリュー・マカフィー共著日経BP社出版

9014年2月16日日曜日

“Race against the Machine (機械との競争)に希望はなく、 Race with the Machine (機械をもってする競争)へと 考えを転換する必要がある”

/ 機械との競争

9114年2月16日日曜日

サービス指向スタートアップ指向

も重要

9214年2月16日日曜日

リリース自動化Continuous Delivery

も大事

9314年2月16日日曜日

でもその前に

9414年2月16日日曜日

あなたの書いた手順書は大丈夫ですか?

9514年2月16日日曜日

相手のことを考えて

9614年2月16日日曜日

一緒に働いてる仲間や未来の後輩のために

9714年2月16日日曜日

キレイでシンプルなリリース手順書を書くことができる

9814年2月16日日曜日

リリースを当たり前にしてプロダクトの価値

の最大化に注力できる

9914年2月16日日曜日

それができてこそサービサー

じゃないでしょうか?

10014年2月16日日曜日

作業を当たり前にして自動化して楽をして

次の新しい事に挑戦する

10114年2月16日日曜日

それができてこそエンジニア

じゃないでしょうか?

10214年2月16日日曜日

あなたも書こう!

10314年2月16日日曜日

CleanRelease Manualクリーンリリースマニュアル TAKAKING22 著

及部敬雄 訳

http://www.flickr.com/photos/16983197@N06/6806402045/10414年2月16日日曜日

及部 敬雄@TAKAKING22

●楽天株式会社開発ユニット●新サービス開発・運用1課●歌って踊れるエンジニア●アイドル、アニメに精通

10514年2月16日日曜日

top related