Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HPCOPS@20180702 - 「NIIでの計算機環境の運用及び、Literate Computing for reproducible infrastructure について」

205 views

Published on

* 文字化けしているということだったので 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/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

HPCOPS@20180702 - 「NIIでの計算機環境の運用及び、Literate Computing for reproducible infrastructure について」

  1. 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. 2. Y Masatani, National Institute of Informatics Agenda • NIIの計算機環境 • LC4RI 取り組みの動機 ∼ 現場における課題感 • 実践のための Jupyter Notebook 機能拡張 • 今後の思惑
  3. 3. Y Masatani, National Institute of Informatics NII研究クラウド Academic Baremetal Cloud 利用 研究室セグメント 教員の 研究室セグメント 直結 Jupyterで 研究用クラスタ 構築支援 所内研究者 研究用プログラム 物理マシンプール iSCSI volumes 研究者 Jupyterで 自動構築 運用管理 研究環境 構築者 運用手順 ノウハウの 共有・再利用 クラウド 構築・運用者 ベアメタルを そのまま貸出 構築手順
  4. 4. Y Masatani, National Institute of Informatics Symmetric Physical Infrastructure 運用管理サーバ (正・副) - OpenFlow Controller - プロビ - レポジトリ - OperationHub R630 2式 1GbE x8 ・・・・・・ ストレージ装置 PS6210X 20式 10GbE x4 ベアメタルサーバ R630 30式 10GbE x4 ・・・・・ ストレージセグメントスイッチ S6000 2式 10/40GbE x32 管理セグメントスイッチ P-3930 2式 10G-T x48,40GbE QSFP x4 サービスセグメントスイッチ S4820T 2式 10G-T x48,40GbE QSFP x4 サービス系 L2 NW - 研究セグメントに L2 接続 (研究者が管理するネットワーク) - SINET L2VPN にも接続化 運用管理系の NW は OpenFlow を用いた 非対称な アクセス制御 4種のセグメント(サブネット)に分割 1. Management, IPMI 2. OpenStack Provisioning 3. OpenFlow S/W 制御 4. Storage 制御 3と4は同一セグメント(相互疎通不可の flow 制御)
  5. 5. Y Masatani, National Institute of Informatics Symmetric Physical Infrastructure • 機械化を追求できる物理レイヤ設計 トポロジが対称で、相似なノードを切り出せる構成 • 管理・制御用ネットワーク上のアクセス制御は Open Flow を活用(できるのはこんな場合ぐらいか.. テナント隔離を port-to-port のフロー制御で実現、IP/MAC Spoofing 攻撃等不可 管理サーバから見ると異なるテナント所属するサーバ群に均一にアクセス可だが、テナント間では不可 同一サブネット内に非対称なアクセス制御を実装できるので.. 運用・管理設計を簡素化できる • ユーザネットワーク VLANで分離、SINET L2VPNと直結可能・高スループット • NWストレージ SCSIで帯域を活用、内蔵ディスクと同等以上のスループット
  6. 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. 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. 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. 9. Y Masatani, National Institute of Informatics 現実の問題として.. 日々の運用作業の証跡を記録 そこから手順を整理して再利用する マニュアルや教材を整備する 複数局面での計算機利用を、記述・蓄積したい 「適切に分節化したものを紡いで」 様相の異なる局面でも,, 対象が異なっても,, 属人化・サイロ化を回避する,, Traceability Reusability Reproducibility Automation beyond Silos
  10. 10. Y Masatani, National Institute of Informatics 実現したいこと • 作業の信頼性向上 • 手順の再利用 • ポータブルな手順 – 環境に依存しない… – 環境の変更に追従できる… – Systems System への適応 Infrastructure でも Social Coding / Design Review のような… 集合知の形成 / 綺麗な建付を愛でる美意識を形成… できるように à architecture (operation込) における rationality / cardinality of design を 対象化
  11. 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. 12. Y Masatani, National Institute of Informatics Individual 個々人による探索・試行錯誤 Collaborative 複数人でアイデアを共有・レビューして発展 Production 複数のグループによる展開,実用化 Publication & Communication Education Lifecycle of a Scientific Idea ≒ Engineering Practices
  13. 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. 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. 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. 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. 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. 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. 19. Y Masatani, National Institute of Informatics 日常の作業記録・証跡 と それらの再利用のために… セルの実行 コード化された作業内容 設計情報、運用状態、判断などを 文章で記述 以前の実行結果を 参照できる(お手本) 実行結果を お手本と比較 ノートブックの複製を渡して作業依頼 スキルトランスファーとして機能 GUI操作などコード化しずらい操作は 文章として記述して手作業をする 作業にあたって作業日時を 接頭辞に付したノートブックを作成 ノートブックを介し作業を行う 作業後に残ったノートブックが そのまま証跡となる 直近の類似の作業を行った ノートブックを複製して、経験を再利用 内容を継続的に見直して、作業改善
  20. 20. Y Masatani, National Institute of Informatics About NII Extensions https://github.com/NII-cloud-operation
  21. 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. 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. 23. yoshi NOBU masatani, National Institute of Informatics Enhanced Collapsible Headings https://github.com/NII-cloud-operation/Jupyter-LC_run_through/
  24. 24. yoshi NOBU masatani, National Institute of Informatics “Run through” Control
  25. 25. yoshi NOBU masatani, National Institute of Informatics Notebook for Diagnostic & Validation 実行可能なチェックリストとして活用
  26. 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. 27. yoshi NOBU masatani, National Institute of Informatics Visualize Relationship and Dependency Notebook の関係を宣言的に記述 http://blockdiag.com/en/を用いて関連図を生成
  28. 28. yoshi NOBU masatani, National Institute of Informatics Visualize Relationship and Dependency Notebook の目次を blockdiag に挿入
  29. 29. yoshi NOBU masatani, National Institute of Informatics Exploring Best Way..
  30. 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. 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. 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. 33. Y Masatani, National Institute of Informatics 今のところ.. インフラの面倒を見る人の間で.. ドキュメンテーション「大変」であることを Notebook を媒介に.. コミュニケートできる..ということ! ドキュメンテーションやら 運用の見える化やら
  34. 34. yoshi NOBU masatani, National Institute of Informatics 今のところ..,,.. 1 1 1 1 1
  35. 35. Y Masatani, National Institute of Informatics 日常の作業記録・証跡
  36. 36. Y Masatani, National Institute of Informatics 運用作業者のための「追随可能な手順書」
  37. 37. Y Masatani, National Institute of Informatics 利用者のための「追随可能な指示書・作業確認書」 内容の確認 カスタマイズに必要な情報の提供 セルフ・アドミニストレーション
  38. 38. Y Masatani, National Institute of Informatics 再利用性を重視したHadoopクラスタの構築手順書
  39. 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
  40. 40. Y Masatani, National Institute of Informatics Elaborated Control Flows
  41. 41. Y Masatani, National Institute of Informatics 委託作業者による作業の「追試可能な作業報告書」 システムの構築作業を委託 → 作業報告書や システムの保守・運用手順が 紙,電子ファイルとして納入される… 報告書 → 実作業の証跡としての有効 手順書 → 再利用する機会
  42. 42. Y Masatani, National Institute of Informatics 記述・ドキュメントの..「形」は何にしたがう.. ソフトウェアのアーキテクチャ 収容構成 運用の体制 当事者たる人間の関係性 蓄積と発展 機能に従う 失敗に従う Social な “Literacy”
  43. 43. Y Masatani, National Institute of Informatics Individual 個々人による探索・試行錯誤 Collaborative 複数人でアイデアを共有・レビューして発展 Production 複数のグループによる展開,実用化 Publication & Communication Education Lifecycle of a Scientific Idea ≒ Engineering Practices
  44. 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. 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. 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. 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. 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. 49. Y Masatani, National Institute of Informatics Lineage Network Notebook degree of common memes
  50. 50. Y Masatani, National Institute of Informatics Lineage Network
  51. 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
  52. 52. Y Masatani, National Institute of Informatics Retrospective Communication
  53. 53. Y Masatani, National Institute of Informatics
  54. 54. Y Masatani, National Institute of Informatics
  55. 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. 56. Y Masatani, National Institute of Informatics Thank you https://github.com/NII-cloud-operation

×