Slide 1

Slide 1 text

Kubernetesで作る 「Less Ops」なインフラ Kubernetes初⼼者向け 〜SIer⾵味〜

Slide 2

Slide 2 text

⾃⼰紹介 n吉村 翔太(yoshimura shota) nNTTコミュニケーションズ所属 nインフラエンジニア/データエンジニアリング nDocker/k8sは4ヶ⽉くらい 他はkafka、hadoop、spark、presto etc n趣味はボードゲーム

Slide 3

Slide 3 text

⽬次 1. Less Opsなインフラとは 2. Kuberntesでの作り⽅ 3. IT投資の今後 4. 新しい分野の勉強⽅法

Slide 4

Slide 4 text

第1章 Less Opsなインフラとは

Slide 5

Slide 5 text

エンジニアのしたいこと ビジネスのアイデアを実現する システムを作りたい 思いついたアイデアを 今すぐ試したい!!

Slide 6

Slide 6 text

そのために より早く 価値の⾼いものを たくさん提供したい

Slide 7

Slide 7 text

⽬指すもの Less Ops 、More Code nOpsは⾃動化してcoffee break n付加価値を出すCodeにより注⼒ Code Ops code Ops ⼈⽉単価のビジネスで 2重、3重チェックって ⽣産性も下がって地獄では? リスペクトしてるプレゼン< https://www.slideshare.net/YoshidaShingo/thefuturewillbeserverless >

Slide 8

Slide 8 text

これらのワードも向かってる⽅向は同じ

Slide 9

Slide 9 text

Less Ops なインフラって何? n Sel Healing(故障発⽣時のサービス無影響+⾃⼰修復) n In-Flight Renewing(サービス無停⽌メンテナンス) n Adaptive Scale(⾃律的なリソースの調整) 故障時に⾃動で復旧してほしい 呼び出されたくない システムを⽌めずにアップデートしたい 休⽇の夜中に作業したくない 負荷に応じて⾃動でスケールしてほしい 需要予測とか無理

Slide 10

Slide 10 text

第2章 Kuberntesでの作り⽅

Slide 11

Slide 11 text

Kubernetesの前にコンテナの良さを語る n軽量(VMと⽐⽐べて) n実⾏環境の隔離性が⾼い(物理に⽐べて) nポータビリティ(物理に⽐べて) ホストOS 物理サーバ AP AP ホストOS 物理サーバ AP AP ホストOS 物理サーバ AP 仮想サーバ 仮想サーバ 仮想OS 仮想OS コンテナ AP コンテナ 物理 VM コンテナ

Slide 12

Slide 12 text

Kubernetes(k8s)とは nDocker戦争の覇者 n2017年10⽉ Docker社がk8sのサポートを発表を契機に コンテナオーケストレーションの覇権を握る VS 参考< https://www.publickey1.jp/blog/17/post_265.html >

Slide 13

Slide 13 text

コンテナ コンテナオーケストレーションとは nコンテナを適切なノード (サーバ) に⾃動で配置してくれる k8s Cluster node node master API Server node コンテナ

Slide 14

Slide 14 text

k8sの機能を使ってLess Opsなインフラを作ってみよう n教材に使うのはGitLab n構成はこんな感じ アプリケーション DB キャッシュ スケールの単位毎にコンテナ化する 参考< https://docs.gitlab.com/ce/install/docker.html#omnibus-gitlab-based-images >

Slide 15

Slide 15 text

GitLab ”Service” ”replicas”編 nService Podへのルーティングの設定 nReplicas 配置するPod数の設定 Pod Pod Pod Service k8s Cluster ※ 「Pod」はk8sでのコンテナの呼び⽅ nReplicas数を2->3にすると、Podが増える nPodへのルーティングも⾃動 結果

Slide 16

Slide 16 text

GitLab ”Horizontal Pod Autoscaler”編 nHorizontal Pod Autoscaler CPU/メモリ等の使⽤率に応じて Replicas数を⾃動管理 Pod Pod Pod Service k8s Cluster 結果 n負荷が増えると勝⼿にPodも増える nAdaptive Scale(⾃律的なリソースの調整) 参考< https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ >

Slide 17

Slide 17 text

GitLab ”Cluster Autoscaler”編 k8s Cluster 結果 n負荷が増えると勝⼿にノードも増える nAdaptive Scale(⾃律的なリソースの調整) node node master node 参考< https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler > (注意) クラウドのみ。勝⼿に予算を確保して、購買契約をして、ラック確保してキッティングくれるツールは未だ存在せず nCluster Autoscaler CPU/メモリ等の使⽤率に応じて ノード数を⾃動管理

Slide 18

Slide 18 text

GitLab ”Rolling Update”編 nRolling update ローリグアップデートする Pod Pod Pod Service k8s Cluster n⾃動で新しいPodに切り替えてくれる nIn-Flight Renewing(サービス無停⽌メンテナンス) 結果 New 参考< https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/ >

Slide 19

Slide 19 text

GitLab ”Liveness” “Readiness”編 nLiveness(死活監視、プロセス監視相当) 死活監視してだめたったら ⾃動でPodを作り直す nReadiness(サービス監視相当) サービス監視してだめなやつはルーティングしない (LBのヘルスチェックみたいな) n故障を⾒つけたら⾃動で復旧してくれる nSel Healing(故障発⽣時のサービス無影響+⾃⼰修復) 結果 参考< https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ > HTTPリクエストとかコマンドが設定できる

