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

とあるDevOps案件のk8s

 とあるDevOps案件のk8s

532348a1aba5a909e283624c3d2a9a95?s=128

SHIFT_EVOLVE

June 27, 2021
Tweet

Transcript

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

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

  3. しかし対立するDevの要望とOpsの事情 3 Dev Ops PHPのx.x入れて! このリポジトリ足して! それはサポート期間、もうほとんど残っ てないですよ…… セキュリティサポートのないパッケージ は入れられません……

    緊急メンテとかマジか…… 諸々作り直しじゃん…… 緊急のセキュリティアップデートでサー バー全体を再起動します! OSがEOLするので、ミドルウェアやライ ブラリのバージョンが変わります!
  4. DevとOpsの責任分界点 4 ハードウェア OS ミドルウェア アプリケーション Dev Ops Dev Ops

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

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

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

    CI/CD環境の設定、運用 • 監視システムの設定、運用 7
  8. 構成要素 • インフラストラクチャ → AWS EKS • コーディング、バージョン管理、レビュー、マージ → GitHub

    • テスト、ビルド、デプロイ → CircleCI • コンフィギュレーション → CloudFormation • モニタリング → Datadog テストや監視も含め、自前で面倒を見ず、SaaSに寄せる方針 8
  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
  10. ワークフロー 10 AWS Cloud 1. ソースをコミット 2. テスト/ビルド 3. コンテナイメージをpush

    4. デプロイ 5. リソース/ログの監視 6. アラート通知
  11. DevとOpsがいい感じになるために • 責任分界点がシステム的に明確になるメリット • DevとOpsを縦割りにしろ、という意味ではない • 無意味に相手の責任範囲に踏み込まなければならないことを減らしたい • アプリの管理がVMの管理になってしまうつらみ •

    K8sは便利だけれど、分散システム特有の問題もある • 複雑度は当然上がる • コンテナが不向きなシステムも存在するので、銀の弾丸ではない • 外部SaaSを積極的に利用するメリット • 本質的ではない部分の省力化大事 11
  12. 12