DevFest in Shinshu 2019 - Abount DevOps in GCP

2a3710646ca647dccd379703f2713682?s=47 koda
November 23, 2019

DevFest in Shinshu 2019 - Abount DevOps in GCP

2a3710646ca647dccd379703f2713682?s=128

koda

November 23, 2019
Tweet

Transcript

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

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

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

    あぁ、、あれね。 聞いたことあるよ(ドヤッ)
  4. 4 Agenda 1. DevOpsとは 2. DevOpsな環境 3. まとめ

  5. 5 1. DevOpsとは

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

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

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

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

  10. DevOpsな組織文化 Respect: お互いを尊重することです。相手のことを思いやることでコミュニケーションが円滑に取れるように なります。 Trust: チームメンバーを信頼することです。開発者、運用者の垣根を越えて、システムに関わっているメン バーを信頼する必要があります。 Healthy attitude about

    failure: 失敗に対して健全な態度をとることです。失敗はチャレンジすれば起こりえるもので、担当者を責め るのはおかしいという考えです。 Avoiding Blame: 非難を避けることです。失敗しないように取り組むのがDevOpsの目的の1つですが、それでもミス をゼロにはできません。しかし、たとえミスが起きたてもそれを非難する事はしてはいけません。 2009年のFlickr社から 10
  11. DevOpsを実現するための技術 • Continuous Integration ◦ 自動化されたビルド・テスト • Continuous Deployment ◦

    自動化されたデプロイ • Infrastructure as Code ◦ 自動化されたインフラ • Service Mesh ◦ 小さく迅速に市場投入・ロールバック • Serverless / Managed service ◦ 運用負荷の低いインフラ • Microservices ◦ 小さく迅速に開発 11
  12. 2. DevOpsな環境 12

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

  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 リリース判断
  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(開発)
  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(運用)
  17. 実際のDevOps環境のサンプルを見ながら、 使われている技術の紹介

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

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

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

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

  22. 22 Prometheus & Grafana ▷ モニタリングツール & 可視化ツール ▷ 動的な環境での監視が得意 ▷

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

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

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

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

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

  28. 28 3. まとめ

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

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

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

  32. まずはDockerからはじめよう! Immutable Infrastructure Immutable Development Environment ≒ 自分のローカルの開発環境も使い捨てで使える! →気軽に新しい事が試せる!!

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

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

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

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

  37. 37

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

  39. None
  40. • デプロイ頻度: 208倍多い • コミットからデプロイまでの時間: 108倍短い • 環境変更の成功: 7倍の成功率(失敗が 1/7)

    • 障害から復旧にかかる時間: 2604倍早い
  41. None
  42. None
  43. None
  44. 44 イノベーションに手が回らない

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

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

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