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

マルチクラウド・コンテナに最適化したリスクを最小化するContinuous Delivery

マルチクラウド・コンテナに最適化したリスクを最小化するContinuous Delivery

2019/11/30に開催された「Developers Boost 2019~U30エンジニアの登竜門~」にて発表した資料です。

NAVITIME JAPAN

November 30, 2019
Tweet

More Decks by NAVITIME JAPAN

Other Decks in Technology

Transcript

  1. ナビタイムジャパンのサービス概要 公共交通 ドライブ ツーリング 外国人&海外 トラベル & フィットネス PC /

    SPブラウザ NAVITIME 乗換NAVITIME バスNAVITIME こみれぽ ドライブサポーター カーナビタイム トラックカーナビ ツーリングサポーター 自転車NAVITIME NAVITIME for Japan Travel NAVITIME Transit NAVITIME Travel ALKOO PLAT
  2. 全て自動化すること 全社的に利用されている Jenkins   を使う? • 学習コストが少ない • 既存の環境で事足りるので新しくコストが発生することが無い 1

    • マニフェストを取得して、kubectl applyするだけのジョブであれば 既に運用に載っているため検証が必要ない
  3. 全て自動化すること 必要なこと • クラウドプロバイダの違いが抽象化されていること(= マ ルチクラウドへのデプロイ可能) • B to B

    事業もあるため Continuous Deployment で 共通化するのは難しい • 豊富なデプロイメント戦略が取れること • Helmを使用しない(Kustomizeで差分吸収する)   
  4. 必要なものをすべてバージョン管理下に置く Spinnakerパイプラインの管理 • Jsonを直接作成/改修するのは辛い CloudFormationの比ではない • 運用フロー ◦ 検証環境はGUIでパイプラインを作成・編集 ◦

    CLI(spin)を使用してJSONを取得してソースリポジトリに保存 ◦ パイプラインをリポジトリから取得し、CLI(spin)から本番環境へパイプ ラインを登録
  5. での Podの管理にはReplicasetリソースを使うことになる ※ Deploymentリソースは使えません😢 Deployment Replicaset-1 Replicaset-2 Pod Container Pod

    Container kind: Deployment metadata: name: sample-deployment spec: template: metadata: labels: app: sample-app ココを書き換えることによって ルーティングを変えている Deploymentリソースだと RollingUpdateがかかってしまう