Slide 1

Slide 1 text

Neco プロジェクトの歩き⽅ Maneki & Neco ミートアップ ymmt

Slide 2

Slide 2 text

Takeaways ▌Neco の動向がわかる ▌Neco の構成要素がわかる ▌Neco の成果物を活⽤できるかも

Slide 3

Slide 3 text

プロジェクト紹介

Slide 4

Slide 4 text

⽬的 ▌cybozu.com データセンターの刷新

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

cybozu.com の規模 ▌契約社数 36,000社 ▌契約ユーザー数 140万⼈以上 ▌リクエスト数 3億/⽇ ▌サーバー台数 2,000台程度

Slide 7

Slide 7 text

なぜ刷新︖ ▌ミドルウェアがほぼ⾃作でつらい ▌スケーラブルな設計でない ▌激しく密結合したモノリス ▌試験環境が共⽤で⼀つしかない

Slide 8

Slide 8 text

Neco の⽅針 • 充実したエコシステムの恩恵 • 宣⾔的 API による⾃律運⽤ Kubernetes 中⼼ • 世界を味⽅につけ、世界の⼀部になる • 英語不可避 本気の OSS • データセンターの試験は⼤変 • だからといって、⼿動試験が楽なわけじゃない︕ ⼿動試験、ダメ絶対

Slide 9

Slide 9 text

現時点の進捗 ▌3年計画の3年⽬ l1年⽬︓データセンター設計 l2年⽬︓Kubernetes クラスタ基盤 l3年⽬︓ストレージミドルウェア ▌データセンター×3を構築・運⽤中

Slide 10

Slide 10 text

こいつ・・・動くぞ︕

Slide 11

Slide 11 text

Neco システム図 GitHub Argo CD Neco CD Ubuntu 管理サーバー Sabakan CKE 3〜5台 管理サーバーを⾃動更新 CoreOS Coil CoreOS Coil CoreOS Coil CoreOS Coil ネット ブート Kubernetes ⾃動管理 Prometheus Teleport MetalLB TopoLVM Contour アプリを ⾃動管理 Made by ECK Ubuntu 管理サーバー Ubuntu 管理サーバー

Slide 12

Slide 12 text

デモ 5分

Slide 13

Slide 13 text

Neco CD git push TAG →

Slide 14

Slide 14 text

Neco = Kubernetes? Neco = データセンター︖

Slide 15

Slide 15 text

Neco = CloudNative Data Center

Slide 16

Slide 16 text

歩き⽅

Slide 17

Slide 17 text

何がある︖ ▌GitHub リポジトリ ▌コンテナイメージ (quay.io) ▌タスク管理(ZenHub) ▌ブログ ▌Slack

Slide 18

Slide 18 text

リポジトリ github.com/ cybozu-go/neco 中⼼的リポジトリ cybozu-go/neco-apps Argo CD⽤ cybozu/neco-containers 各種コンテナ ほかいろいろ

Slide 19

Slide 19 text

cybozu-go/neco ▌プロジェクトポータル ▌仮想データセンター構築ツール ▌最⼩限の Kubernetes クラスタ構築 l⾃社製インストーラー CKE l⾃社製CNIプラグイン Coil lDNS + Proxy

Slide 20

Slide 20 text

cybozu-go/neco ▌プロジェクトポータル ▌仮想データセンター構築ツール ▌最⼩限の Kubernetes クラスタ構築 l⾃社製インストーラー CKE l⾃社製CNIプラグイン Coil lDNS + Proxy テストで出ます︕

Slide 21

Slide 21 text

cybozu-go/neco-apps ▌Argo CD ⽤リポジトリ ▌多数の k8s アプリを CI/CD ▌neco + neco-apps = k8s distribution lkind 上で動作する簡易版プロファイルも⽤意 ▌マルチテナンシーも実装

Slide 22

Slide 22 text

cybozu-go/neco-apps アプリ名 説明 argocd-config App of apps パターンの実装 argocd, argocd-ingress Self-managed bmc-reverse-proxy 遠隔管理インタフェースのリバースプロキシ cert-manager ACME や⾃⼰署名での証明書⾃動発⾏・更新 elastic Elastic-Cloud-on-Kubernetes (ECK) external-dns AWS や GCP の DNS サーバー⾃動管理 ingress Contour による L7 ロードバランサー local-pv-provisioner Local persistent volume ⾃動作成 metallb MetalLB による L3/L4 ロードバランサー neco-admission 様々な admission webhook network-policy Calico による NetworkPolicy 実装 teleport Gravitational Teleport 認証リバースプロキシ topolvm LVM ⽤ dynamic provisioner

Slide 23

Slide 23 text

cybozu/neco-containers ▌Dockerfile 集 ▌原則として、全部⾃社でイメージをビルド ▌⾃社で即問題を解消するため

Slide 24

Slide 24 text

quay.io/cybozu ▌Docker Hub の ようなサービス ▌neco-containers イメージを push

Slide 25

Slide 25 text

ZenHub ▌Neco の活動予定 が全部わかる ▌github.com/neco の冒頭リンクの先

Slide 26

Slide 26 text

ブログ ▌https://blog.kintone.io lOSS 活動の⼀環として設置 l現在は Neco 関連の記事のみ ▌https://blog.cybozu.io lの、Neco カテゴリの記事

Slide 27

Slide 27 text

Slack ▌現在は TopoLVM ⽤のみ ▌README のリンクから

Slide 28

Slide 28 text

今後の予定 ▌MySQL クラスタオペレーター l⾃作説が濃厚 ▌Rook / Ceph プロダクション利⽤ ▌Coil v2 超かっこいい NAT 機能を追加 ▌その他、ZenHub で全部公開︕