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

DevFest in Shinshu 2019 - Abount DevOps in GCP

koda
November 23, 2019

DevFest in Shinshu 2019 - Abount DevOps in GCP

koda

November 23, 2019
Tweet

More Decks by koda

Other Decks in Technology

Transcript

  1. DevOps環境の紹介
    GCPを使った
    Koda
    2019-11-23

    View full-size slide

  2. ● 「Cloud」とか「DevOps」とか「Agile」やってます
    ● 某メーカーの中でアプリなどを開発中
    ● プログラミングと温泉、家族を愛してます(チームビルディングもまぁまぁ好き)
    ● Google系を中心にクラウド系の技術コミュニティに参加
    KODA (@koda3t)
    2

    View full-size slide

  3. 3
    本日のゴール
    ▷ クラウド時代におけるモダンな開発・運用について、ふんわり理解し、
    各自が調査&試行できる知識を習得する
    ▷ 紹介する内容を自分で構築できるハンズオン資料もあるので、興味を
    持ったら試してみてください
    ○ 要望があればハンズオンをまた開催します
    あぁ、、あれね。
    聞いたことあるよ(ドヤッ)

    View full-size slide

  4. 4
    Agenda
    1. DevOpsとは
    2. DevOpsな環境
    3. まとめ

    View full-size slide

  5. 5
    1.
    DevOpsとは

    View full-size slide

  6. 開発担当者と運用担当者が連携して協力すること
    6
    https://ja.wikipedia.org/wiki/DevOps

    View full-size slide

  7. Dev vs Ops
    新しい機能を追加したから
    リリースさせろや!!
    そんなんで、安定稼働できるん
    かいな!
    責任とるのはこっちやぞ!!
    7

    View full-size slide

  8. DevOps
    ユーザに価値のあるものを
    素早く出していくために協力
    しよう!
    そのために何が必要かを、
    一緒に考えていこう!!
    8

    View full-size slide

  9. 市場投入までの時間の短縮
    高い顧客満足度
    改良された製品の品質
    改良されて、信頼性の高いリリース
    改良された生産性・効率
    迅速な実験によって、適切な製品を構築する能力
    9
    DevOpsの効果

    View full-size slide

  10. DevOpsな組織文化
    Respect:
    お互いを尊重することです。相手のことを思いやることでコミュニケーションが円滑に取れるように
    なります。
    Trust:
    チームメンバーを信頼することです。開発者、運用者の垣根を越えて、システムに関わっているメン
    バーを信頼する必要があります。
    Healthy attitude about failure:
    失敗に対して健全な態度をとることです。失敗はチャレンジすれば起こりえるもので、担当者を責め
    るのはおかしいという考えです。
    Avoiding Blame:
    非難を避けることです。失敗しないように取り組むのがDevOpsの目的の1つですが、それでもミス
    をゼロにはできません。しかし、たとえミスが起きたてもそれを非難する事はしてはいけません。
    2009年のFlickr社から
    10

    View full-size slide

  11. DevOpsを実現するための技術
    ● Continuous Integration
    ○ 自動化されたビルド・テスト
    ● Continuous Deployment
    ○ 自動化されたデプロイ
    ● Infrastructure as Code
    ○ 自動化されたインフラ
    ● Service Mesh
    ○ 小さく迅速に市場投入・ロールバック
    ● Serverless / Managed service
    ○ 運用負荷の低いインフラ
    ● Microservices
    ○ 小さく迅速に開発
    11

    View full-size slide

  12. 2.
    DevOpsな環境
    12

    View full-size slide

  13. 13
    Dev Ops
    開発したものが運用にシームレスに
    連携されていく環境
    DevOpsな環境?

    View full-size slide

  14. 14
    Code
    Code
    コードを編集
    自動ビルド
    自動デプロイ
    GitLab
    Feature Branch
    Push
    Container
    Registry
    自動ビルド
    イメージ登録
    動作確認
    Skaffold
    Kubernetes
    Kubernetes
    Engine
    Canary
    Production
    一般ユーザ
    アーリーアダプタ
    自動デプロイ
    モニタリング
    Istio
    Prometheus
    Grafana
    動作確認
    Spinnaker
    CI
    レビュー
    GitLab
    Master Branch
    GitLab
    Merge
    Tag
    バージョン
    管理(タグ)
    CI
    Google Cloud
    ビルド&テスト
    Pub/Sub
    トラフィック制御
    ローカルPC
    リリース判断

    View full-size slide

  15. 15
    Code
    Code
    コードを編集
    自動ビルド
    自動デプロイ
    GitLab
    Feature Branch
    Push
    Container
    Registry
    自動ビルド
    イメージ登録
    動作確認
    Skaffold
    Kubernetes
    Kubernetes
    Engine
    Canary
    Production
    一般ユーザ
    アーリーアダプタ
    自動デプロイ
    モニタリング
    Istio
    Prometheus
    Grafana
    動作確認
    Spinnaker
    CI
    レビュー
    GitLab
    Master Branch
    GitLab
    Merge
    Tag
    バージョン
    管理(タグ)
    CI
    Google Cloud
    ビルド&テスト
    Pub/Sub
    トラフィック制御
    ローカルPC
    リリース判断
    Dev(開発)

    View full-size slide

  16. 16
    Code
    Code
    コードを編集
    自動ビルド
    自動デプロイ
    GitLab
    Feature Branch
    Push
    Container
    Registry
    自動ビルド
    イメージ登録
    動作確認
    Skaffold
    Kubernetes
    Kubernetes
    Engine
    Canary
    Production
    一般ユーザ
    アーリーアダプタ
    自動デプロイ
    モニタリング
    Istio
    Prometheus
    Grafana
    動作確認
    Spinnaker
    CI
    レビュー
    GitLab
    Master Branch
    GitLab
    Merge
    Tag
    バージョン
    管理(タグ)
    CI
    Google Cloud
    ビルド&テスト
    Pub/Sub
    トラフィック制御
    ローカルPC
    リリース判断
    Ops(運用)

    View full-size slide

  17. 実際のDevOps環境のサンプルを見ながら、
    使われている技術の紹介

    View full-size slide

  18. 18
    Docker
    ▷ コンテナ型の仮想ツール
    ▷ Immutable Infrastructure を実現

    View full-size slide

  19. 19
    Kubernetes(K8s)
    ▷ コンテナ化したアプリケーションのデプロイ、スケーリング、および
    管理を行うための、コンテナオーケストレーションツール
    ▷ 複数のコンテナをいい感じに運用できる

    View full-size slide

  20. 20
    GKE
    ▷ マネージドなKubernetesプラットフォーム
    ▷ 現状のコンテナ系のサービスでは一番クセが無く「お安い」と思う

    View full-size slide

  21. 21
    Istio
    ▷ サービスメッシュ
    ▷ マイクロサービス間などの通信をいい感じに管理できる
    ▷ カナリアリリースなどが簡単にできる

    View full-size slide

  22. 22
    Prometheus & Grafana
    ▷ モニタリングツール & 可視化ツール
    ▷ 動的な環境での監視が得意
    ▷ Istioをセットアップすると自動的についてくる

    View full-size slide

  23. 23
    GitFlow
    ▷ Gitの機能を使っていい感じに開発するスタイル
    ▷ Featureブランチで開発して、CIでテスト、MR(PR)でレビューして
    というかんじで開発が進む

    View full-size slide

  24. GitLab
    ▷ OSSのGitHubのようなもの
    ▷ SaaS(GitHub)が使えない場合の選択肢
    ▷ GitHubでできることは代替可能
    24

    View full-size slide

  25. 25
    ▷ k8sを使ったサービスのローカルでの開発を便利にするツール

    View full-size slide

  26. 26
    CI
    ▷ コードの変更の度に自動化されたビルドとテストを実行
    ▷ これにより品質を保ちながら頻繁に結合を行うことが出来る
    https://cloud.google.com/solutions/continuous-integration

    View full-size slide

  27. 27
    Spinnaker(CD)
    ▷ 継続デリバリのプラットフォーム
    ▷ Blue/Greenデプロイや、カナリアデプロイにも対応

    View full-size slide

  28. 28
    3.
    まとめ

    View full-size slide

  29. 29
    今まで話した内容を、
    すんなり理解できましたか?

    View full-size slide

  30. 30
    いろいろありすぎて
    大混乱
    話だけ聞いただけでは、私には無理でした。。。

    View full-size slide

  31. 31
    使ってみよう!
    ✔ 使ってみると、意外と大した事ない

    View full-size slide

  32. まずはDockerからはじめよう!
    Immutable
    Infrastructure
    Immutable
    Development
    Environment

    自分のローカルの開発環境も使い捨てで使える!
    →気軽に新しい事が試せる!!

    View full-size slide

  33. 28人 27人
    ハンズオン開催中
    資料:https://gdg-shinshu.connpass.com/event/143112/ 資料:https://gcpug-shinshu.connpass.com/event/135612/

    View full-size slide

  34. 34
    「きこりのジレンマ」
    になっていないか確認しよう

    View full-size slide

  35. 35
    同じ1人月でも内容(成果)は違う
    12時間/日
    6時間/日
    余った時間でさらなる効率化

    View full-size slide

  36. 9/3にGoogleが開催したKubernetes Dayから資料を紹介します
    https://inthecloud.withgoogle.com/kubernetes-day-1909/Google_Cloud_Kubernetes_Day2_Session01.pdf

    View full-size slide

  37. DevOpsに取り組んでいるチームは
    生産性が
    1.53倍高い

    View full-size slide

  38. • デプロイ頻度:
    208倍多い
    • コミットからデプロイまでの時間:
    108倍短い
    • 環境変更の成功:
    7倍の成功率(失敗が 1/7)
    • 障害から復旧にかかる時間:
    2604倍早い

    View full-size slide

  39. 44
    イノベーションに手が回らない

    View full-size slide

  40. 最大で年間12兆円の経済損失

    View full-size slide

  41. 46
    崖から落ちないためにも
    DevOpsに取り組む
    ☞ 新しい技術を試す時間を確保する(リーダ/マネージャ)
    ☞ 技術だけではなく、P10の「組織文化」も!

    View full-size slide

  42. thanks!
    Any questions?
    You can find me at
    @koda3t
    47

    View full-size slide