SlideShare a Scribd company logo
Submit Search
Upload
自作クラウド基盤 n0stack と ソフトウェア開発の気持ち
Report
Share
h-otter
Follow
•
0 likes
•
238 views
1
of
25
自作クラウド基盤 n0stack と ソフトウェア開発の気持ち
•
0 likes
•
238 views
Report
Share
Download Now
Download to read offline
Technology
情報科学若手の会 2018 飛び入りLT枠 自作クラウド基盤 n0stack を開発した時に直面した問題点と、それに対する解決案のまとめです
Read more
h-otter
Follow
Recommended
自作クラウド基盤 n0stack in ICTSC 2018 by
自作クラウド基盤 n0stack in ICTSC 2018
h-otter
2.1K views
•
20 slides
RubyistのためのCloudStack APIコンソール by
RubyistのためのCloudStack APIコンソール
Takuma Nakajima
1.7K views
•
17 slides
CloudStack4.4でGlusterFS環境を構築してみた by
CloudStack4.4でGlusterFS環境を構築してみた
Takuma Nakajima
1.9K views
•
26 slides
サーバ構築自動化 On aws sqaleの場合 by
サーバ構築自動化 On aws sqaleの場合
Ryo Kuroda
6.1K views
•
34 slides
Juju/MAASで作る Kubernetes + GPU by
Juju/MAASで作る Kubernetes + GPU
VirtualTech Japan Inc.
1.5K views
•
16 slides
OpenStack Summit Sydney Report (NEC鳥居) - OpenStack最新情報セミナー by
OpenStack Summit Sydney Report (NEC鳥居) - OpenStack最新情報セミナー
VirtualTech Japan Inc.
2.3K views
•
33 slides
More Related Content
What's hot
パブリッククラウドConoHaを使ってOpenStack APIを理解する by
パブリッククラウドConoHaを使ってOpenStack APIを理解する
Hironobu Saitoh
2.1K views
•
24 slides
最近のJuju/MAAS について by
最近のJuju/MAAS について
VirtualTech Japan Inc.
2.8K views
•
26 slides
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化 by
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Shigeru Tsubota
788 views
•
29 slides
ConoHaオブジェクトストレージ 利用ケース by
ConoHaオブジェクトストレージ 利用ケース
Junichi Noda
3.9K views
•
20 slides
Milano ops-meetup報告会 by
Milano ops-meetup報告会
Sampath Priyankara
537 views
•
7 slides
OpenStack Summit in Hong Kong 参加報告 by
OpenStack Summit in Hong Kong 参加報告
Akira Yoshiyama
1.5K views
•
22 slides
What's hot
(20)
パブリッククラウドConoHaを使ってOpenStack APIを理解する by Hironobu Saitoh
パブリッククラウドConoHaを使ってOpenStack APIを理解する
Hironobu Saitoh
•
2.1K views
最近のJuju/MAAS について by VirtualTech Japan Inc.
最近のJuju/MAAS について
VirtualTech Japan Inc.
•
2.8K views
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化 by Shigeru Tsubota
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Shigeru Tsubota
•
788 views
ConoHaオブジェクトストレージ 利用ケース by Junichi Noda
ConoHaオブジェクトストレージ 利用ケース
Junichi Noda
•
3.9K views
Milano ops-meetup報告会 by Sampath Priyankara
Milano ops-meetup報告会
Sampath Priyankara
•
537 views
OpenStack Summit in Hong Kong 参加報告 by Akira Yoshiyama
OpenStack Summit in Hong Kong 参加報告
Akira Yoshiyama
•
1.5K views
Chainer と Microsoft Azure 広がる応用 (Chainer Meetup #5) by Hirono Jumpei
Chainer と Microsoft Azure 広がる応用 (Chainer Meetup #5)
Hirono Jumpei
•
2.4K views
ELK ではじめる自宅ネットワーク監視 by npsg
ELK ではじめる自宅ネットワーク監視
npsg
•
6.2K views
ApacheCloudstack4.1最新情報ver2 by Midori Oge
ApacheCloudstack4.1最新情報ver2
Midori Oge
•
632 views
CloudStack advent calendar jp 2013_12_16 by Hiroyuki Sato
CloudStack advent calendar jp 2013_12_16
Hiroyuki Sato
•
1.1K views
20160217 hbstudy73 linux on Azure by 雄哉 吉田
20160217 hbstudy73 linux on Azure
雄哉 吉田
•
191 views
NFV & OPNFV - OpenStack最新情報セミナー 2017年7月 by VirtualTech Japan Inc.
NFV & OPNFV - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
•
2.7K views
OpenStack Kuryrについて by skipping classes
OpenStack Kuryrについて
skipping classes
•
1.5K views
Next-L Enju 開発ワークショップ #10 by Kosuke Tanabe
Next-L Enju 開発ワークショップ #10
Kosuke Tanabe
•
852 views
Kubernetes 初心者の僕からの JKD 参加報告 by Kentaro NOMURA
Kubernetes 初心者の僕からの JKD 参加報告
Kentaro NOMURA
•
377 views
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料 by VirtualTech Japan Inc.
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料
VirtualTech Japan Inc.
•
2.5K views
Apache Spark+Zeppelinでアドホックなネットワーク解析 by npsg
Apache Spark+Zeppelinでアドホックなネットワーク解析
npsg
•
2.5K views
DatabaseDevelopment by NakamuraShinsaku
DatabaseDevelopment
NakamuraShinsaku
•
642 views
CloudStackユーザ会 in 大阪: 池原治 by joeswebhosting
CloudStackユーザ会 in 大阪: 池原治
joeswebhosting
•
670 views
Contiv on vagrant_20160224 by Takao Setaka
Contiv on vagrant_20160224
Takao Setaka
•
1.2K views
Similar to 自作クラウド基盤 n0stack と ソフトウェア開発の気持ち
Excite beer bash06 by
Excite beer bash06
Arata Honda
222 views
•
21 slides
軽量Kubernetes環境 K3Sのご紹介 by
軽量Kubernetes環境 K3Sのご紹介
Tetsurou Yano
829 views
•
28 slides
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde... by
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
11.2K views
•
143 slides
Quantum teleportation by
Quantum teleportation
YuuOkano
1.2K views
•
20 slides
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT by
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
Yoshinari Kadokawa
1.6K views
•
12 slides
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順 by
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順
Yoshitaka Seo
555 views
•
84 slides
Similar to 自作クラウド基盤 n0stack と ソフトウェア開発の気持ち
(20)
Excite beer bash06 by Arata Honda
Excite beer bash06
Arata Honda
•
222 views
軽量Kubernetes環境 K3Sのご紹介 by Tetsurou Yano
軽量Kubernetes環境 K3Sのご紹介
Tetsurou Yano
•
829 views
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde... by whywaita
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
•
11.2K views
Quantum teleportation by YuuOkano
Quantum teleportation
YuuOkano
•
1.2K views
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT by Yoshinari Kadokawa
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
Yoshinari Kadokawa
•
1.6K views
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順 by Yoshitaka Seo
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順
Yoshitaka Seo
•
555 views
Rdkitの紹介 by Takayuki Serizawa
Rdkitの紹介
Takayuki Serizawa
•
4.3K views
0からコンピュータを作ってみた by YuuOkano
0からコンピュータを作ってみた
YuuOkano
•
700 views
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) by VirtualTech Japan Inc.
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
VirtualTech Japan Inc.
•
2.1K views
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料) by NTT DATA Technology & Innovation
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
•
1.4K views
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021 by Preferred Networks
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
•
9.9K views
OCaml でデータ分析 by Akinori Abe
OCaml でデータ分析
Akinori Abe
•
3.1K views
自作クラウド基盤 n0stack と開発自動化の気持ち by h-otter
自作クラウド基盤 n0stack と開発自動化の気持ち
h-otter
•
287 views
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021) by Kamon Nobuchika
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
Kamon Nobuchika
•
839 views
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」 by Nobuyuki Tamaoki
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
•
1.6K views
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー by Toru Makabe
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
•
37K views
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月 by VirtualTech Japan Inc.
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
•
7K views
JOSUG 9th Study by irix_jp
JOSUG 9th Study
irix_jp
•
955 views
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド by EMC Japan
2015.6.5 EMC主催OpenStackセミナー - 日本仮想化技術様講演スライド
EMC Japan
•
1.6K views
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」 by VirtualTech Japan Inc.
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
•
3.2K views
More from h-otter
Kubernetesのワーカーノードを自動修復するために必要だったこと by
Kubernetesのワーカーノードを自動修復するために必要だったこと
h-otter
719 views
•
52 slides
自宅サーバラックの勧め 〜ファシリティ編〜 by
自宅サーバラックの勧め 〜ファシリティ編〜
h-otter
3.6K views
•
45 slides
Openflowの気持ち by
Openflowの気持ち
h-otter
452 views
•
39 slides
NiFiの紹介 by
NiFiの紹介
h-otter
201 views
•
24 slides
ICTSC8 Backboneの紹介 by
ICTSC8 Backboneの紹介
h-otter
4.6K views
•
32 slides
給料の気持ち by
給料の気持ち
h-otter
630 views
•
62 slides
More from h-otter
(11)
Kubernetesのワーカーノードを自動修復するために必要だったこと by h-otter
Kubernetesのワーカーノードを自動修復するために必要だったこと
h-otter
•
719 views
自宅サーバラックの勧め 〜ファシリティ編〜 by h-otter
自宅サーバラックの勧め 〜ファシリティ編〜
h-otter
•
3.6K views
Openflowの気持ち by h-otter
Openflowの気持ち
h-otter
•
452 views
NiFiの紹介 by h-otter
NiFiの紹介
h-otter
•
201 views
ICTSC8 Backboneの紹介 by h-otter
ICTSC8 Backboneの紹介
h-otter
•
4.6K views
給料の気持ち by h-otter
給料の気持ち
h-otter
•
630 views
自宅サーバラックの勧め ~In osc nagoya~ by h-otter
自宅サーバラックの勧め ~In osc nagoya~
h-otter
•
3.5K views
自宅サーバラックの勧め 簡易版 by h-otter
自宅サーバラックの勧め 簡易版
h-otter
•
407 views
透過 L2 BRIDGE NAT by h-otter
透過 L2 BRIDGE NAT
h-otter
•
461 views
自宅サーバラックの勧め BGP4編 by h-otter
自宅サーバラックの勧め BGP4編
h-otter
•
834 views
MMA Tech:Talk 2017-1 仮想化技術的なあれ by h-otter
MMA Tech:Talk 2017-1 仮想化技術的なあれ
h-otter
•
198 views
Recently uploaded
IPsec VPNとSSL-VPNの違い by
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
606 views
•
8 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
146 views
•
64 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない
Takuya Matsunaga
28 views
•
17 slides
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
10 views
•
22 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
109 views
•
26 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
28 views
•
36 slides
Recently uploaded
(7)
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
606 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
146 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
28 views
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by Hitachi, Ltd. OSS Solution Center.
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
•
10 views
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
109 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
•
28 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
•
66 views
自作クラウド基盤 n0stack と ソフトウェア開発の気持ち
1.
自作クラウド基盤 n0stack と ソフトウェア開発の気持ち wakate2018
LT h-otter
2.
自己紹介 ● h-otter です ●
電気通信大学 B4 ● トラコンという大会を運営しています ● 自宅のラックは多分 PUE 0.5 くらい ○ コツは親をだまくらかすこと
3.
n0stack とは ● 趣味で有志が集まって開発しているクラウド基盤 ●
ICTSCで OpenStack と CloudStack に疲弊し、 Kubernetesにまあまあ疲れたメンバーが開始 ● かなり迷走した
4.
自分の満足の行くまで、好き放題やってる
5.
メンバーも知らない最新版!!! (みんなごめん)
6.
とりあえず過去を振り返る
7.
時代1: Controller で集中管理 ●
OpenStack はコンポーネントの粗結 合は嘘なので、各コンポーネントを 粗結合にして Controller (API Gateway)で集中管理してみた ● 結論: 粗結合はムリ!! ○ VM はストレージをマウント
8.
時代2: コントローラをMQで分散 ● MQを使うことで各ノードにコントロール プレーンを持たせて、 クラスタ管理を分散させることで 完全にコントローラレスを目指す ○
Scheduler -> Agent -> Conductor -> Scheduler みたいな ● 結論: MQの信頼性は低かった ● グラフDBでリソース管理できない かなとかもやってみていた
9.
現在: リソース志向の gRPC
API ● オブジェクトを役割に応じてレイヤー分割 ○ レイヤー内では実装に関する依存を許す (詳細後述) ● シンプルにして、管理者がソースコードを読めるように
10.
しんどかったポイントの整理と n0stackにおける解決策を話していきます
11.
改善策、欲しい機能、意見などください!! (あるあるの連続だと思うので...)
12.
依存を考えるのがしんどい ● 後回しにできないほどの負債になりうる ● 特に仕様が固まりきらない初期開発ではひとつの変更が全体に伝播し、繰り 返されるので心が折れる ○
(みんなの心を折った) ● 依存を集めるとそこだけライフサイクルが長くなる ○ 逆にライフサイクルが長いものに依存を集める ● 開発したいオブジェクトの通りに開発するのがやっぱり確実 (DDD的な)
13.
依存を考えるのがしんどい (オブジェクト内部) pkg/datastore (データベースに保存など ) pkg/driver (QEMUなど) Agent (データプレーン) API (コントロールプレーン
) lower API 安定依存の原則 API < lower API <<< [大量展開の壁] <<< Agent <<< [ライブラリの壁] <<< pkg/driver <<< [永続化の壁] <<< pkg/datastore
14.
依存を考えるのがしんどい (オブジェクト単位) ● オブジェクトのAPIは安定度が低いと定義しているので何かに依存が集ま らないようにする
15.
分散コントローラがしんどい ● 分散されたデータプレーンは動くが、 分散されたコントローラは信用できないと思っている (今は) ○
正しくはコントローラは無限に分散しない ○ なにも信用できない ■ 経路(MQ)、人、復帰するのかしないのか ● BGPが割と一般的に普及していてちゃんと動いているが、 あれは結局人がさんざん折衝しているものなので…NOGとか… ● Agent も薄いコントローラなので、妥協できるポイントを見つける
16.
分散コントローラがしんどい コントローラの分散はやめて集中管理 Agentは可能な限り薄く
17.
モデリングがしんどい ● インフラの正しいモデリングとは… ○ 利用者の
実装 / 思想 / ビジネスロジック によって変わる ■ ネットワーク: VLANかVXLANかで必要なパラメータは変わる ■ ストレージ: そもそも block device なのか filesystem なのか ● 抽象化したモデルが依存していなくても、 実装が依存してしまうことがある ○ ストレージとVM: VMがストレージに接続するときのプロトコルは?
18.
モデリングがしんどい 抽象的なオブジェクトのみprotobuf定義 実装に関する依存をレイヤーの中に限り許容 ※ k8s を参考に実装に関するパラメータは
Annotations で頑張ってもらう
19.
モデリングがしんどい ● 管理に必要なmetadataとNetworkを使う上で最低限必要なものを記述 ● フィールドはすべて
required
20.
多様性がしんどい 開発者: メンテナンスコスト向上 管理者: 変わったことをしようとすると、 非常に抽象化されたコードを読み、書 き換える必要がある 利用者:
使い方がわかりにくい OpenStack Glance 非常に多数のformatも対応
21.
多様性がしんどい 実装からは汎用性を削除 管理者各々が必要なgRPC APIを 実装することを期待 (YAGNI,
KISS)
22.
多様性がしんどい 現在の実装: 7725 行 少ないかはわからないが私が夏休み中に実装できたくらいの量
23.
テストがしんどい もともと API が多いのに、
Agent は network など設定するのでsudoが必要 ● test sizeを導入 (http://akito0107.hatenablog.com/entry/2018/08/27/190333) ○ small: 早い、外部への依存がない ○ medium: sudo, localhostの他プロセスへの通信可 ○ golangはいい感じにできるので “make test-medium” みたいな ● Mock の Agent を作ることで API のテスト ○ Agent の実装は薄い ○ API の Mock を作るコストはでかい
24.
非同期がしんどい ● よめない ● 本当にイベントを回収できているかわからない ○
MQ の Exactly once は難しい ● 昨日の発表にもあったかんじ ● しかし、VMのステート管理など必要なので今後の課題
25.
まとめ ● 分散・非同期は私 (一般人)
には難しいのであきらめた ● 依存は実際のオブジェクト同士の依存をトレースする ○ なくすことはできないし、下手なことをすると後々辛い ● 自由気ままに開発するの楽しい ○ 夏休みが全部溶けた