[GCP][Onair]マイクロサービスのGKEとサービスメッシュの話 | Late Riser

Late Riser

ダメ主婦ミルミルのプログラムと道の駅ドライブとリラックマの日々。
プログラム系は情報提供ではなく個人的メモなので、信憑性薄め。

Onairがおもしろかったので、メモがてら。

気になる人はあやふやなここじゃなくて、本家を見てね。

PDFも動画も公開されてるしデモもあるよ!!!

 

2019/02/21 GoogleCloudで実践するマイクロサービスアーキテクチャ

https://cloudplatformonline.com/onair-japan-past-webinars.html#past-video

 

で、内容。今回ほんとに勉強になったなぁ・・・。

 

◆時代はモノリスからマイクロサービスですよ。

モノリス:フロントエンド・バックエンド・データベースの三層構造アーキテクチャ
  いわゆる、よくある構造の奴。LAMPとかね。
   ・デメリット:スモールスタートにはいいんだけど、大きくなると、
   運用ややこしいし、テスト大変だし、スケーリングしづらいし、

   全体に波及するから変更容易性が低くなる。
 

マイクロサービス:サービスごとにアプリケーションを独立させて、それぞれを疎結合させる
  APIとかでやり取りさせて、必要機能ごとにデプロイしたり連携したり管理する最近のやつ
  ●メリット
   ・機能追加や新機能の導入が楽
   ・スケールアウト・可用性・耐障害性向上
   ・DevOps/アジャイルとの親和性→開発スピードUP
  ●デメリット
   ・サービスディスカバリー(どこで何のサービス動いてるか)
   ・オートスケーリング
   ・トラフィックコントロール(どこを何のプロトコルが動いてるか)
   ・障害の分離(Fault Isolation)
   ・可観測性(Observability)
   ・サービス間の認証認可
     →これらのデメリットにGCPは有効だよ!


=>GKEで解決できちゃう項目が下記
(GKEとはKubarnetesのマネージドサービスですよ。詳しいことは別途)
・サービスディスカバリー(どこで何のサービス動いてるか)
・オートスケーリング

詳しく言うと、GKEの↓のような機能で解決!
  ●Auto-everithin(機能名ではなく出演者の造語)
    ・Auto-reoair:パフォーマンスに問題のあるNodesを自動リプレイス
    ・Auto-upgrade:しょっちゅうUPしてうっとおしいk8sだけど、

               GKE上のは常に最新に自動更新するよ!
    ・Auto-scale:需要に応じてNodeを自動的に調整するよ
    ・Auto-Provision(Beta):ClusterAutoscalarの一部として動作し、

                    適切なNodePoolを作ったり消したりするよ
  ●RegionalCluster
   ・k8sのマスター一個じゃ心もとないから同一リージョンの別ゾーン3つに複製して、99.95のSLAを出してるよ
   ・マスター側のメンテがあっても多ゾーンに複製してるからサービス断なしだよ!
  ●ReionalPersistentDisk
   ・セカンダリのゾーンのディスクに対してデータをミラーリングするよ。
   ・ゾーンに障害があった場合は別のゾーンに対比してミラーリングしてるディスクをアタッチするよ
  ●Node Auto-Provisioning
   ・NAPはGKEのスケーリング機能と一緒に動作して、workloadに最適なインタ素を使って新しいNodePoolを勝手にアップグレードしてくれるよ
  ●PrivateCluster
   ・PublicIPを持たないNodeを利用可能にしてセキュリティ強化!
  ●ContainerNativeLoadbalancing ←version依存あり
   ・NEGを使って、HTTPSロードバランサーから直接PODのIPを参照(doubleHopを解決!)
 

サービスメッシュ=Istioで解決するのか下記4項目
   ・トラフィックコントロール(どこを何のプロトコルが動いてるか)
   ・障害の分離(Fault Isolation)
   ・可観測性(Observability)
   ・サービス間の認証認可

ほら!デメリット全部解決できるじゃん!


まず、サービスメッシュとは?
  ●サービスメッシュ:マイクロサービス環境において、サービスディスカバリ、

               トラフィックコントロール、認証認可(セキュリティ)、

               メトリクス収集(ログ等の可観測性)などの機能を担う技術やソフトウェア
  ↑アプリやサービスごとにそれぞれこの機能を入れるのは大変なので、システム全体にこれを入れる。

で、GoogleさんとIBMが中心に作ってるのがIstioさん。(GCP:Istio on GKE)←ベータ版
  ・サイドカーといわれるネットワークプロキシを使うことで機能を提供しているよ。
  ・IstioさんとのサイドカーがEnvoy(えんぼい)さん
  ・GCP:Istio on GKEとして、GKEのアドオンとしてつかえるから超簡単よ。
  ・自動でcontorolplaneをアップグレードするし、StackDriverにログもながしてくれるよ
まぁ、挙動詳細は直接Onair見てもらうとして。

 

●Istioのアーキテクチャ
 ・Pilot:Envoyと連携してサービス間の通信えおせいぎょ(ルーティングとか)
 ・Envoy:ネットワークプロキシ
 ・Mixier:ポリシー管理、テレメトリサービスとの連携。スタックドライバーやサードパーティーツールにログ送ったり。
 ・Citadel(シタデル):サービス間の相互TLSや証明書発行(要はCA局)

 

 

 

なんかホンマに楽しいな。

できればみんな、動画を見てください!まじでわかりやすいから。