ceforeとdevopsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d •...

26
Atsushi Ooka [email protected] © 2019 National Institute of Information and Communications Technology Cefore DevOps ツール連携 大岡 睦 (NICT

Upload: others

Post on 22-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

CeforeとDevOpsツール連携

大岡 睦 (NICT)

Page 2: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

目次

◼Cefore の概要と運用課題

◼DevOps ツールの活用

◼GitLab の紹介・活用方法

◼運用方法の議論

2019/12/19

2

第17回 ICN 研究会

Page 3: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

Cefore の概要

https://cefore.net/

PC センサー

Ubuntu/Mac/Raspbian/ …OS

cefnetd/csmgrd/ …Cefore

ICN ルータ

cefnetd.conf/plugin/…Config

キャッシュルータ

機能拡張ルータ

Hardware

インストール

軽量かつ汎用的な CCN ソフトウェア実装

多様な Hardware・OS で CCN 通信を実現

コンフィグ・プラグインで多様な機能を容易に設定可能

2019/12/19

3

第17回 ICN 研究会

Page 4: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

Cefore の運用課題

https://cefore.net/

PC センサー

Ubuntu/Mac/Raspbian/ …OS

cefnetd/csmgrd/ …Cefore

ICN ルータ

cefnetd.conf/plugin/…Config

キャッシュルータ

機能拡張ルータ

Hardware

インストール

実験までのハードルが高い

環境ごとにセットアップ方法が

一部異なる

設定ミスや未確認の不具合に対応できない

本体更新が頻繁なためマニュアルが追い付かない

「記事が全くなくて非常につらい」[1]ハンズオン等でセットアップに

時間がかかる

メールやハンズオン等での個別対応になってしまう・ノウハウを共有できない

本体の更新を通知する仕組みが無い

仕様変更や不具合修正状況が分からない

[1] Qiita “NICT開発のCeforeの話,” https://qiita.com/shimejifarm/items/3da2e6040a5fc047cf5e

2019/12/19

4

第17回 ICN 研究会

Page 5: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

DevOps ツールの活用

◼DevOps とは?

⚫開発(Developer)と運用(Operator)が高度に

連携することで迅速な開発・展開を可能にする手法

Dev Ops

②コードを書く

③ビルドする

⑤リリースする(web に公開する)

⑥展開する(実験環境を作る)

⑦監視する(評価する)

⑧フィードバックする(バグや機能要望を報告する)

①計画を立てる

2019/12/19

5

④テストする

第17回 ICN 研究会

Page 6: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

現在の Cefore の状況

◼開発側(NICT)も運用側(ユーザ)も手作業が多く、

労力が多い・ミスが頻発する

◼お互いの知見が共有しづらい→反映・通知が遅れる

Dev

(NICT)

Ops

(User)

ほぼNICT

だけで開発

手作業でビルド

手作業でテスト 共有しづらい

手作業で評価

手作業で展開

最新版のみ公開共有されない

2019/12/19

6

第17回 ICN 研究会

Page 7: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

◼大半の工程をツールで自動化するため労力が少ない・

ミスが起きにくい

◼問題や対応状況を共有→素早く対応できる

Gitで共同開発

自動化

自動化 ツールで共有

自動化

自動化

ツールで管理ツールで共有

DevOps ツールを活用した場合

Dev

(NICT)

Ops

(User)

2019/12/19

7

第17回 ICN 研究会

Page 8: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

DevOps ツール活用の利点

◼開発への活用

⚫ Cefore や関連機能・アプリケーションの開発を促進

⚫不具合やよくあるミス、対応状況等を共有

◼研究への活用

⚫学生を始めとするユーザの負担を軽減して CCN の研

究・実験活動を促進

⚫ IoT やクラウドのサービス・アプリケーションの

DevOps 化を考慮したネットワーク実験への応用

2019/12/19

8

cefore.net に GitLab を導入

第17回 ICN 研究会

Page 9: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

GitLab とは?

https://gitlab.cefore.net/

DevOps ツールと連携可能な Git 管理サービス

2019/12/19

9

第17回 ICN 研究会

Page 10: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

GitLab の基本的な用途

(1)Cefore のソースコード提供

⚫ Git を用いたソースコード提供・バージョン管理

(2)質問や不具合報告の共有

⚫ GitLab の Issue や Merge Request の利用

(3)DevOps ツールとの連携

⚫ Docker を用いたビルド・テスト・実験の自動化

(4)提案方式実装や実験環境の共有

⚫プロジェクトとして提案方式・実験環境を共有

2019/12/19

10

第17回 ICN 研究会

Page 11: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

(1)Cefore のソースコードの共有

Git を用いてダウンロード可能

2019/12/19

11

cefore:~ $ git clone https://gitlab.cefore.net/root/cefore.gitCloning into ‘cefore’...⋮cefore:~ $ lscefore

① https://git lab.cefore.net/root/cefore にアクセス

② クローン用のアドレスをコピー

③ git clone を実行(更新時でも同じアドレスで最新版を取得可能)

第17回 ICN 研究会

Page 12: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

リリース機能

◼過去のバージョンや機能更新履歴を閲覧可能

⚫ Project overview > Releases

⚫バージョンごとのソースコード差分も diff で閲覧可能

2019/12/19

12

タグ名(git clone –b v0.8.1

でクローン可能)

zip や tar.gz 等でダウンロード可能

更新履歴(作成中)

第17回 ICN 研究会

Page 13: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

(2)質問や不具合報告の共有

◼ Issues 機能を用いて質問や不具合報告を共有

⚫問題報告とバージョン管理を対応付けて管理できる

⚫後で同じ現象に遭った人が参照できる

2019/12/19

13

第17回 ICN 研究会

Page 14: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

Issues 機能利用のための登録

◼ Issues 機能を利用するには2つの登録が必須

1. GitLab のアカウント登録

※gitlab.cefore.net は gitlab.com とは独立しているので

gitlab.com のアカウントは使い回せない

2. プロジェクトへのメンバー登録

2019/12/19

14

①アカウント登録(自分で登録)

②プロジェクトメンバー登録(プロジェクト管理者が登録)

登録フォーム

https://gitlab.cefore.netOwner/Maintainer

(プロジェクト管理者 )

プロジェクト

メンバー招待

Developer/Repor terアカウント

Cefore メーリングリストに登録済みの人は

Cefore のプロジェクトにDeveloper として登録予定

第17回 ICN 研究会

Page 15: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

補足:GitLab のメンバー権限◼ Owner/Maintainer

⚫ メンバー追加

⚫ master ブランチへの push

⚫ DevOps (CI/CD) ツールの設定

◼ Developer⚫ 新しくブランチを作成・push (master は編集不可)

⚫ wiki を編集

◼ Reporter⚫ Issue 作成

⚫ 過去のリリースを含むダウンロード(clone)

⚫ Merge request 発行

◼ Guest⚫ 最新版のダウンロード(clone)

⚫ wiki の閲覧

◼ GitLab 登録済・非プロジェクトメンバー⚫ Public・Internal Project なら Guest と同様

⚫ Private Project は閲覧不可

◼ GitLab 未登録⚫ Public Project なら Guest と同様

⚫ Private・Internal Project は閲覧不可

2019/12/19

15

権限

第17回 ICN 研究会

Page 16: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

(3)DevOps ツールとの連携

◼ビルド・テスト・デプロイを自動化

⚫ git push を検知して自動的にスクリプトを実行

⚫プロジェクトの CI/CD から実行結果を確認可能

2019/12/19

16

CI: Continuous Integration (継続的インテグレーション), CD: Continuous Delivery (継続的デリバリー)

ユーザ

プロジェクト

bui ld test deploy

実験環境

CI/CD ツール(GitRunner, Kubernetes, etc.)

新機能開発 git push

更新

更新

repor t

パイプラインを自動的に実行

第17回 ICN 研究会

Page 17: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology 2019/12/19

CI/CD パイプラインの自動実行履歴の一覧

成功・失敗状況が一目で分かる

17

Page 18: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology 2019/12/19

パイプライン中の各ジョブの

成功/失敗を確認

成功 失敗前のステージが

失敗したのでスキップ

18

Page 19: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology 2019/12/19

ジョブごとにログを確認可能

19

Page 20: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

(4)提案方式や実験環境の共有

◼提案方式の実装をプロジェクト化して共有

◼Cefore 等の修正・拡張を Merge request で提出

2019/12/19

20

提案方式A

プロジェクト研究者A

他の Cefore ユーザと共有・I ssue 等で Feedback

Ceforeプロジェクト

(master)

研究者B

$ git clone $ git branch bugfix

修正版のブランチ

(bugf ix)

プロジェクト管理者

+ Merge request

$ git pushmaster にマージ

別々に開発したコードをmaster に統合するように要求

CI/CD ツールを活用して自動テスト・実験・評価

第17回 ICN 研究会

Page 21: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

Docker を用いた実験環境の共有

◼Docker:イメージ共有が容易なコンテナ型VM

◼例:3ノード間でのコンテンツ要求の実装

2019/12/19

21

Consumer

(cefnetd)

Router

(cefnetd)

Producer

(cefnetd+csmgrd)

従来方式

Download

Build

Config

実験

評価

準備

• 工程が多い・ミスが多発• 他の環境には使い回せない

GitLab + Docker Project

$ git clone <project>

$ docker-compose build

$ docker-compose up -d

• PC一台・少ない工程で実験可能• 他の環境でも利用可能

ダウンロード

自動ビルド・設定

自動実験・評価

試験的利用やハンズオンのセットアップ時間短縮

第17回 ICN 研究会

Page 22: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

Docker を用いた実験環境例の紹介

◼https://gitlab.cefore.net/a-ooka/demo_topo_3_nodes

⚫ Docker による 3 ノード間通信の実装例

⚫ build.bash: 3種類の Docker Image を作成

• cefore/min: cefnetd のみ

• cefore/cache: cefnetd のみ(ローカルキャッシュ使用)

• cefore/csmgr: cefnetd + csmgrd (memory)

⚫ test.bash: 3ノード間でのコンテンツ要求を実行

2019/12/19

22

第17回 ICN 研究会

Page 23: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology 2019/12/19

23

第17回 ICN 研究会

Page 24: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

まとめ

◼Ceforeを利用した研究・実験の円滑化のために

DevOps ツールである GitLab を cefore.net に導入

◼GitLab の基本的な利用方法・方針を紹介

2019/12/19

24

Dev Ops

Git やリリースを使ったソースコードの開発・共有

DevOps ツールと連携してビルド・テスト・実験

を自動化可能

提案方式や実験環境のプロジェクト化・共有

Issue 等による質問や不具合報告状況の共有

第17回 ICN 研究会

Page 25: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

今後の運用方針・拡張等の議論

◼ チュートリアル・ハンズオン等での活用

◼ 関連機能の GitLab へのアップロード⚫ cefpyco、Cefore-Emu、CeforeSim、Other plugins、etc.

◼ wiki の活用⚫ インストール・チュートリアルマニュアル

⚫ FAQ・トラブルシューティング集

◼ GitLab の運用方針⚫ GitLab アカウント登録は自由

• 主要プロジェクトは public にするので、最新版のダウンロード(clone)や wiki 閲覧だけならアカウント登録不要

⚫ プロジェクトの作成も自由• 容量の制約のため GB 単位を消費するプロジェクトは要相談

⚫ Cefore 等の主要プロジェクトの Developer 権限は当面はメーリングリストのメンバーに付与する予定• それ以外のメンバーは要相談

◼その他「〇〇に使えるか?」「〇〇の機能が欲しい」等あればご意見ください

2019/12/19

25

第17回 ICN 研究会

Page 26: CeforeとDevOpsicn/wp-content/uploads/2019/12/...$ docker-compose build $ docker-compose up -d • PC一台・少ない工程で実験可能 • 他の環境でも利用可能 ダウンロード

Atsushi Ooka [email protected]© 2019 National Institute of Information and Communications Technology

Thank you

GitLabhttps://gitlab.cefore.net

Ceforehttps://cefore.net

謝辞:本研究はJSPS科研費 JP19K20265 の助成を受けたものである。