Railwayとは何か? アプリとインフラを素早くデプロイする
Railwayは、最小限の設定でアプリ、データベース、補助サービスを実行し、GitまたはCLIからデプロイするデプロイプラットフォームです。
Railwayは、可能な限り少ないセットアップでアプリとその依存関係を動かすことに重点を置いています。リポジトリを接続するか、templateからデータベースを追加すると、Railwayがそれらの構成要素をプロビジョニングして連携させます。スムーズな開発者体験、サービスのインタラクティブなcanvas、そして素早い環境作成を重視しています。
サービスとプロジェクト
Railwayのプロジェクトは、アプリ、データベース、cacheなどのサービスをまとめます。Railwayはアプリのビルド方法を(多くの場合Nixpacksやdockerfile経由で)検出し、サービス間の環境変数を自動的に配線して、手動設定を減らします。
データベースとtemplate
- ワンクリックのPostgreSQL、MySQL、Redisなど。
- 一般的なスタックを素早くデプロイするtemplate。
- サービスをリンクする自動的な環境変数。
環境
Railwayは、productionを反映した分離された環境(たとえばブランチごとやstaging用)を容易に作成できます。これにより、変更を昇格させる前に現実的なインフラに対してテストできます。
Railwayの位置づけ
Railwayは、スピードとシンプルさを重視するサイドプロジェクト、プロトタイプ、小規模チームに人気です。ほとんどのインフラの決定を抽象化し、きめ細かい制御と引き換えに、リポジトリから依存関係とともに動作するアプリまでの素早い道のりを提供します。
CI/CDにおける役割
Railwayは、PR環境を含め、push時に自動デプロイできます。より細かく制御するには、GitHub Actionsでテストを実行し、それらが通った後にsecretとして保存したproject tokenを使ってRailway CLIでデプロイします。Required status checksにより、productionへのデプロイ前にmergeを保護できます。
重要なポイント
- Railwayは、最小限の設定でアプリとそのデータベースをデプロイします。
- サービスを自動的にリンクし、ブランチごとの環境を容易にします。
- pipelineはpush時に自動デプロイするか、CIの後にRailway CLIでデプロイできます。