このプロジェクトについて
Encoreは、エンジニアとAIエージェントがインフラを待たずに本番システムを構築できるようにすることを目的としたインフラプラットフォームです。TypeScriptとGo向けのオープンソースインフラSDKと、クラウドインフラをオーケストレーションするオプションのマネージドプラットフォームの2つの部分で構成されています。
SDKを使うと、開発者はアプリケーションが必要とするリソース(SQLデータベース、Pub/Subトピック、オブジェクトストレージバケット、キャッシュ、cronジョブ、シークレット)をコード内で直接宣言できます。各宣言はEncoreのアプリケーショングラフのノードになります。`encore run`を実行すると、実際のPostgres、実際のPub/Subセマンティクス、分散トレーシングを備えたシステム全体がローカルで起動し、デプロイ時にはユーザー自身のAWSまたはGCPアカウントにクラウド上の同等リソースがプロビジョニングされます。READMEには、ローカルの同等物(Postgres、NSQ、ローカルファイルシステム、Redis)とAWS(RDS、SNS+SQS、S3、ElastiCache)およびGCP(Cloud SQL、Cloud Pub/Sub、GCS、Memorystore)のサービスの対応表が掲載されています。
設定はアプリケーションのセマンティクスから分離されています。リソースはコードで宣言し、環境固有の設定はEncoreプラットフォームのダッシュボード、クラウドプロバイダーのコンソール、またはTerraformプロバイダーを通じて管理します。ワークフローはローカル開発、PRごとのプレビュー環境(オプションでシード環境からデータベースを分岐可能)、本番デプロイに及びます。本番デプロイでは、Encoreがアプリケーショングラフと環境を差分比較し、不足しているリソースをプロビジョニングし、コードパスに基づいて最小権限のIAMを構成し、新しいコードをロールアウトします。
導入は段階的に行えます。既存のインフラはAWS/GCP SDKやサードパーティAPIを通じて通常どおり使用でき、サービスは1つずつ移行でき、デプロイは既存のKubernetesクラスターやVPCを対象にできます。READMEには、コードの99%は通常のGoまたはTypeScriptであると記載されており、移行ガイドへのリンクもあります。
記載されている制限には、言語サポート(現在はTypeScript/Node.jsとGo、Pythonは近日対応予定)、一般的なリソースに焦点を当てたインフラの範囲、完全自動プロビジョニングは現在AWSとGCPに限定されていること(Azureはロードマップ上、`encore build docker`によるセルフホスティングは任意のプロバイダーで利用可能)が含まれます。
このプロジェクトはAI支援開発も重視しています。`encore app create`はCursorやClaude Codeなどのツール向けのルールファイルを生成し、エージェントがサービス、API、データベース、トレースを検査できるMCPサーバーを構成できます。localhost:9400のローカル開発ダッシュボードでは、サービス、API、トレース、データベース、Pub/Subメッセージ、アーキテクチャ図を表示できます。オプションのマネージドプラットフォームは、プレビュー環境、最小権限のIAMによるプロビジョニング、分散トレーシング、メトリクスとログ、コスト分析、承認ワークフロー、自動生成されるサービスカタログとアーキテクチャ図を追加します。EncoreはMPL-2.0の下でライセンスされており、フレームワーク、パーサー、コンパイラー、ランタイム、CLIはオープンソースですが、マネージドデプロイプラットフォームは商用サービスです。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.