SlideShare a Scribd company logo
Y Masatani, National Institute of Informatics
Jupyter Notebook を⽤いた⽂芸的インフラ運⽤のススメ
Toward Literate Computing for Reproducible Infrastructure
Y Masatani
NII
Y Masatani, National Institute of Informatics
現実の問題として..
⽇々の運⽤作業の証跡を記録
そこから⼿順を整理して再利⽤する
マニュアルや教材を整備する
これら複数局⾯での計算機利⽤を、同じような粒度、シーム
レスな⽅法で「適切に分節化したものを同様に紡いで」
記述・蓄積したい
様相の異なる局⾯でも,, 対象が異なっても,,
属⼈化, サイロ化を回避する,,
1
Traceability
Reusability
Reproducibility
Y Masatani, National Institute of Informatics
Automation ではなく.. Communication
Infrastructure “as Code” = Coding Style を適⽤する
–  Validation, Auditing, cross OS …
–  CI (Continuous Integration), Automation …
–  Code vs. Config (Hiera,
現場的には Communication が⼤切…
•  スキルセットが異なる当事者間においても.. 個々の作業の再現性を担保したい..
•  インフラの状態やそこに⾄るまでの経緯を理解し易くする..
•  その上で作業をカスタマイズ・再利⽤すると⾔ったプロセス⾃体も(Code として)
⾒える化
•  伝達可能にすること,蓄積・発展させること
2
それだけで充分だっけ??
Y Masatani, National Institute of Informatics
実現したいこと
•  作業の信頼性向上
•  ⼿順の再利⽤
•  ポータブルな⼿順
–  環境に依存しない…
–  環境の変更に追従できる…
–  Systems System への適応
Infrastructure でも Social Coding / Design Review のような… 
集合知の形成 / 綺麗な建付を愛でる美意識を形成… できるように
à architecture (operation込) における rationality / cardinality of design
を 対象化
Y Masatani, National Institute of Informatics
“Literate Computing for Reproducible Infrastructure”
⽂芸的機械化 - “機械的に再現できる、⼈が読み解ける⼿順”
⾃動化 ≠ 機械化 ⼈が介在しつつも機械的に再現できる ⇒ Reproducibility
asCode は共通認識の形成に寄与してこそ! .. 現場でのコミュニケーションを促す
もの
“Open Communication about Design and Process through Notebook”
計算機 = computation も ⼈間どうし も = communication 役割分担
-  実際の実⾏結果が⼿順とともに,dataが live-code に埋め込まれていて再現できる
-  ⼿順や経緯 が具体的に,再現可能な形で表現・伝達
-  Technical と Non-Technical で 理解を共有
4
Y Masatani, National Institute of Informatics
Individual 個々⼈による探索・試⾏錯誤
Collaborative 複数⼈でアイデアを共有・レビューして発展
Production 複数のグループによる展開,実⽤化
Publication & Communication
Education
Lifecycle of a Scientific Idea ≒ Engineering Practices
5
Y Masatani, National Institute of Informatics
構造 - Ansible と Notebook の使い分けと それぞれの分節
Ansible 
⽂脈に依存しない⼿順はAnsibleで構造化
•  作業単位に冪等性がある,ないしは作業後の状態が(運⽤観点で)⼀意に確定するなど再利⽤性が⾼い作業単位
•  複数の⽂脈で顕れる類似する作業群をパラメタ化によってひとつに集約して記述できる作業単位
•  複数の対象,サーバ群などに対する作業単位
•  インフラの環境構成とシステムのあるべき姿としてのソフトウェア構成を記述するが、
それらの「構成」を決定した経緯はNotebookで記述
Notebook
副作⽤を把握しなければならない⼿順,⽂脈を伴う⼿順はNotebookで構造化
•  依存関係のある⼀連の⽂脈を伴う作業の記述.例えば,事前・事後処理のあるひとまとまり作業単位
-  リソースの配置設計、リソースに対するアプリケーションの収容設計 をそれぞれ “コードとして” 記述する
•  作業結果に基づいて⼀定の判断,確認が必要な作業単位
•  systems system としての運⽤観点で、⼀括りに制御したい作業単位
•  ⼀部,機械化できない状態,⼈での作業を伴う作業単位
分節点分節点
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(どうなって欲しいの
か)
-  やり直しの効く範囲はどこまでか,戻せるのか
-  (状況が変わったら,失敗したら)どこまで戻ればよいのか
-  回復できないポイントとその回避可能性
-  依存関係が恒常的なのか⼀時的なのか
-  事前,事後の依存する作業
-  分離できる条件と範囲, 作業の構造を⾒通したい
7
Y Masatani, National Institute of Informatics
どのような構造を把握すべきか
記述・ドキュメントの..「形」は何にしたがう..
ソフトウェアのアーキテクチャ
収容構成
運⽤の体制
当事者たる⼈間の関係性
蓄積と発展
機能に従う
失敗に従う
Social な “Literacy”
Y Masatani, National Institute of Informatics2016/6/30 NII Cloud Operation
9
Literate Computing
TOC
Documents
Codes
Results
Jupyter Notebook
Y Masatani, National Institute of Informatics
運⽤作業者のための「追随可能な⼿順書」
機械化できない⼿動作業も指⽰書き
⼿順のレビュー
前回作業時の記録と差分を⽐較、検討
作業証跡、報告として記録
10
Y Masatani, National Institute of Informatics
利⽤者のための「追随可能な指⽰書・作業確認書」
予め雛形を⽰し要件を摺り合わせる
提供した環境内容の確認
カスタマイズに必要な情報の提供
セルフ・アドミニストレーション
11
Y Masatani, National Institute of Informatics
⽇常の作業記録・証跡
12
Y Masatani, National Institute of Informatics
Literate Computing for Reproducible Infrastructure
13
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 notebookcommunicate 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
Y Masatani, National Institute of Informatics
参考
Jupyter is ascending
14
Y Masatani, National Institute of Informatics
IPython Notebook
•  Python の Rich Web client な対話インターフェース
•  実⾏Code,実⾏結果(計算の結果や,結果を埋め込んだ図表),⾃然⾔語による⼿順や経
緯の説明を ひとつにまとめて記述
•  “The purpose of Computing is insight, not numbers” – Hamming [Numerical
Methods for Scientists and Engineers (1962) Preface]
•  数理系研究者のツールとして発展
http: //ipython.org
1991: Python
1995: Numeric → NumPy (~2006)
2001: SciPy
2001: IPython
2003: Matplotlib
…
2011: IPython Notebook
2015: Jupyter
15
アイデアの探索課程の記録,共同開発,再現可能な成果の公開,教育
Y Masatani, National Institute of Informatics
Jupyter – Language Agnostic Notebook
http: //jupyter.org
- Interactive Python shell - Network protocol and Rich Web
clients
- Kernel for Python - Notebook file format and tools
- Tools for Interactive Parallel - Nbviewer
Computing
Jupyter = Julia, Python & R†
Github でもサポート
16
- Language Agnostic
† https://github.com/jupyter/design/wiki/Jupyter-Logo
Y Masatani, National Institute of Informatics
http://try.jupyter.org
17
Y Masatani, National Institute of Informatics
jupyter.org
18
Y Masatani, National Institute of Informatics
GitHub
19
http://blog.jupyter.org/
2015/05/07/rendering-
notebooks-on-github/
http://nb.bianp.net/sort/
views/
https://github.com/ipython/ipython/
wiki/A-gallery-of-interesting-
IPython-Notebooks
Y Masatani, National Institute of Informatics
Courseware
20
"Aerodynamics-Hydrodynamics" (MAE 6226) using
the AeroPython series of lessons is taught at the
George Washington University by Prof. Lorena A.
Barba. The first version of the course ran in Spring
2014…
https://github.com/barbagroup/AeroPython
Y Masatani, National Institute of Informatics
Publication
21
https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-
Bayesian-Methods-for-Hackers/blob/master/Chapter1_Introduction/
Chapter1.ipynb
Y Masatani, National Institute of Informatics
Publication
22
https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-
Bayesian-Methods-for-Hackers/blob/master/Chapter1_Introduction/
Chapter1.ipynb
http://enakai00.hatenablog.com/entry/
2016/04/01/170802
Y Masatani, National Institute of Informatics
Open Science
23
This notebook reproduces their results, and
demonstrates why their claims are unsupported by
their analysis.…
https://github.com/benlaken/
Comment_BadruddinAslam2014/blob/master/
Monsoon_analysis.ipynb
Y Masatani, National Institute of Informatics

More Related Content

What's hot

PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
 
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
(shibao)芝尾 (kouichiro)幸一郎
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
Shingo Omura
 
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier_IV
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
Deep Learning JP
 
TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)
Mr. Vengineer
 
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
Deep Learning Lab(ディープラーニング・ラボ)
 
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
Deep Learning JP
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
Yuta Kikuchi
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
Deep Learning JP
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
Rui Watanabe
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
cvpaper. challenge
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
 
Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)
Kazuki Maeno
 

