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

とあるDevOps案件のk8s

 とあるDevOps案件のk8s

SHIFT_EVOLVE

June 27, 2021
Tweet

More Decks by SHIFT_EVOLVE

Other Decks in Business

Transcript

  1. とあるDevOps案件のk8s
    日本仮想化技術株式会社
    水野源
    2021/06/25
    1

    View Slide

  2. DevOpsとは?
    • Dev(開発)と
    • Ops(運用)が
    • うまいこと協力してなんかいい感じに
    2

    View Slide

  3. しかし対立するDevの要望とOpsの事情
    3
    Dev Ops
    PHPのx.x入れて!
    このリポジトリ足して!
    それはサポート期間、もうほとんど残っ
    てないですよ……
    セキュリティサポートのないパッケージ
    は入れられません……
    緊急メンテとかマジか……
    諸々作り直しじゃん……
    緊急のセキュリティアップデートでサー
    バー全体を再起動します!
    OSがEOLするので、ミドルウェアやライ
    ブラリのバージョンが変わります!

    View Slide

  4. DevとOpsの責任分界点
    4
    ハードウェア
    OS
    ミドルウェア
    アプリケーション Dev
    Ops
    Dev
    Ops
    責任分界点
    理想 現実

    View Slide

  5. 責任分界点を明確にするコンテナ
    • コンテナはアプリケーション実行環境をカプセル化する
    • OSやミドルウェアのライフサイクルからの開放
    • 高速なビルド、テスト、デプロイサイクルとの相性がよい
    • Dev/Ops双方にとってメリットが大きい
    5

    View Slide

  6. なぜk8sなのか
    • 複数ノードでコンテナを協調動作させる際の課題
    • ノード間通信、死活監視、負荷分散、ログ集約、etc
    • コンテナをオーケストレーションする仕組みが必要
    • そこでk8s
    6

    View Slide

  7. とあるDevOps案件の概要とVTJの担当領域
    • とあるタブレット用アプリのバックエンド
    • 現在のユーザー数は3万人↑くらい
    • 同時接続数は1000人程度を想定
    • サーバーアプリケーションが動作するインフラの設計、構築、運用
    • CI/CD環境の設定、運用
    • 監視システムの設定、運用
    7

    View Slide

  8. 構成要素
    • インフラストラクチャ → AWS EKS
    • コーディング、バージョン管理、レビュー、マージ → GitHub
    • テスト、ビルド、デプロイ → CircleCI
    • コンフィギュレーション → CloudFormation
    • モニタリング → Datadog
    テストや監視も含め、自前で面倒を見ず、SaaSに寄せる方針
    8

    View Slide

  9. インフラ構成
    9
    Private subnet
    AWS Cloud
    VPC
    Availability Zone Availability Zone Availability Zone
    Public subnet
    Private subnet
    Public subnet
    Private subnet
    Public subnet
    Cluster Node Group
    Database CDN
    Route53

    View Slide

  10. ワークフロー
    10
    AWS Cloud
    1. ソースをコミット 2. テスト/ビルド 3. コンテナイメージをpush 4. デプロイ
    5. リソース/ログの監視
    6. アラート通知

    View Slide

  11. DevとOpsがいい感じになるために
    • 責任分界点がシステム的に明確になるメリット
    • DevとOpsを縦割りにしろ、という意味ではない
    • 無意味に相手の責任範囲に踏み込まなければならないことを減らしたい
    • アプリの管理がVMの管理になってしまうつらみ
    • K8sは便利だけれど、分散システム特有の問題もある
    • 複雑度は当然上がる
    • コンテナが不向きなシステムも存在するので、銀の弾丸ではない
    • 外部SaaSを積極的に利用するメリット
    • 本質的ではない部分の省力化大事
    11

    View Slide

  12. 12

    View Slide