Successfully reported this slideshow.
Your SlideShare is downloading. ×

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 66 Ad

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk

Download to read offline

talked by OpenSourceConference 2019 Tokyo/Fall https://www.ospn.jp/osc2019-fall/modules/eguide/event.php?eid=62

talked by OpenSourceConference 2019 Tokyo/Fall https://www.ospn.jp/osc2019-fall/modules/eguide/event.php?eid=62

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk (20)

Advertisement

More from whywaita (20)

Recently uploaded (20)

Advertisement

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk

  1. 1. Kubernetesの良さを活かして 開発‧運⽤! [公開版] 株式会社サイバーエージェント
 技術本部 Private Cloud Group
 Nakanishi Kento @whywaita
 
 技術本部 サービスリライアビリティグループ
 KIRII Yuki
 オープンソースカンファレンス 2019 Tokyo/Fall @ 明星⼤学 1
  2. 2. Nakanishi Kento / whywaita • 株式会社サイバーエージェント 技術本部
 プライベートクラウドグループ 開発チーム • 2019年新卒⼊社 (試⽤期間終わりました!) • 仕事: OpenStack / Kubernetes / 採⽤, 広報 • OSC発表歴: Tokyo/Fall (LT) , Nagoya (東海道LT) • d g 投稿者 みくったーとかその辺の界隈に居たりもします • 執筆書籍: PR-based Preview Env in Kubernetes てっき〜メディア(304)ブースで売ってるらしい!!いますぐ購⼊!!! 2
  3. 3. 3
  4. 4. .はじめに .Cloud Native ⼊⾨ .コンテナオーケストレーションにとどまらな いKubernetesの魅⼒ 4
  5. 5. はじめに
 会社紹介 5
  6. 6. 6
  7. 7. 7 Vision
  8. 8. 8
  9. 9. 9
  10. 10. 10
  11. 11. 11
  12. 12. 12 様々な勉強会にて登壇 (沢⼭) 単著の執筆 (新卒4年⽬) ⾃作システムがメディア掲載 (新卒2年⽬) ベストエンジニア賞受賞
  13. 13. 13
  14. 14. 14
  15. 15. 発表者について 15
  16. 16. 三本柱 •メディア: 動画、ブログ、⾳楽など
 
 •広告: Webやスマホ向けの広告配信 •ゲーム: 主にスマホ向けゲーム 16
  17. 17. 三本柱 •メディア: 動画、ブログ、⾳楽など
 
 •広告: Webやスマホ向けの広告配信 •ゲーム: 主にスマホ向けゲーム 17
  18. 18. それぞれのメイン領域 •どちらもメディア事業部所属 •プライベートクラウド •VMを提供するところまで •特にOpenStackを担当 •サービスリライアビリティ •サービスインフラが動くまで •最近はKubernetesを担当 18
  19. 19. はじめに
 サークル紹介 19
  20. 20. てっき〜メディア • 元翔泳社の編集者で技術書刊⾏に携わって
 いた⽯川⽒が運営するプライベートメディア • 同⼈サークル 兼 株式会社でもある • IT業界向け技術情報をまとめてお届け • 対象分野: コンピューティングインフラ、
 クラウド、CI/CD、OS、ミドルウェア、etc •技術書典8 も参加予定!! 20
  21. 21. CloudNative ⼊⾨ 21
  22. 22. 会場アンケート 🙋 •聞いたこともない •聞いたことぐらいはある •興味はあるがさわっていない •さわったことがある •趣味で使っている •仕事で使っている 22 Cloud Native / Kubernetes を 全ての選択肢で
 ⽐率が同じぐらいでした
  23. 23. 技術書典7では •3冊頒布しました •PR-based Preview Env in Kubernetes • 中⻄建登 / 松⽥正也 著 •はじめるCluster API • 桐井 祐樹 著 •⽇本語版GitLab CIリファレンス • 明⽇から始めるGitLabCIはじめの⼀歩
 @ F : 〜 講師: ⽮野 哲朗 23
  24. 24. PR-based Preview Env in Kubernetes •「Pull Requestをベースに、開発 環境を⾃動で⽣成してみよう!」
 という⼀冊 •Kubernetes / GCP 上に展開された アプリケーションを良い感じに展開 する⽅法まとめ • サンプルコード付きなので再現 しやすい! •てっき〜メディアブースにて
 絶賛販売中!!!!!!急げ!!!!!!!!!!!! 24
  25. 25. Cloud Nativeとは? 25 定義はさまざま 
 
 
 
 [ ]: https://pivotal.io/jp/cloud-native
 [ ]: https://www.redhat.com/ja/topics/cloud-native-apps
  26. 26. Cloud Nativeとは? •Cloud Native Computing Foundation (通称CNCF) によると 26
  27. 27. Cloud Nativeとは? •Cloud Native Computing Foundation (通称CNCF) によると •クラウドネイティブ技術は、パブリッククラウド、プライベートクラ ウド、ハイブリッドクラウドなどの近代的でダイナミックな環境にお いて、スケーラブルなアプリケーションを構築および実⾏するための 能⼒を組織にもたらします。 •このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロ サービス、イミュータブルインフラストラクチャ、および宣⾔型APIが あります。 •これらの⼿法により、回復性、管理⼒、および可観測性のある疎結合 システムが実現します。 これらを堅牢な⾃動化と組み合わせること で、エンジニアはインパクトのある変更を最⼩限の労⼒で頻繁かつ予 測どおりに⾏うことができます。 27
  28. 28. Cloud Nativeとは? 28 ❓🤔❓🤔❓ ⻑くて少し
 分かりづらいですね
  29. 29. Cloud Nativeとは? 「疎結合」「回復⼒」「管理性」「可観測性」 「⾃動化による堅牢 / 柔軟性」なシステム 29 あくまで私の解釈です
  30. 30. Cloud Nativeを実現する材料 •OSSなアプリケーション •Docker / Kubernetes •パブリッククラウドが提供するマネージドな
 ミドルウェアサービス (DB, LB, Storage) •実質無限スケール •MicroServices というアーキテクチャ •考え⽅は以前から存在していたが再注⽬ 30
  31. 31. このあたりの材料を
 組み合わせると
 Cloud Nativeになりえる 31
  32. 32. 今までのアプリケーション •LB - App - DB の⻩⾦な三層構造 •クラウド以前なら全てオンプレ(当たり前) •Varnish / Apache / MySQL など鉄板 •DBレプリケーションなど •Xen登場も影響した現場もあったでしょう •Read / Write⽤のIPアドレスを変えたり •3〜5台冗⻑ぐらいにはなっていたのでは 32
  33. 33. 今までのアプリケーション •前提がいくつか存在 •DBをスケールさせるのには限界がある… •サーバの設定は都度確認が必要 • ansible / itamae / Chef とか
 serverspecとかはあるけど… •アプリケーションのデプロイは⽉1ぐらい • 開発サーバは⼈間より少ないから⼿元で 33
  34. 34. そこでクラウド 34
  35. 35. クラウド時代の到来 •マネージドサービスによりほぼ無限スケール するミドルウェアの登場 •短時間のみ借りる運⽤により、アプリも
 分, 秒単位のスケールイン / アウトが可能に •開発者が開発する時だけインスタンスを
 借りる運⽤なども 35 インスタンス⼀台の⽣存時間が⾮常に短くなった
  36. 36. クラウド時代の到来 . インスタンス短命化→構築の省⼒化が急務 . アプリケーション起動の短縮化必須 . あえて不変的にすることにより、
 アプリケーションの起動を担保する技術で あるコンテナの価値上昇 . より⼿軽にコンテナを展開出来る環境
 Kubernetesなどの出現 36
  37. 37. Kubernetesとは? •Google社製OSS(現在はコミュニティ) •複数台のサーバでクラスタを組み、その上で コンテナを配置 / 適切に起動するシステム •外部からコンテナにL 接続するService、
 クラスタ全台に1つずつコンテナを配置する DaemonSetsなど様々な概念が存在 •エコシステム / サブプロジェクトが豊富に存在 37
  38. 38. Kubernetesの特徴 . Declarative (宣⾔的) API . Reconciliation Loop . Custom Resource / Eco system 38
  39. 39. 特徴1: 宣⾔的API 「この状態であってほしい」という状態を ユーザが宣⾔し、システムが追従する 39
  40. 40. not宣⾔的APIな例 •Nginx インストール / 起動シェルスクリプト 40 宣⾔的の対⽐として
 「命令的」などと呼びます
  41. 41. 宣⾔的APIな例 41
  42. 42. 宣⾔的APIな例 42 • Nginx 台を起動するYAML • ユーザはこれ以上追加操作 が不要 • システムが⾃律して 「Nginx 台起動」
 という状況に⾃動遷移する
  43. 43. 宣⾔的APIな例 43 Deployment ReplicaSet Pod Container ⾃動⽣成 ⾃動⽣成 ⾃動⽣成
  44. 44. 宣⾔的API •なにが嬉しいのか? •YAMLファイルにより状態をクラスタ内に
 定義することが可能となる •何らかの障害が起きた場合も同様に⾃律
 して回復が⾏われる (Reconciliation Loop) • クラスタが状態を持ち、
 クラスタが状態に合わせる 44
  45. 45. Reconciliation Loop 45 Deployment ReplicaSet Pod Container ⾃動⽣成 ⾃動⽣成 ⾃動⽣成
  46. 46. Reconciliation Loop 46 Deployment ReplicaSet Pod Container ⾃動⽣成 ⾃動⽣成 ⾃動⽣成 何らかの要因で
 障害が発⽣し、プロセス終了!
  47. 47. Reconciliation Loop 47 Deployment ReplicaSet Pod ⾃動⽣成 ⾃動⽣成 プロセスが終了したため
 コンテナが消滅してしまう
  48. 48. Reconciliation Loop 48 Deployment ReplicaSet Pod ⾃動⽣成 ⾃動⽣成 Container ⾃動⽣成
  49. 49. Reconciliation Loop 49 Deployment ReplicaSet Pod ⾃動⽣成 ⾃動⽣成 Container ⾃動⽣成
  50. 50. Reconciliation Loop 50 Deployment ReplicaSet Pod ⾃動⽣成 ⾃動⽣成 Container ⾃動⽣成Reconcilation Loopにより
 ⾃動的に復活!
  51. 51. 特徴2: Reconciliation Loop •とある状態を維持 or とある状態への遷移を
 ⾃律的に⾏うためのLoop⾏動 •コンテナのみならず、Kubernetes全体の
 システムに適⽤されている •ex: kube-apiserver etc •これにより容易にコンテナ再起動などが⾏える 51
  52. 52. 特徴3-1: Custom Resource •「宣⾔されたもの」はResourceと呼ばれる •標準Resourceの例 •Pod (コンテナ) •Service (コンテナへのL 接続) •PersistentVolume (永続化ストレージ) •Secret (秘匿情報) •CronJobs (cron設定) 52
  53. 53. 特徴3-1: Custom Resource •拡張されたResource •開発者が⾃由に作ることが可能 •よく使われるCustom Resourceの⼀例 •Ingress (コンテナへのL 接続) •CertificateRequests (SSL証明書要求) •Certificates (SSL証明書のCR版) • Reconciliation Loopも利⽤可能 53
  54. 54. 特徴3-2: Eco System •Kubernetesの宣⾔に乗るエコシステム •Ingress(L ロードバランサー)を作成すると
 インストールしたLBが環境に合わせて⽣成 •AWS: ALB (kubernetes-sigs/aws-alb-ingress-controller) •GCP: GCP HTTP(S) ロードバランサ •オンプレ: Nginx (kubernetes/ingress-nginx) 54
  55. 55. 特徴3-2: Eco System •抽象化された宣⾔を実装に落とし込ための
 コントローラを環境に合わせてカスタマイズ •kubernetes-sigs/external-dns • Route , CloudFlare, RFC (DNS UPDATE) •Container Storage Interface • Amazon EBS, Ceph RBD, hostpath •Container Network Interface • Amazon VPC CNI plugin, Calico, Flannel 55
  56. 56. Cloud Nativeとは?[再掲] 「疎結合」「回復⼒」「管理性」「可観測性」 「⾃動化による堅牢 / 柔軟性」なシステム 56
  57. 57. Cloud Nativeとは?[再掲] 「疎結合」「回復⼒」「管理性」「可観測性」 「⾃動化による堅牢 / 柔軟性」なシステム 57 Kubernetesは「ある程度」実現してくれる
  58. 58. 雑談: kubernetes-sigsとは? •SIG: ざっくり「興味ある奴集まれスレ」 •https://github.com/kubernetes-sigs/ •実験的 / サブプロジェクトと呼ばれるものが 集まっており、エコシステムを加速中 •類似概念: working group (wg) •詳しくは: https://github.com/kubernetes/community 58
  59. 59. Kubernetesで何ができるようになった? •宣⾔的APIで起動できるアプリケーションは 「⽐較的」複製しやすい • もちろんそのように作る必要有 •名前を変えて宣⾔することにより、同じ
 アプリケーションが新しく⽴ち上げられる • 同じクラスタ、別クラスタどちらでも可
 59
  60. 60. Kubernetesで何ができるようになった? •宣⾔的APIで起動できるアプリケーションは 「⽐較的」複製しやすい • もちろんそのように作る必要有 •名前を変えて宣⾔することにより、同じ
 アプリケーションが新しく⽴ち上げられる • 同じクラスタ、別クラスタどちらでも可 •Pull Reqごとに⽣成も簡単に!!! 60
  61. 61. [PR] PR-based Preview Env in Kubernetes •Terraform を⽤いて別クラスタ⽣成 or
 既存クラスタ上でPRコードの環境⽣成! •Google Kubernetes Engineベース •特有の話はしてないのでAWSオンプレも🙆 •実際にPRベースに環境を作るサンプル付き!! •周辺プロダクトの紹介も少しあるぞ!! 61
  62. 62. [PR] PR-based Preview Env in Kubernetes 62アーキテクチャ図
  63. 63. [PR] PR-based Preview Env in Kubernetes •Terraform を⽤いて別クラスタ⽣成 or
 既存クラスタ上でPRコードの環境⽣成! •Google Kubernetes Engineベース •特有の話はしてないのでAWSオンプレも🙆 •実際にPRベースに環境を作るサンプル付き!! •周辺プロダクトの紹介も少しあるぞ!! 63
  64. 64. よくあるCloud Nativeへの誤解 •「コンテナ / Kubernetesを導⼊さえすれば Cloud Native!」ではない 🙅 • あくまで考え⽅、あり⽅の⼀種 •オンプレはCloud Nativeと無縁ではない🙅 • Cloudベースな考えも多いが、オンプレ 転⽤も⼗分に可能 • 実際発表者はオンプレの部署です
 (プライベートクラウドグループ) 64
  65. 65. まとめ •Cloud Nativeの特徴など概要をご紹介 • 様々な考え⽅の下⽣まれた1つのあり⽅ •どうして⼈類はCloud Nativeに⾄ったのか? • クラウドの登場、変化するアプリケーション •Kubernetesに⼈々が注⽬する理由をご紹介 • 3つの特徴、抽象化と具体的の境界線 65
  66. 66. このスライドは発表の前半部分です 後半はこちら:
 https://speakerdeck.com/yukirii/ osc tk-yukirii-k s 66

×