最近,「クラウド系技術のイントロ講座があるといいのかな」と思うようになった。 世の中にある講座が,みんな「AWSでやるとこうなる」というところからスタートしていて,オンプレ時代からの連続性はまだ充実していない気がする。 ということで学習トピックの構造化からスタート。
クラウドとオンプレミス
クラウドのメリット
クラウドの使いどころ
- スモールスタート
- 変化が予測できない分野
IaaS,PaaS,SaaS
マイクロサービスとモノリス
マイクロサービスの特徴
- インタフェース
- サービス単位のデプロイ
マイクロサービスのメリット
- 技術選択の柔軟性
- 変更容易性
- スケーラビリティ
マイクロサービスのデメリット
- 適切なサービス分割は簡単ではない
- サービス横断的機能の実現 -- セキュリティ
- パフォーマンス
仮想化技術
仮想化の対象
サーバ
- ホストOS
- ハイパーバイザ
- コンテナ
- サーバレス
ネットワーク
- VLAN
- オーバーレイネットワーク
- ストレージ -- SANとNAS
仮想化のメリット
- 変更容易性
- スケーラビリティ
- コスト効率
- 可用性
- 物理障害と論理障害の分離
サーバレス
サーバレスのメリット
- コスト効率::利用しただけ課金(待機には無課金)
- サーバ管理不要
- 開発リソース削減
- スケールアウトしやすい::基本的にステートレスで作成する
サーバレスのデメリット
- 標準化されていない
- ローカルテストしにくい
Cloud-Nativeな設計
機能
ドメイン駆動設計
インタフェース
WebAPI
- REST API
- gRPC
セキュリティ
認証と認可
- OAuth
- OpenID Connect
データベース
- RDB
- NoSQL
ネットワーク
- ロードバランサ
- プロキシ
- ファイヤウォール
- DNS
コンテナ
- Docker
- Kubernetes
開発支援
- DevOps
- CI/CD