Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Neco プロジェクトの歩き方

Cybozu
PRO
February 27, 2020

Neco プロジェクトの歩き方

Cybozu
PRO

February 27, 2020
Tweet

More Decks by Cybozu

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. プロジェクト紹介

    View Slide

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

    View Slide

  5. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. こいつ・・・動くぞ︕

    View Slide

  11. 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
    管理サーバー

    View Slide

  12. デモ
    5分

    View Slide

  13. Neco CD
    git push TAG →

    View Slide

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

    View Slide

  15. Neco
    =
    CloudNative Data Center

    View Slide

  16. 歩き⽅

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide