去年の秋ぐらいから細々とマイクロサービスの勉強中です。
最近、自分の中で少しだけ形になりつつあるので、勉強の仕方をまとめようと思います。
Docker
今更ですがコンテナ技術(Docker)がベースになります。
Dockerが曖昧だと全体に影響するので腹を決めて勉強しましょう。
※安くはありませんが以下おすすめです。
セールにならない代わりに?講師のブログやTwitterで時々クーポンを配ります。
コンテナは本よりも手を動かす方が良いです。
コンテナの便利さ、速さを実感できますし、コンテナとの距離が近くなります。
Kubernetes
Kubernetesは難しいことで有名です。
でも、だからこそ、情報自体はたくさんありますので使える情報は全部使いましょう。
おすすめは以下です。
Udemyも見ました。
Courseraもおすすめです。たぶん無料期間中に終わります。
※修了したらサブスクを解除しましょう。
Kubernetesのドキュメンタリーです。一通り勉強した後だと胸熱です。
Istio
Istioは日本語の情報がほぼありません。
以下は一応おすすめですが『GCPの教科書II 【コンテナ開発編】』で十分かも?
Terraform
DockerやKubernetesより優先度は下がりますがTerraformも要チェックです。
アーキテクチャ
KubernetesとかIstioを勉強する過程でイメージは把握できると思いますので、
勉強したことを整理、再確認するという意味で良いと思います。
感想
・断片的に勉強するより連休とかで一気に、かつ、継続的に勉強することをおすすめします。
※特にKubernetesは中途半端に勉強すると混乱します。体系的に把握することが大事。
・『Kubernetes完全ガイド』の著者曰く、
クラウドネイティブ以前は、インフラ側からアプリケーション開発・運用ニーズに対応するアプローチがなされてきた。…一方、クラウドネイティブは、「アプリケーションを動かすために最適なインフラをどう作ればいいか」を考えて生み出されてきた。
らしいです。Docker/Kubernetesはまさにアプリケーション側から「アプリケーションを動かすために最適なインフラ」を考えて生み出されてきたので、基盤エンジニア目線で考えないのがコツだと思います。
※クラウドネイティブ以前=AWS、クラウドネイティブ=Google Cloudで読替可能です。