SlideShare a Scribd company logo
1 of 25
Download to read offline
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

ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)Tokoroten Nakayama
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)Koichiro Matsuoka
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Kentaro Yoshida
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかYusuke Suzuki
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版Tokoroten Nakayama
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019Tokoroten Nakayama
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018Yusuke Suzuki
 
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) Satoshi Nagayasu
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
 
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
 
Amazon SageMaker で始める機械学習
Amazon SageMaker で始める機械学習Amazon SageMaker で始める機械学習
Amazon SageMaker で始める機械学習
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 

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の現状とCyberinfrastructureKeiichiro 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_14swkagami
 
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
 
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 futureOperation Lab, LLC.
 
セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12Yukio 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