Fly.ioとは何か? ユーザーの近くでコンテナを実行する
Fly.ioは、世界中のリージョンに配置された軽量なFirecracker microVMでアプリケーションを実行するため、単一のデータセンターではなくユーザーの近くで動作します。
Fly.ioはあなたのコンテナを受け取り、グローバルなリージョンのいずれかでmicroVM(Machineと呼ばれる)として実行します。その狙いは、地理的分散を伴うシンプルなデプロイ体験です。フルスタックで状態を持つあなたのアプリが、ユーザーの近くで動作します。PaaSの利便性とコードが動く場所への制御を融合させています。
MachineとmicroVM
FlyはあなたのコンテナイメージをFirecracker microVM内で実行し、高速な起動とVMレベルの分離を提供します。これらのMachineは、上下にスケールしたりゼロにスケールしたりでき、低レイテンシのために選択したリージョンに配置します。
デフォルトでグローバル
同じアプリを複数のリージョンにデプロイでき、FlyはAnycastを介してユーザーを最も近い正常なインスタンスへルーティングします。これにより、自分でマルチリージョン構成を組み立てることなく、グローバルに低レイテンシなアプリを容易に実現できます。
サポートするもの
- コンテナに入れられるあらゆるアプリ。
- 状態のための永続ボリュームとマネージドPostgres。
- アプリ間のプライベートネットワーク。
Flyを選ぶとき
Flyは、シンプルなデプロイに加えて、状態を持つサービスを含む地理的分散とフルスタックの制御を求めるチームに適しています。マネージドPaaSと生のクラウドの中間に位置し、ユーザーの近くで実行することについて強みがあります。
CI/CDにおける役割
pipelineはイメージをビルドし(あるいはFlyにビルドさせ)、flyctl deployでデプロイします。GitHub Actionsは、通常テストが通った後、secretとして保存されたFly APIトークンを使ってデプロイを実行します。FlyはMachine間でローリングリリースを行い、まず別のアプリでstagingすることもできます。
重要なポイント
- Fly.ioは、ユーザーに近いリージョンでコンテナをFirecracker microVMとして実行します。
- Anycastルーティングにより、グローバルに低レイテンシなアプリのデプロイが簡単になります。
- pipelineは、テストが通った後にGitHub Actionsからflyctlでデプロイします。