Renderとは何か? モダンなクラウドアプリケーションプラットフォーム
Renderは、web service、静的サイト、background worker、cron job、データベースをホストし、Gitリポジトリから自動的にデプロイするクラウドアプリケーションプラットフォームです。
Renderは、よりシンプルなクラウドを目指しています。アプリの一般的な構成要素(web service、worker、静的サイト、データベース)を、Gitで駆動されるデプロイとともに単一のプラットフォームで提供します。より現代的で柔軟なPaaSとして位置づけられ、予測可能な料金とマネージドインフラを備えたHerokuの代替としてよく説明されます。
Renderがホストするもの
- Dockerfileまたはネイティブランタイムからのweb service。
- グローバルCDN配信を備えた静的サイト。
- background workerとスケジュールされたcron job。
- マネージドPostgreSQLとRedis。
Git駆動のデプロイ
リポジトリを接続すると、Renderは設定されたブランチへのpushごとにビルドしてデプロイします。pull requestのプレビュー環境をサポートし、トラフィックが移る前にhealth checkを行うダウンタイムなしのデプロイに対応しています。
Infrastructure as code
render.yaml blueprintで、すべてのサービスとデータベースを1つのファイルで定義でき、環境全体をリポジトリから再現できます。これにより、stagingや新しい環境の立ち上げが宣言的になります。
Renderの位置づけ
Renderは、静的ホスティング以上を求めつつも、生のクラウドやKubernetesほどの運用負担を望まないチームに適しています。一般的なアプリコンポーネントを、妥当なデフォルトとマネージドスケーリングとともにまとめており、上位tierではautoscalingも行います。
CI/CDにおける役割
Renderは、PRプレビューとhealth checkを行うrolloutとともに、pipelineとしてpush時に自動デプロイできます。より細かく制御するには、GitHub Actionsでテストを実行し、チェックが通った後にのみdeploy hookやAPI経由でRenderをトリガーし、required status checksでproductionを保護します。
重要なポイント
- Renderは、web service、静的サイト、worker、cron job、データベースをホストします。
- PRプレビューと、ダウンタイムなしでhealth checkを行うrolloutとともに、Gitからデプロイします。
- スタンドアロンのCI/CDにも、テスト後にGitHub Actionsからトリガーすることもできます。