運用作業の証跡も,再利用する手順の記述も,教材作成も Literate Computing でやってみる – toward Literate Computing for Reproducible Infrastructure – 2/8/2016 Hadoop Conference Japan 2016 – LT
http://hadoop.apache.jp/hcj2016-program/
国立情報学研究所(NII)では、研究者向けのクラウドを運用・サービス提供するに際してLiterate Computing for Reproducible Infrastructure という考え方を提案している。 日々の運用作業の証跡を記録する、そこから手順を整理して再利用する、マニ ュアルや教材を整備するなど複数局面での計算機利用を、同じような粒度で記述・蓄積することを目的としてJupyterを活用し ている実践を紹介する。スキルセットの異なる運用者間ひいては利用者との間でもHadoopやSparkなど複雑なインフラの構築 やカスタマイズ,運用ノウハウに関する伝達・教示を容易にすること。また,計算機環境の構築・運用・利用のすべての局面に おいて環境のトレーサビリティや再現性を担保できるようにすること。卑近には運用スキルの属人化,ブラックボックス化を避 けること。 これらの課題感にLiterate Computingでどこまで対処できたか、できそうか話してみたい。
“Literate Computing for Reproducible Infrastructure” – Open Communication about Design and Process through Notebook
--
Related to:
NIIで いろいろな Hadoop環境(だけじゃないけど)を 作ったり壊したり 動かし続けたりしている話
http://www.slideshare.net/yacchin/niihadoop
1. Y Masatani, National Institute of Informatics
運用作業の証跡も,再利用する手順の記述も,教材作成も
Literate Computing て やってみる
toward Literate Computing for Reproducible Infrastructure
Y Masatani
NII
3. Y Masatani, National Institute of Informatics
現実の問題として..
日々の運用作業の証跡を記録
そこから手順を整理して再利用する
マニュアルや教材を整備する
これら複数局面での計算機利用を、同じような粒度、
シームレスな方法で記述・蓄積したい
複数局面,, 対象が異なっても
2
4. Y Masatani, National Institute of Informatics
Automation ではなく.. Communication
as Code (コード化)= Coding Style を適用する
• 作業手順が Code になる / 作業手順の正当性がプログラムコードのように検証可能 / 実行結果も機械的に検証可能
• 記述言語の能力 / 記述に基づく機械化・自動化ツールの利便性
現場的には Communication が大切…
• スキルセットが異なる当事者間においても.. 個々の作業の再現性を担保したい..
• インフラの状態やそこに至るまでの経緯を理解し易くする..
• その上で作業をカスタマイズ・再利用すると言ったプロセス自体も(Code として)見える化
• 伝達可能にすること,蓄積・発展させること
“Literate Computing for Reproducible Infrastructure” –
Open Communication about Design and Process through Notebook
3
Automation ?
5. Y Masatani, National Institute of Informatics
記述・ドキュメントの..「形」は何にしたがう..
ソフトウェアのアーキテクチャ
収容構成
運用の体制
当事者たる人間の関係性
蓄積と発展
4
機能に従う
失敗に従う
Social な “Literacy”
6. Y Masatani, National Institute of Informatics
経緯 - retrospective & prospective narratives
インフラ運用において伝達・共有したいこと…
過去に起こった経緯(いきさつ)これから起こるであろう経緯(なりゆき)
トレーサビリティの把握
ü “Who” (誰が) - “When did” (いつ) - “in What operation” (何をどうして) with “intention; Why” (どういうつ
もりが), then “Consequences happened” (どうなった)
ü 作業対象としてのインフラが,現在どうなっているか理解したい
複数作業間の依存関係,文脈の把握
ü When(どういう時に)Why(なんのために)What Operation(何をどうして)Consequence(どうなって
欲しいのか)
ü やり直しの効く範囲はどこまでか,戻せるのか
ü (状況が変わったら,失敗したら)どこまで戻ればよいのか
ü 回復できないポイントとその回避可能性
ü 依存関係が恒常的なのか一時的なのか
ü 事前,事後の依存する作業
ü 分離できる条件と範囲, 作業の構造を見通したい
5
7. Y Masatani, National Institute of Informatics
Individual 個々人による探索・試行錯誤
Collaborative 複数人でアイデアを共有・レビューして発展
Production 複数のグループによる展開,実用化
Publication & Communication
Education
Lifecycle of a Scientific Idea Engineering Practices
6
8. Y Masatani, National Institute of Informatics
Who would / could document?
かつて Literate Programming というのがあった..
インフラの面倒を見る人の間で..
ドキュメンテーション「大変」であることを
Notebook を媒介に..
コミュニケートできる..ということ!
7
ドキュメンテーションやら
運用の見える化やら
気持ちは近しい..
9. Y Masatani, National Institute of Informatics
Literate Computing for Reproducible Infrastructure
8
Bare Metal
Cloud
< Live Codes >
< Outputs >
refactor
operations
run notebooks as live codes
write reproducible
operations as notebooks
keep outputs for tractability and reproducibility
communicate via notebook communicate via notebook
share and elaborate
narrative stories
share and elaborate
narrative stories
self administration
reproducible workflows
accelerated experiments
Ansible Playbook &
Jupyter Notebook
Reference Patterns
Expert EngineerApprentice Engineer Expert User
Participant User
運用作業の証跡も,再利用する手順の記述も,教材作成も Literate Computing でやってみる – toward Literate Computing for Reproducible Infrastructure – 2/8/2016 Hadoop Conference Japan 2016 – LT
http://hadoop.apache.jp/hcj2016-program/
国立情報学研究所(NII)では、研究者向けのクラウドを運用・サービス提供するに際してLiterate Computing for Reproducible Infrastructure という考え方を提案している。 日々の運用作業の証跡を記録する、そこから手順を整理して再利用する、マニ ュアルや教材を整備するなど複数局面での計算機利用を、同じような粒度で記述・蓄積することを目的としてJupyterを活用し ている実践を紹介する。スキルセットの異なる運用者間ひいては利用者との間でもHadoopやSparkなど複雑なインフラの構築 やカスタマイズ,運用ノウハウに関する伝達・教示を容易にすること。また,計算機環境の構築・運用・利用のすべての局面に おいて環境のトレーサビリティや再現性を担保できるようにすること。卑近には運用スキルの属人化,ブラックボックス化を避 けること。 これらの課題感にLiterate Computingでどこまで対処できたか、できそうか話してみたい。
“Literate Computing for Reproducible Infrastructure” – Open Communication about Design and Process through Notebook