Speaker Deck
Speaker Deck Pro
Sign in
Sign up
for free
DevFest in Shinshu 2019 - Abount DevOps in GCP
koda
November 23, 2019
Technology
0
140
DevFest in Shinshu 2019 - Abount DevOps in GCP
koda
November 23, 2019
Tweet
Share
More Decks by koda
See All by koda
koda
2
72
koda
0
90
koda
3
460
koda
1
250
koda
1
33
koda
0
190
Other Decks in Technology
See All in Technology
hacker2202
0
750
omn
0
560
ray_30cm_ns
0
270
kanaugust
PRO
0
140
greymd
0
600
layerx
0
690
satotakeshi
2
400
kyonmm
1
1.9k
yuyaabo
0
250
pinboro
0
1.9k
sylph01
0
160
opelab
2
280
Featured
See All Featured
imathis
478
150k
iamctodd
17
1.8k
ufuk
56
5.4k
sachag
446
36k
lynnandtonic
270
16k
danielanewman
1
470
sferik
609
54k
morganepeng
92
13k
addyosmani
310
21k
holman
448
130k
mza
80
4.1k
3n
163
22k
Transcript
DevOps環境の紹介 GCPを使った Koda 2019-11-23
• 「Cloud」とか「DevOps」とか「Agile」やってます • 某メーカーの中でアプリなどを開発中 • プログラミングと温泉、家族を愛してます(チームビルディングもまぁまぁ好き) • Google系を中心にクラウド系の技術コミュニティに参加 KODA (@koda3t)
2
3 本日のゴール ▷ クラウド時代におけるモダンな開発・運用について、ふんわり理解し、 各自が調査&試行できる知識を習得する ▷ 紹介する内容を自分で構築できるハンズオン資料もあるので、興味を 持ったら試してみてください ◦ 要望があればハンズオンをまた開催します
あぁ、、あれね。 聞いたことあるよ(ドヤッ)
4 Agenda 1. DevOpsとは 2. DevOpsな環境 3. まとめ
5 1. DevOpsとは
開発担当者と運用担当者が連携して協力すること 6 https://ja.wikipedia.org/wiki/DevOps
Dev vs Ops 新しい機能を追加したから リリースさせろや!! そんなんで、安定稼働できるん かいな! 責任とるのはこっちやぞ!! 7
DevOps ユーザに価値のあるものを 素早く出していくために協力 しよう! そのために何が必要かを、 一緒に考えていこう!! 8
市場投入までの時間の短縮 高い顧客満足度 改良された製品の品質 改良されて、信頼性の高いリリース 改良された生産性・効率 迅速な実験によって、適切な製品を構築する能力 9 DevOpsの効果
DevOpsな組織文化 Respect: お互いを尊重することです。相手のことを思いやることでコミュニケーションが円滑に取れるように なります。 Trust: チームメンバーを信頼することです。開発者、運用者の垣根を越えて、システムに関わっているメン バーを信頼する必要があります。 Healthy attitude about
failure: 失敗に対して健全な態度をとることです。失敗はチャレンジすれば起こりえるもので、担当者を責め るのはおかしいという考えです。 Avoiding Blame: 非難を避けることです。失敗しないように取り組むのがDevOpsの目的の1つですが、それでもミス をゼロにはできません。しかし、たとえミスが起きたてもそれを非難する事はしてはいけません。 2009年のFlickr社から 10
DevOpsを実現するための技術 • Continuous Integration ◦ 自動化されたビルド・テスト • Continuous Deployment ◦
自動化されたデプロイ • Infrastructure as Code ◦ 自動化されたインフラ • Service Mesh ◦ 小さく迅速に市場投入・ロールバック • Serverless / Managed service ◦ 運用負荷の低いインフラ • Microservices ◦ 小さく迅速に開発 11
2. DevOpsな環境 12
13 Dev Ops 開発したものが運用にシームレスに 連携されていく環境 DevOpsな環境?
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 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 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(運用)
実際のDevOps環境のサンプルを見ながら、 使われている技術の紹介
18 Docker ▷ コンテナ型の仮想ツール ▷ Immutable Infrastructure を実現
19 Kubernetes(K8s) ▷ コンテナ化したアプリケーションのデプロイ、スケーリング、および 管理を行うための、コンテナオーケストレーションツール ▷ 複数のコンテナをいい感じに運用できる
20 GKE ▷ マネージドなKubernetesプラットフォーム ▷ 現状のコンテナ系のサービスでは一番クセが無く「お安い」と思う
21 Istio ▷ サービスメッシュ ▷ マイクロサービス間などの通信をいい感じに管理できる ▷ カナリアリリースなどが簡単にできる
22 Prometheus & Grafana ▷ モニタリングツール & 可視化ツール ▷ 動的な環境での監視が得意 ▷
Istioをセットアップすると自動的についてくる
23 GitFlow ▷ Gitの機能を使っていい感じに開発するスタイル ▷ Featureブランチで開発して、CIでテスト、MR(PR)でレビューして というかんじで開発が進む
GitLab ▷ OSSのGitHubのようなもの ▷ SaaS(GitHub)が使えない場合の選択肢 ▷ GitHubでできることは代替可能 24
25 ▷ k8sを使ったサービスのローカルでの開発を便利にするツール
26 CI ▷ コードの変更の度に自動化されたビルドとテストを実行 ▷ これにより品質を保ちながら頻繁に結合を行うことが出来る https://cloud.google.com/solutions/continuous-integration
27 Spinnaker(CD) ▷ 継続デリバリのプラットフォーム ▷ Blue/Greenデプロイや、カナリアデプロイにも対応
28 3. まとめ
29 今まで話した内容を、 すんなり理解できましたか?
30 いろいろありすぎて 大混乱 話だけ聞いただけでは、私には無理でした。。。
31 使ってみよう! ✔ 使ってみると、意外と大した事ない
まずはDockerからはじめよう! Immutable Infrastructure Immutable Development Environment ≒ 自分のローカルの開発環境も使い捨てで使える! →気軽に新しい事が試せる!!
28人 27人 ハンズオン開催中 資料:https://gdg-shinshu.connpass.com/event/143112/ 資料:https://gcpug-shinshu.connpass.com/event/135612/
34 「きこりのジレンマ」 になっていないか確認しよう
35 同じ1人月でも内容(成果)は違う 12時間/日 6時間/日 余った時間でさらなる効率化
9/3にGoogleが開催したKubernetes Dayから資料を紹介します https://inthecloud.withgoogle.com/kubernetes-day-1909/Google_Cloud_Kubernetes_Day2_Session01.pdf
37
DevOpsに取り組んでいるチームは 生産性が 1.53倍高い
None
• デプロイ頻度: 208倍多い • コミットからデプロイまでの時間: 108倍短い • 環境変更の成功: 7倍の成功率(失敗が 1/7)
• 障害から復旧にかかる時間: 2604倍早い
None
None
None
44 イノベーションに手が回らない
最大で年間12兆円の経済損失
46 崖から落ちないためにも DevOpsに取り組む ☞ 新しい技術を試す時間を確保する(リーダ/マネージャ) ☞ 技術だけではなく、P10の「組織文化」も!
thanks! Any questions? You can find me at @koda3t 47