* 文字化けしているということだったので update しました.. re-upload の機能がなくなっているので URL 変わっちゃいました 、やれやれ *
第2回 HPC OPS研究会
https://bit.riken.jp/2018/06/2nd-hpc-ops-mtg/
---
16:15-16:50 政谷 国立情報学研究所 クラウド基盤研究開発センター
「NIIでの計算機環境の運用及び、Literate Computing for reproducible infrastructure について」
- NIIの計算機環境
- LC4RI 取り組みの動機 〜 現場における課題感
- 実践のための Jupyter Notebook 機能拡張
- 今後の思惑
---
What is LC4RI?
It is as important to share and communicate about infrastructure design and elaborated workflows with participants as to actually automate complex operations. Literate Computing for Reproducible Infrastructure is an approach both to describe automated operations as live code and to share predicted and reproducible outcomes among technical and non-technical alike in the form of narrative stories. We utilize Jupyter Notebook for sharing reproducible experience. The operational engineering and DevOps should be one of distinctive application areas for Jupyter.
Reference:
https://literate-computing.github.io/
https://github.com/NII-cloud-operation/
https://www.facebook.com/groups/LiterateComputing/
More than Just Lines on a Map: Best Practices for U.S Bike Routes
HPCOPS@20180702 - 「NIIでの計算機環境の運用及び、Literate Computing for reproducible infrastructure について」
1. Y Masatani, National Institute of Informatics
NIIでの計算機環境の運用及び、Literate Computing
for Reproducible Infrastructure (LC4RI) について
Y Masatani
NII
What is LC4RI - ( http: //literate-computing.github.io )
It is as important to share and communicate about infrastructure design and elaborated workflows with participants as to actually automate complex operations. Literate
Computing for Reproducible Infrastructure is an approach both to describe automated operations as live code and to share predicted and reproducible outcomes among
technical and non-technical alike in the form of narrative stories. We utilize Jupyter Notebook for sharing reproducible experience. The operational engineering and DevOps
should be one of distinctive application areas for Jupyter.
第2回 HPC OPS研究会 日時:2018年7月2日 主催: 理化学研究所. 協賛: 日本マイクロソフト https://bit.riken.jp/2018/06/2nd-hpc-ops-mtg/
2. Y Masatani, National Institute of Informatics
Agenda
• NIIの計算機環境
• LC4RI 取り組みの動機 ∼ 現場における課題感
• 実践のための Jupyter Notebook 機能拡張
• 今後の思惑
3. Y Masatani, National Institute of Informatics
NII研究クラウド
Academic
Baremetal
Cloud
利用
研究室セグメント
教員の
研究室セグメント
直結
Jupyterで
研究用クラスタ
構築支援
所内研究者
研究用プログラム
物理マシンプール
iSCSI volumes
研究者
Jupyterで
自動構築
運用管理
研究環境
構築者
運用手順
ノウハウの
共有・再利用
クラウド
構築・運用者
ベアメタルを
そのまま貸出
構築手順
5. Y Masatani, National Institute of Informatics
Symmetric Physical Infrastructure
• 機械化を追求できる物理レイヤ設計 トポロジが対称で、相似なノードを切り出せる構成
• 管理・制御用ネットワーク上のアクセス制御は Open Flow を活用(できるのはこんな場合ぐらいか..
テナント隔離を port-to-port のフロー制御で実現、IP/MAC Spoofing 攻撃等不可
管理サーバから見ると異なるテナント所属するサーバ群に均一にアクセス可だが、テナント間では不可
同一サブネット内に非対称なアクセス制御を実装できるので.. 運用・管理設計を簡素化できる
• ユーザネットワーク VLANで分離、SINET L2VPNと直結可能・高スループット
• NWストレージ SCSIで帯域を活用、内蔵ディスクと同等以上のスループット
6. Y Masatani, National Institute of Informatics
Open Flow based access control on Management Network
Serv 1 Serv 2 Serv 4
Management
Network
on a subnet
Serv 3
Bare-Metal
Servers
Cntrol Serv 1 Control Serv 2
Client Server 相互 は flow
制御により疎通しない
Control Server からはすべての
client Server に疎通する
• 管理サーバから Bare-Metalとして払い出したサーバへ疎通することはできるが、
払い出されたサーバ間の接続は不可(flow 制御によりパケットが届かない、詐称攻撃不可)
• 個別に許可することは可能
7. Y Masatani, National Institute of Informatics
Tired Provisioning
運用管理ノードを起点としたクラスタの構築
運用管理ノードは、管理用のJupyterサーバ機能、OpenStack、k8s などの構築資材レポジトリ機能、
管理ネットワークの制御用サーバ機能を保持
例: OpenStack クラスタの構築
1. 任意のベアメタルノードから OpenStack の制御サーバを導入するマスタ用ノードを選択
2. OpenStack から貸し出すノード群を選択、制御情報を登録(ノードNICがどのNWセグメントに帰属しているか明示的に登録している)
3. 管理ネットワーク上に、制御に必要となるネットワークの疎通を生成
4. 運用管理ノードから Jupyter Notebook で マスタ用ノードをプロビジョニング
5. マスタ用ノードに展開された OpenStack 制御ノードから、Bare-Metal ノードをプロビジョニング
① ②
③
④
⑤
• 物理領域を分割して、開発用のクラスタをプロビ
ジョニングするなど
• クラスタ構築手順の再現、検証を実施することも..
, , etc
8. yoshi NOBU masatani, National Institute of Informatics
Jupyter Deployment @ NII
Expert Engineer
@Operation Team
Production
@Private Cloud
Playground @Public Cloud
Participant User
Apprentice Engineer
@Operation Team
JupyterHub
Expert User
Jupyter
@Management
Server
Managed by Operators
Self Admin by Users
Acquire Skills from
Experiences on Sandbox
KVM
…
Jupyter
@Hypervisor
9. Y Masatani, National Institute of Informatics
現実の問題として..
日々の運用作業の証跡を記録
そこから手順を整理して再利用する
マニュアルや教材を整備する
複数局面での計算機利用を、記述・蓄積したい
「適切に分節化したものを紡いで」
様相の異なる局面でも,, 対象が異なっても,,
属人化・サイロ化を回避する,,
Traceability
Reusability
Reproducibility
Automation beyond Silos
10. Y Masatani, National Institute of Informatics
実現したいこと
• 作業の信頼性向上
• 手順の再利用
• ポータブルな手順
– 環境に依存しない…
– 環境の変更に追従できる…
– Systems System への適応
Infrastructure でも Social Coding / Design Review のような…
集合知の形成 / 綺麗な建付を愛でる美意識を形成… できるように
à architecture (operation込) における rationality / cardinality of design を 対象化
11. 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
Automation ?
12. Y Masatani, National Institute of Informatics
Individual 個々人による探索・試行錯誤
Collaborative 複数人でアイデアを共有・レビューして発展
Production 複数のグループによる展開,実用化
Publication & Communication
Education
Lifecycle of a Scientific Idea ≒ Engineering Practices
13. 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 で 理解を共有
14. Y Masatani, National Institute of Informatics
Collaboration and Automated Operation
“Manual”
Operations
“Autonomous”
Operations
No Ops
“Automated”
Operations
DevOps
+ Programming “Leftover Principle”
“Complementarity Principle”
Automation within a Silo
and in Blackboxes
Literate Computing for
Reproducible Infrastructure
+ Computational
Narratives
• Collaboration among human sharing reproducible experiences including
both “what went wrong” and “what went right”
• Collaboration with Automation keeping potential to respond, monitor, learn
and anticipate
自働化
機械化
自動化
+ Human in the Loop
15. Y Masatani, National Institute of Informatics
Automation Should Be Like Iron Man, Not Ultron
“The automation we created abided by the complementarity
principle. It was a partnership between human and machine. It did
not limit our ability to learn and grow. The control over the system
was shared between the automation and the humans involved.
In other words, rather than creating a system that took over the
cluster and ran it, we created one that partnered with humans to
take care of most of the work. It did its job autonomously, but we did
not step on each other's toes.”
Thomas A. Limoncelli. 2015. Automation Should Be Like Iron Man, Not Ultron.
Queue 13, 8, pages 50 (September 2015), 10 pages.
16. Y Masatani, National Institute of Informatics
Our Tools as Parts of Ourselves
“Automation weakens the bond between tool and user not
because computer-controlled systems are complex but
because they ask so little of us. They hide their workings in
secret code. They resist any involvement of the operator
beyond the bare minimum. They discourage the development
of skillfulness in their use. Automation ends up having an
anesthetizing effect. We no longer feel our tools as parts of
ourselves. ”
InCarr, Nicholas. The Glass Cage: How Our Computers Are Changing Us
(p. 223). W. W. Norton & Company. Kindle Edition.
17. Y Masatani, National Institute of Informatics
Hardiman, General Electric in 1965
https://www.engadget.com/2014/01/26/ge-man-amplifying-robots/
Automation 自働化
≠
Automated Operation 機械化
“Our tools as parts of ourselves”
18. yoshi NOBU masatani, National Institute of Informatics
Enhancement for Robust and Reliable Operation
The goals for Literate Computing tools are:
• Secure outputs; summarize massive output lines on GUI and save all original
output lines into an individual file
• Prevent miss-operation; once a cell has been executed, it “freezes” against
unintended execution and modification.
• Add a perspective; when markdown’s hierarchy is collapsed embedded cells
underneath are represented as “bricks” and also run through altogether.
Jupyter Notebook server which bundles a
set of tools for Literate Computing for
Reproducible Infrastructure. This bundle
shows what we have enhanced Jupyter.
docker run -it --rm -p 8888:8888 niicloudoperation/notebook
19. Y Masatani, National Institute of Informatics
日常の作業記録・証跡 と それらの再利用のために…
セルの実行
コード化された作業内容
設計情報、運用状態、判断などを
文章で記述
以前の実行結果を
参照できる(お手本)
実行結果を
お手本と比較
ノートブックの複製を渡して作業依頼
スキルトランスファーとして機能
GUI操作などコード化しずらい操作は
文章として記述して手作業をする
作業にあたって作業日時を
接頭辞に付したノートブックを作成
ノートブックを介し作業を行う
作業後に残ったノートブックが
そのまま証跡となる
直近の類似の作業を行った
ノートブックを複製して、経験を再利用
内容を継続的に見直して、作業改善
20. Y Masatani, National Institute of Informatics
About NII Extensions
https://github.com/NII-cloud-operation
21. yoshi NOBU masatani, National Institute of Informatics
Secure Outputs – LC_wrapper kernel
• Summarize massive output lines
• At each cell’s execution all original
output lines are saved into an
individual file with a time stamp.
• You can review whole output and
compare with previous results from
different executions.
https://github.com/NII-cloud-operation/Jupyter-LC_wrapper
22. yoshi NOBU masatani, National Institute of Informatics
https: //github.com/NII-cloud-operation/Jupyter-LC_docker << Document
$ docker pull niicloudoperation/notebook
$ docker run -it --rm -p 8888:8888 niicloudoperation/notebook
demo
23. yoshi NOBU masatani, National Institute of Informatics
Enhanced Collapsible Headings
https://github.com/NII-cloud-operation/Jupyter-LC_run_through/
25. yoshi NOBU masatani, National Institute of Informatics
Notebook for Diagnostic & Validation
実行可能なチェックリストとして活用
26. yoshi NOBU masatani, National Institute of Informatics
Visualize Relationship and Dependency
https://github.com/NII-cloud-operation/Literate-computing-Elasticsearch/blob/master/99_Summarizing%20notebooks.ipynb
http://blockdiag.com/en/
27. yoshi NOBU masatani, National Institute of Informatics
Visualize Relationship and Dependency
Notebook の関係を宣言的に記述 http://blockdiag.com/en/を用いて関連図を生成
28. yoshi NOBU masatani, National Institute of Informatics
Visualize Relationship and Dependency
Notebook の目次を blockdiag に挿入
30. Y Masatani, National Institute of Informatics
Reproducible Experience
Reproducible Operation Procedure
Make “Prerequisite” reproducible too
What we call as “Bindings” to the real specific world.
• Moving targets, i.e. systems’ system
• Always involve human in a evolutional loop
Literate Computing
Skill 文芸 Art
How we maintain Notebooks
Reproducible Infrastructure
Share Knowledge
Share Reproducible
Experience
Jupyter Notebook ~ Reproducible Document
31. yoshi NOBU masatani, National Institute of Informatics
Share Reproducible Experiences
Transfer skill and knowledge through shared reproducible experiences
among engineers, users, tech and non-tech.
< Live Codes >
< Outputs >
Engineers
Expert Engineer
share
experiences
Apprentice Engineer
Expert User
Participant User
User
elaborate
notebookstest deployment of applications
production deployment for users
share experiences
for administration
share
experience
acquire skill and knowledge
through shared experiences
self
administration
32. 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(どうなって欲しいのか)
ü やり直しの効く範囲はどこまでか,戻せるのか
ü (状況が変わったら,失敗したら)どこまで戻ればよいのか
ü 回復できないポイントとその回避可能性
ü 依存関係が恒常的なのか一時的なのか
ü 事前,事後の依存する作業
ü 分離できる条件と範囲, 作業の構造を見通したい
33. Y Masatani, National Institute of Informatics
今のところ..
インフラの面倒を見る人の間で..
ドキュメンテーション「大変」であることを
Notebook を媒介に..
コミュニケートできる..ということ!
ドキュメンテーションやら
運用の見える化やら
39. Y Masatani, National Institute of Informatics
AKK V B AT KJ BJP6
AKK SFIH JBO V B AT KJ B FRBI HH V B AT KJ FRB
P NP PK P B OBNRF BO AKK V -B KIIFOOFKJ - P 5KAB
6 BN PFKJ H KHF T BPPFJDO B NFPT!!! AKK NBNBM FOFPBO V B AT KJ BJP6
3;4 V B AT KJ BJP6 3;4 V BP BJP6 3;4 V /K ;4
BJP6 BJP6 BJP6 BJP6 BJP6 BJP6 BJP6 BJP6
;4
NBIBP H
;4
NBIBP H
;4
NBIBP H
;4
NBIBP H
;4
NBIBP H
;4
NBIBP H
;4
NBIBP H
;4
NBIBP H
KK3B
BBN
KK3B
BBN
KK3B
BBN
5IB
5KAB
5IB
5KAB
-P5
KAB
-P5
KAB
-P5
KAB
-P5
KAB
BOK
NB
4JD
BN
BOK
NB
4JD
BN
5KAB
4JD
BN
5KAB
4JD
BN
5KAB
4JD
BN
5KAB
4JD
BN
NG
B
PKKHO
FRB
FRB
IHH
BOP
- P OBP
BOP 2K
! AKK -B HKTIBJP 5KPB KKG
! AKK 6 BN PFKJ 5KPB KKG
! AKK NBNBM FOFPBO
5KPB KKG
FI HB 5 CKN BOP FI HB NG O NF P CKN BOP ! AKK KOP ;BNFCF PFKJ
5KPB KKG
! AKK H OPBN -BOFDJ
5KPB KKG
BP 1JRBJPKNT
5
-.
Elaborated Notebook’s Structure
41. Y Masatani, National Institute of Informatics
委託作業者による作業の「追試可能な作業報告書」
システムの構築作業を委託
→ 作業報告書や システムの保守・運用手順が
紙,電子ファイルとして納入される…
報告書 → 実作業の証跡としての有効
手順書 → 再利用する機会
42. Y Masatani, National Institute of Informatics
記述・ドキュメントの..「形」は何にしたがう..
ソフトウェアのアーキテクチャ
収容構成
運用の体制
当事者たる人間の関係性
蓄積と発展
機能に従う
失敗に従う
Social な “Literacy”
43. Y Masatani, National Institute of Informatics
Individual 個々人による探索・試行錯誤
Collaborative 複数人でアイデアを共有・レビューして発展
Production 複数のグループによる展開,実用化
Publication & Communication
Education
Lifecycle of a Scientific Idea ≒ Engineering Practices
44. Y Masatani, National Institute of Informatics
Literate Computing for Reproducible Infrastructure
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
45. Y Masatani, National Institute of Informatics
nblineage – Understand Life Cycle of Notebooks
How people share, revise, and evolve notebooks in a team.
A hypothesis:
- there should be a seed notebook and it would be reused and revised
several situations.
- Subsequently, a useful seed would generate a collection of diverged
notebooks,
- Then the collection would be refactored..
nblineage has been developed in order to study how usable notebooks are
evolved and distributed. This is on-going practice..
46. Y Masatani, National Institute of Informatics
https://github.com/NII-cloud-operation/Jupyter-LC_nblineage
Cell s meme ID at `lc_cell_meme` of cell metadata.
{
"lc_cell_meme": {
"current": "8f5c5fe2-71cc-11e7-9abe-02420aff0008", ## The meme id for this cell
"previous": "8f5c5cea-71cc-11e7-9abe-02420aff0008", ## The context of this cell as reference to the
"next": "f2125b84-4669-11e7-958b-02420aff0006", ## previous and the next cells
"history": [ ## The history of this notebook's context
{
"current": "8f5c5fe2-71cc-11e7-9abe-02420aff0008",
"previous": "8f5c5ee8-71cc-11e7-9abe-02420aff0008",
"next": "8f5c60aa-71cc-11e7-9abe-02420aff0008"
},
{
"current": "8f5c5fe2-71cc-11e7-9abe-02420aff0008",
"previous": "f2125b84-4669-11e7-958b-02420aff0006",
"next": "8f5c5ee8-71cc-11e7-9abe-02420aff0008"
}
]
},
...
}
47. Y Masatani, National Institute of Informatics
https://github.com/NII-cloud-operation/Jupyter-LC_nblineage
Notebook's meme ID at `lc_notebook_meme` of notebook metadata.
{
"lc_notebook_meme": {
"current": "1904d564-71c6-11e7-8369-0242ac110002", ## The meme id for this notebook
"lc_server_signature": {
"current": {
"server_url": "https://xxxxx.nii.ac.jp/user/xxxx/", ## The current notebook server information is also stored
"notebook_path": "/",
"notebook_dir": "/notebooks",
"signature_id": "034b406c-71c8-11e7-a8bf-02420aff0008"
},
"history": [
{ ## Travel history where this notebook has been executed
"notebook_dir": "/notebooks",
"notebook_path": "/",
"server_url": "http://localhost:8888/",
"signature_id": "dc3b0162-71bb-11e7-8369-0242ac110002"
}
]
},
...
}
48. Y Masatani, National Institute of Informatics
https://github.com/NII-cloud-operation/Jupyter-LC_nblineage
The list of meme IDs of cells in this notebook is also recorded
{
"lc_notebook_meme": {
"current": "5fb59a5c-71d0-11e7-9acc-0242ac110002", ## newly assigned notebook's meme id
"lc_server_signature": {
"current": {
...
...
},
"root_cells": [
"5fb59caa-71d0-11e7-9acc-0242ac110002", ## The list of cells' meme IDs in this notebook
"5fb59dfe-71d0-11e7-9acc-0242ac110002", # In this case there are 6 cells in this notebook
"5fb59f2a-71d0-11e7-9acc-0242ac110002",
"5fb5a042-71d0-11e7-9acc-0242ac110002",
"5fb5a150-71d0-11e7-9acc-0242ac110002",
"5fb5a25e-71d0-11e7-9acc-0242ac110002"
],
"history": [
"1904d564-71c6-11e7-8369-0242ac110002" ## old meme id of this notebook that was <source.ipynb>
]
},
...
}
49. Y Masatani, National Institute of Informatics
Lineage Network
Notebook
degree of
common memes
51. Y Masatani, National Institute of Informatics
Lineage Network
Collect reusable materials
as a baseline
CentOS 6 ⇒ 7
Import stacks
Deploy a seed
Production
Side work for production
Another concurrent
development
55. Y Masatani, National Institute of Informatics
https://literate-computing.github.io/https://github.com/NII-cloud-operation/
https://www.facebook.com/groups/LiterateComputing/
気に入ったら★くださいね!
興味があったら参加してください
56. Y Masatani, National Institute of Informatics
Thank you
https://github.com/NII-cloud-operation