最近の学びを書き留めておきます。
マイクロサービスって一体何者なんだ
- ECサイトを例にすると、商品検索、おすすめ商品、セール中商品、カート情報などなど、様々な情報が一つの画面に表示されるとする
- それらを一つのアプリケーションとして提供(モノリス/モノリシック)するのではない
- 検索機能やおすすめ商品表示機能などが、それぞれ個別のアプリとして動作する。
それによって何が嬉しいの?
- 機能改修をする際に、改修したい機能だけにメスを入れることができる
- 従来であれば、共通部品として用意したコード全てに手を加える必要が出る。
- 障害発生時の影響範囲が限定される
- 機能別の負荷をモニタリングすることによって、どの機能に負荷が集中しているか見えるようになる
- その機能だけを垂直/水平スケーリングさせることができたりする
デメリットもあるよね?
- 機能同士を連携させたい場合に、その連結部分にどのような技術を用いるかを検討する必要がある
- REST APIにするか、gRPCにするかなど
- 設計が大変(したことがないのでどう大変なのかは説明できない....)
マイクロサービスアーキテクチャ + コンテナを実現するために
- Amazon EKS(https://aws.amazon.com/jp/eks/) を使うという選択肢
- GKE(https://cloud.google.com/kubernetes-engine?hl=ja) を使うという選択肢もある
Dockerの基礎知識が活きる
- Dockerイメージの取扱いやコンテナの動かし方の理解が必須となる
Kubernetesの読み方は職場に合わせる
- 郷に入っては郷に従う
Kubernetesについてはこれから勉強するがそれほど難しくなさそう
- もともと基盤などインフラ設計や構築をされていた人にとってはそんなに難しくなさそう
- 「内部でLBやルーティングテーブルを飼っているネットワークなんだ」という認識
- 参考書やサイトを漁ってモリモリと知識を付けていく方向でしばらくお勉強する予定
- 意外と詳しい人がいないようなので実績としてkubernetesの名前を言えれば単価アップも狙えるかもしれない