Slide 20

Slide 20 text

Redis 編 nクラスタを組む? redis⾃⾝がクラスタ組める nクラスタを組まずに1個だけでも どうせキャッシュだしケアしなくても Pod Pod Pod Service k8s Cluster nクラスタを組めばSel Healingと⾔えなくも無い n故障時のレスポンスの低下を許容するならPod1個でも 結果

Slide 21

Slide 21 text

Postgresql編 nk8sでももちろん作れる コンテナはデータの永続化が苦⼿ 垂直スケールをコンテナ化する? nマネージドサービスを使う k8sだとマネージドサービスのと 組み合わせが考慮されてる Pod k8s Cluster nマネージドサービスを活⽤して運⽤コストを下げる 結果 public cloud 参考< https://cloud.google.com/sql/docs/postgres/connect-container-engine?hl=ja >

Slide 22

Slide 22 text

k8sの振り返り 特徴 n全てYAML形式で設定。コマンドラインで操作可能 => インフラのCI/CDが⽤意 設計⽅針 nコンテナは”Stateless”& “Shared nothing”で設計 n上記以外のものはマネージドサービスの活⽤を検討

Slide 23

Slide 23 text

第3章 IT投資の今後

Slide 24

Slide 24 text

IT予算額増減傾向の経年変化(2015〜2018年度予想) 参考< https://www.itr.co.jp/company/press/17100501PR.html > 投資意欲は 横ばいか上向き

Slide 25

Slide 25 text

国内ITサービス市場 ⽀出額予測: 2017年〜2022年 参考< https://www.idcjapan.co.jp/Press/Current/20180226Apr.html > 緩やかに成⻑しそう

Slide 26

Slide 26 text

IT⼈材の需給に関する推計 経済産業省 参考< http://www.meti.go.jp/press/2016/06/20160610002/20160610002.html > IT需要は伸びて ⼈材は不⾜しそう 今までの オペレーションのままだと 職場がブラック化しそうな予感

Slide 27

Slide 27 text

基幹系と情報系について思うこと カスタマイズが、システム統合や更改の 障害になりやすいので抑⽌⽅向に進むと思われる 項⽬ 基幹系システム 情報系システム 対象 財務会計、⽣産管理、⼈事給与 etc データ分析、AI、IoT etc 所感 充分に普及したので、リプレース中⼼ 新規の投資は少ないのでは? まだ分からない事が多いけど やってみたい分野 投資予想 横ばい or 微減 急増? 全体として微増としても、投資の内訳としてはこんな感じではと予想

Slide 28

Slide 28 text

基幹業務システムのITインフラ導⼊状況と次期更新での採⽤意向 基幹系システムのリプレースも 中⾝はクラウドへの移⾏が中⼼かな? 参考< https://www.idcjapan.co.jp/Press/Current/20180412Apr.html > 今の保守契約が7年だとすると 7年後の世界は、半分がクラウド??

Slide 29

Slide 29 text

製品/サービスに対する投資意欲(OS/ミドルウェア分野) 情報系システム、Less Ops あたりは今後意欲的に投資が 進む予感 情報系システムっぽい Less Opsっぽい 参考< https://www.itr.co.jp/company/press/17100501PR.html >

Slide 30

Slide 30 text

IT投資の拡がりと特徴 項⽬ 伝統的なIT投資 新たなIT投資 ⽬的 コスト削減 付加価値の向上 対象領域 SoE(System of Record) SoR(System of Engagement) IT投資の形態 プロジェクト プロダクト・サービス オーナー 情報システム部⾨ 事業部⾨ インフラへの期待 信頼性・堅牢性 拡張性・柔軟性 開発形態 ITベンダーへの外注 ユーザ企業内での内製 パートナリング ⼈材の役割 分業・専⾨特化 フルスタック 対象業務 予測可能 探索型 データ 構造 ⾮構造 参考< https://www.ipa.go.jp/jinzai/itss/itssplus.html > 今後、投資が進むのは こっち側だよね 今までの外注モデルが 通⽤しない 新しい収益モデルの構築 がSIer(CIer)の課題?

Slide 31

Slide 31 text

第4章 新しい分野の勉強⽅法

Slide 32

Slide 32 text

Kubernetes学び⽅ n基本動作 n公式ドキュメントを読む< https://kubernetes.io/ > nGithubのissueを読む< https://github.com/kubernetes/kubernetes/issues > n触って⾒る nGKE< https://cloud.google.com/kubernetes-engine/docs/ > n⾟くなってきたら nQiitaで記事を探す< https://qiita.com/ > nKubeConの動画を⾒る< https://www.youtube.com/playlist?list=PLj6h78yzYM2N8GdbjmhVU65KYm_68qBmo> n本を読む Kubernetes完全ガイド <2018/9/21発売予定> ⼊⾨ Kubernetes <発売済み> Docker/Kubernetes 実践コンテナ開発⼊⾨ <2018/8/25発売予定>

Slide 33

Slide 33 text

外に出て仲間を⾒つける 〜k8s関連のMeetUp〜 nKubernetesMeetup Tokyo nhttps://k8sjp.connpass.com/ nDocker Meetup Tokyo nhttps://dockerjp.connpass.com/ nCloud Native Meetup Tokyo nhttps://cloudnative.connpass.com/ nCloud Native Developers JP nhttps://cnd.connpass.com/