🐡
ワーカーの開発はGCPのCloudTasksとCloudSchedulerがDX最高
皆様、ワーカーを書く時ってどういう構成にしていますかね?
昔だとRabbitMQとか使って、常駐しているサーバーからPull的に取って処理する…とかですかね。
クラウドがどんどん便利になっている昨今 古き良き手法
AWS SQS
とかも業務で使ってみましたが、その中で最もDXが良かったのが
GCP CloudTasks と CloudScheduler
でした。
それってなーに?
CloudTasks
GCPで用意されているマネージドなタスクキュー
多くの場合、お金はほぼかからない
CloudScheduler
GCPで用意されているcron
皆がcronに求めてる機能が一通りあって、管理がすごく楽
多くの場合、お金はほぼかからない
今北お。何が良かったのが3行で
- トリガーがHTTPなので開発&デバッグがしやすい
- Queueの管理がコードで出来てCI/CDも出来る
- GCPの各機能と連携されているので管理や構築が超ラク
トリガーがHTTPなので開発&デバッグがしやすい
とにかくこれが最高でした。
普段どおりAPIを作るだけでいいし、手元で動作確認するのもデバッグノウハウが世に溢れているHTTPなので困ることがない。
pull実行ではないので、実行先のサーバーがオートスケールな構成になっている等の高負荷時に対応できる構成である必要があると思います。
Pull型も簡単に作りたいよ
Cloud Pub/Sub
+ Appengine Flexible Custom Runtime
の組み合わせが一番シンプルかと思います。
AppengineのCustomRuntimeなら、好きなアプリケーションをDocker形式で記述すればインストールできるし、内容もHTTPサーバーを建てる必要は無いです。
これとCloud Pub/SubというAWS SQSのGCP版のようなものを組み合わせれば、従来のPull型の構成にすることが出来ます。
Discussion