What's hot (20)

PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
 
TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)
 
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
[Track4-3] AI・ディープラーニングを駆使して、「G検定合格者アンケートのフリーコメント欄」を分析してみた
 
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)
 

Similar to Jupyter notebook を用いた文芸的インフラ運用のススメ

Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
No Bu
 
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
yamahige
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
Hironori Washizaki
 
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureCytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
Keiichiro Ono
 
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
光平 八代
 
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
光平 八代
 
Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session
Kiyoshi Ogawa
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
 
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
HironoriTAKEUCHI1
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
swkagami
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
Mie Mori
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Daiyu Hatakeyama
 
NGK2022S
NGK2022SNGK2022S
NGK2022S
陽平 山口
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the future
Operation Lab, LLC.
 
セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12
Yukio Saito
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTURE Project
 
131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料openrtm
 
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
Tomoaki Sawada
 
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
yamahige
 

Similar to Jupyter notebook を用いた文芸的インフラ運用のススメ (20)

Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
 
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
相互運用可能な作文計測システムの設計 - リアルタイムモニタリングに向けて -
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureCytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
 
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
運用レコメンドPF OpsBear ~運用作業における調査/分析の機械化~ (OpsX Meet Up v18.12)
 
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
 
Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
 
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
 
NGK2022S
NGK2022SNGK2022S
NGK2022S
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the future
 
セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12
 
OpenSpan_PreMarketing
OpenSpan_PreMarketingOpenSpan_PreMarketing
OpenSpan_PreMarketing
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料131111 東工大授業「ロボット技術」資料
131111 東工大授業「ロボット技術」資料
 
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
 
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
 

Jupyter notebook を用いた文芸的インフラ運用のススメ

  • 1. Y Masatani, National Institute of Informatics Jupyter Notebook を⽤いた⽂芸的インフラ運⽤のススメ Toward Literate Computing for Reproducible Infrastructure Y Masatani NII
  • 2. Y Masatani, National Institute of Informatics 現実の問題として.. ⽇々の運⽤作業の証跡を記録 そこから⼿順を整理して再利⽤する マニュアルや教材を整備する これら複数局⾯での計算機利⽤を、同じような粒度、シーム レスな⽅法で「適切に分節化したものを同様に紡いで」 記述・蓄積したい 様相の異なる局⾯でも,, 対象が異なっても,, 属⼈化, サイロ化を回避する,, 1 Traceability Reusability Reproducibility
  • 3. Y Masatani, National Institute of Informatics Automation ではなく.. Communication Infrastructure “as Code” = Coding Style を適⽤する –  Validation, Auditing, cross OS … –  CI (Continuous Integration), Automation … –  Code vs. Config (Hiera, 現場的には Communication が⼤切… •  スキルセットが異なる当事者間においても.. 個々の作業の再現性を担保したい.. •  インフラの状態やそこに⾄るまでの経緯を理解し易くする.. •  その上で作業をカスタマイズ・再利⽤すると⾔ったプロセス⾃体も(Code として) ⾒える化 •  伝達可能にすること,蓄積・発展させること 2 それだけで充分だっけ??
  • 4. Y Masatani, National Institute of Informatics 実現したいこと •  作業の信頼性向上 •  ⼿順の再利⽤ •  ポータブルな⼿順 –  環境に依存しない… –  環境の変更に追従できる… –  Systems System への適応 Infrastructure でも Social Coding / Design Review のような…  集合知の形成 / 綺麗な建付を愛でる美意識を形成… できるように à architecture (operation込) における rationality / cardinality of design を 対象化
  • 5. Y Masatani, National Institute of Informatics “Literate Computing for Reproducible Infrastructure” ⽂芸的機械化 - “機械的に再現できる、⼈が読み解ける⼿順” ⾃動化 ≠ 機械化 ⼈が介在しつつも機械的に再現できる ⇒ Reproducibility asCode は共通認識の形成に寄与してこそ! .. 現場でのコミュニケーションを促す もの “Open Communication about Design and Process through Notebook” 計算機 = computation も ⼈間どうし も = communication 役割分担 -  実際の実⾏結果が⼿順とともに,dataが live-code に埋め込まれていて再現できる -  ⼿順や経緯 が具体的に,再現可能な形で表現・伝達 -  Technical と Non-Technical で 理解を共有 4
  • 6. Y Masatani, National Institute of Informatics Individual 個々⼈による探索・試⾏錯誤 Collaborative 複数⼈でアイデアを共有・レビューして発展 Production 複数のグループによる展開,実⽤化 Publication & Communication Education Lifecycle of a Scientific Idea ≒ Engineering Practices 5
  • 7. Y Masatani, National Institute of Informatics 構造 - Ansible と Notebook の使い分けと それぞれの分節 Ansible  ⽂脈に依存しない⼿順はAnsibleで構造化 •  作業単位に冪等性がある,ないしは作業後の状態が(運⽤観点で)⼀意に確定するなど再利⽤性が⾼い作業単位 •  複数の⽂脈で顕れる類似する作業群をパラメタ化によってひとつに集約して記述できる作業単位 •  複数の対象,サーバ群などに対する作業単位 •  インフラの環境構成とシステムのあるべき姿としてのソフトウェア構成を記述するが、 それらの「構成」を決定した経緯はNotebookで記述 Notebook 副作⽤を把握しなければならない⼿順,⽂脈を伴う⼿順はNotebookで構造化 •  依存関係のある⼀連の⽂脈を伴う作業の記述.例えば,事前・事後処理のあるひとまとまり作業単位 -  リソースの配置設計、リソースに対するアプリケーションの収容設計 をそれぞれ “コードとして” 記述する •  作業結果に基づいて⼀定の判断,確認が必要な作業単位 •  systems system としての運⽤観点で、⼀括りに制御したい作業単位 •  ⼀部,機械化できない状態,⼈での作業を伴う作業単位 分節点分節点
  • 8. 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(どうなって欲しいの か) -  やり直しの効く範囲はどこまでか,戻せるのか -  (状況が変わったら,失敗したら)どこまで戻ればよいのか -  回復できないポイントとその回避可能性 -  依存関係が恒常的なのか⼀時的なのか -  事前,事後の依存する作業 -  分離できる条件と範囲, 作業の構造を⾒通したい 7
  • 9. Y Masatani, National Institute of Informatics どのような構造を把握すべきか 記述・ドキュメントの..「形」は何にしたがう.. ソフトウェアのアーキテクチャ 収容構成 運⽤の体制 当事者たる⼈間の関係性 蓄積と発展 機能に従う 失敗に従う Social な “Literacy”
  • 10. Y Masatani, National Institute of Informatics2016/6/30 NII Cloud Operation 9 Literate Computing TOC Documents Codes Results Jupyter Notebook
  • 11. Y Masatani, National Institute of Informatics 運⽤作業者のための「追随可能な⼿順書」 機械化できない⼿動作業も指⽰書き ⼿順のレビュー 前回作業時の記録と差分を⽐較、検討 作業証跡、報告として記録 10
  • 12. Y Masatani, National Institute of Informatics 利⽤者のための「追随可能な指⽰書・作業確認書」 予め雛形を⽰し要件を摺り合わせる 提供した環境内容の確認 カスタマイズに必要な情報の提供 セルフ・アドミニストレーション 11
  • 13. Y Masatani, National Institute of Informatics ⽇常の作業記録・証跡 12
  • 14. Y Masatani, National Institute of Informatics Literate Computing for Reproducible Infrastructure 13 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 notebookcommunicate 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
  • 15. Y Masatani, National Institute of Informatics 参考 Jupyter is ascending 14
  • 16. Y Masatani, National Institute of Informatics IPython Notebook •  Python の Rich Web client な対話インターフェース •  実⾏Code,実⾏結果(計算の結果や,結果を埋め込んだ図表),⾃然⾔語による⼿順や経 緯の説明を ひとつにまとめて記述 •  “The purpose of Computing is insight, not numbers” – Hamming [Numerical Methods for Scientists and Engineers (1962) Preface] •  数理系研究者のツールとして発展 http: //ipython.org 1991: Python 1995: Numeric → NumPy (~2006) 2001: SciPy 2001: IPython 2003: Matplotlib … 2011: IPython Notebook 2015: Jupyter 15 アイデアの探索課程の記録,共同開発,再現可能な成果の公開,教育
  • 17. Y Masatani, National Institute of Informatics Jupyter – Language Agnostic Notebook http: //jupyter.org - Interactive Python shell - Network protocol and Rich Web clients - Kernel for Python - Notebook file format and tools - Tools for Interactive Parallel - Nbviewer Computing Jupyter = Julia, Python & R† Github でもサポート 16 - Language Agnostic † https://github.com/jupyter/design/wiki/Jupyter-Logo
  • 18. Y Masatani, National Institute of Informatics http://try.jupyter.org 17
  • 19. Y Masatani, National Institute of Informatics jupyter.org 18
  • 20. Y Masatani, National Institute of Informatics GitHub 19 http://blog.jupyter.org/ 2015/05/07/rendering- notebooks-on-github/ http://nb.bianp.net/sort/ views/ https://github.com/ipython/ipython/ wiki/A-gallery-of-interesting- IPython-Notebooks
  • 21. Y Masatani, National Institute of Informatics Courseware 20 "Aerodynamics-Hydrodynamics" (MAE 6226) using the AeroPython series of lessons is taught at the George Washington University by Prof. Lorena A. Barba. The first version of the course ran in Spring 2014… https://github.com/barbagroup/AeroPython
  • 22. Y Masatani, National Institute of Informatics Publication 21 https://github.com/CamDavidsonPilon/Probabilistic-Programming-and- Bayesian-Methods-for-Hackers/blob/master/Chapter1_Introduction/ Chapter1.ipynb
  • 23. Y Masatani, National Institute of Informatics Publication 22 https://github.com/CamDavidsonPilon/Probabilistic-Programming-and- Bayesian-Methods-for-Hackers/blob/master/Chapter1_Introduction/ Chapter1.ipynb http://enakai00.hatenablog.com/entry/ 2016/04/01/170802
  • 24. Y Masatani, National Institute of Informatics Open Science 23 This notebook reproduces their results, and demonstrates why their claims are unsupported by their analysis.… https://github.com/benlaken/ Comment_BadruddinAslam2014/blob/master/ Monsoon_analysis.ipynb
  • 25. Y Masatani, National Institute of Informatics