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

Kubernetesで作る_LessOps_なインフラ.pdf

yosshi_
August 06, 2018

 Kubernetesで作る_LessOps_なインフラ.pdf

yosshi_

August 06, 2018
Tweet

More Decks by yosshi_

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 第2章 Kuberntesでの作り⽅

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. 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/ >

    View Slide

  17. 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/メモリ等の使⽤率に応じて
    ノード数を⾃動管理

    View Slide

  18. 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/ >

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. 第3章 IT投資の今後

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. 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発売予定>

    View Slide

  33. 外に出て仲間を⾒つける 〜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/

    View Slide