[Next 2019聴講メモ] Cloud CodeとコンテナツールでK8sを使った開発を徹底効率化


※※2019 / 08 / 14 追記 YouTubeに投稿されたセッションのリンクを追加しました。※※

Cloud CodeとコンテナツールでK8sを使った開発を徹底効率化

  • 岩成祐樹
    • Google Cloud
    • カスタマーエンジニア
  • YouTube

container or k8s

コンテナを用いた選択肢

  • GAE(source base)
  • Cloud Run (container base& serverless)
  • GKE(container base)

k8sを使ってローカル開発を効率化

  • 開発者はコードにフォーカスしたいがやることがたくさんある
    • インフラ管理
      • OS
      • middle ware
      • monitoring
    • etc...

k8sを用いた開発の難しさ

  • painful deployment cycle
    • ソースの修正のたびに繰り返し作業が発生
  • context switch
    • ブラウザ、IDE等の移動で生産性↓
  • high learning cost
    • 全部は把握しきれない(k8s自体の開発がかなり早い)
    • チームとして把握していることが望ましいがなかなか難しい

Cloud Code

  • コードにフォーカスしてできる
    • IDEで一元管理
      • deploy
      • debug
      • Pod管理
      • etc

特徴

  • k8sの開発サイクル
    • バックエンドではskaffold
  • デバッグ
    • コンテナ内のデバッグとか
    • IDEからbreak pointを置ける
  • クラスター管理
    • podの状況
    • YAMLの修正の可視化
      • 反映させなくてもわかるようになっている
  • テンプレートと編集支援
    • deployment, debugが用意されたテンプレートから作成できる
  • エコシステムとの統合
    • 新規のプロダクトに対してのキャッチアップの時間を削りたい...!
  • GCPとの統合
    • GCPの情報をIDEの中でみることができる ​
  • 自動で認証情報を登録される(./kube/config)
  • deployの選択肢
    • ワンショットのデプロイ
    • 継続的デプロイ(ソースの変更を検知してデプロイ)
  • GKEだけじゃなくてEKSやAKSにも使える

skaffold

  • k8sアプリをのCDをサポートするCLI
  • クライアントのみでも動作し、プラグイン機構で拡張できる ​

まとめ

  • k8sの学習コストを抑えつつ、ローカル開発を最大限に効率化させるためのCloud Code

個人的ToDo

  • skaffold