エンタープライズアプリケーションでは、時間指定データ処理、ファイル処理、レポート生成など、定期タスクを実行する必要が頻繁にあります。これらのタスクには、構成と実行に関する高い基準が求められます。Alibaba Cloud の分散タスクスケジューリングサービスである SchedulerX と、オープンソースソリューションである XXL-JOB は、どちらも強力なスケジューリング機能を提供します。このトピックでは、お客様のニーズに最適なバージョンを選択できるよう、SchedulerX エディションと XXL-JOB エディションの基本について説明します。
SchedulerX エディションと XXL-JOB エディションの選択方法
SchedulerX エディションは、Alibaba Cloud が開発した分散タスクスケジューリングプラットフォームであり、独自のプログラミングフレームワークと通信プロトコルを使用します。幅広いタスクタイプをサポートし、主流のオープンソースのタスクスケジューリングクライアントと互換性がありますが、SDK の置き換えが必要です。XXL-JOB エディションは、SchedulerX をカーネルとして使用し、オープンソースの通信プロトコルと互換性を持たせて XXL-JOB クライアントをホストするソリューションです。このエディションでは、非侵入型の接続が可能です。主な違いは次のとおりです。
接続タイプ:SchedulerX エディションはオープンソースの XXL-JOB と互換性がありますが、クライアント SDK を変更する必要があります。XXL-JOB エディションではコードの変更は不要です。アプリケーションを再デプロイする際に、-D パラメーターを使用して接続構成を置き換えるだけです。
課金方法:SchedulerX エディションはサーバーレスバージョンであり、タスク数とスケジューリング頻度に基づいて課金されます。XXL-JOB エディションはインスタンスベースのバージョンであり、リクエストされたリソース仕様に基づいて課金されます。
パブリックネットワークアクセス:パブリックネットワークにデプロイされたアプリケーションには、SchedulerX エディションのみを選択できます。XXL-JOB エディションはパブリックネットワークアクセスをサポートしていません。
アプリケーション言語:Java または Go 以外のアプリケーションには SchedulerX エディションを選択してください。XXL-JOB エディションは、Java または Go の SDK による接続のみをサポートしています。SchedulerX エディションは、スクリプトタスク、HTTP タスク、Kubernetes (K8s) タスクもサポートしています。
Alibaba Cloud 分散タスクスケジューリングを選択する理由
高可用性:高可用性 (HA) アーキテクチャとタスクのマルチバックアップメカニズムを採用しています。長年にわたる Alibaba グループの「独身の日 (ダブルイレブン)」イベントや災害復旧訓練でその実績が証明されています。これにより、ノード障害が発生した場合でも、タスクの自動的な切り替えと回復が保証されます。
高性能:秒レベルのスケジューリングをサポートしています。その軽量な分散コンピューティングにより、ほぼリアルタイムのビッグデータバッチ処理を完了できます。
セキュリティ保護:多層的なセキュリティ保護とマルチテナントデータ分離を提供します。また、権限コントロールもサポートしています。Alibaba Cloud の多層的なセキュリティ保護に基づき、悪意のある攻撃を効果的に防ぎます。
フルマネージドかつ低コスト:このサービスはフルマネージドであり、マシンや手動による O&M (運用保守) コストが不要です。接続プロセスはシンプルで便利です。
すぐに利用可能:オープンソースの XXL-JOB のすべてのバージョンと 100% 互換性があります。自社構築の XXL-JOB タスクをクラウドにワンクリックでインポートできる移行ツールを提供します。これにより、コードを変更することなくスムーズな移行が可能です。
オープンソースの機能強化:Alibaba Cloud SchedulerX をカーネルとして使用し、時間指定スケジューリング、ワークフローオーケストレーション、流量制御、O&M (運用保守) 操作など、オープンソースバージョンよりも強力な機能を提供します。
機能
分散タスクスケジューリングプラットフォームを使用して、定期タスクの管理、タスク実行レコードのクエリ、操作ログの表示ができます。
SchedulerX エディション
SchedulerX エディションは、次の機能をサポートしています。
定期タスクの管理:定期タスク、遅延タスク、周期的タスクをサポートします。
ワークフローオーケストレーション:視覚的なワークフローオーケストレーションをサポートし、タスクの依存関係管理を簡素化します。
複数の定期タスクタイプをサポート:時間指定スケジューリングとワークフロースケジューリングのために、さまざまな言語に基づいた複数のタスクタイプをサポートします。
Java
Java アプリケーションの場合、Java SDK を使用して接続し、Java アプリケーション内の特定のメソッドを実行できます。詳細については、「Java タスク」をご参照ください。
スクリプトタスク
オンラインでスクリプトを作成して実行できます。サポートされているスクリプトには、Shell と Python があります。詳細については、「スクリプトタスク」をご参照ください。
Golang
Go アプリケーションの場合、Go SDK を使用して接続し、Go アプリケーション内の特定のタスクを実行できます。詳細については、「Golang タスク」をご参照ください。
XXL-JOB
このエディションは XXL-JOB タスクと互換性があります。コードを変更することなく XXL-JOB タスクをホストできます。詳細については、「XxlJob タスク」をご参照ください。
DataWorks
このエディションは Alibaba Cloud DataWorks タスクと統合されています。DataWorks タスクをワークフローに含めて、他のタスクとオーケストレーションすることができます。詳細については、「DataWorks タスク」をご参照ください。
Spring
このエディションは Spring の @Scheduled アノテーションと互換性があります。コードを変更することなく Spring の定期タスクをホストできます。詳細については、「Spring タスク」をご参照ください。
Http
HTTP サーバーレス:クライアント接続は不要です。タスクのスケジューリングは、パブリックドメイン名を公開することで実行されます。詳細については、「HTTP タスク」をご参照ください。
HTTP エージェント:VPC クラスター内で schedulerxAgent を接続する必要があります。スケジューリングは、内部ドメイン名または IP アドレスを介して実行できます。
K8s
このエディションは K8s スクリプトタスクをサポートしています。また、ネイティブ K8s Job および CronJob とも互換性があります。詳細については、「K8s タスク」をご参照ください。
分散コンピューティング:ビッグデータバッチ処理をサポートする、シンプルで使いやすい分散プログラミングモデルを提供します。
タスクの監視とアラート:包括的な監視メトリクスとさまざまなアラートメソッドを提供し、O&M (運用保守) エンジニアがオンラインの問題を迅速に特定して解決するのを容易にします。
タスクスケジューリング:XXL-JOB
XXL-JOB エディションは、次の機能をサポートしています。
定期タスクのスケジューリング:定期タスクの作成、管理、スケジューリングをサポートします。
流量制御:タスクの同時実行制御とアプリケーションレベルの流量制御をサポートします。この機能により、単一タスクで同時に実行できるインスタンスの最大数を制限し、単一アプリケーションで同時に実行されるタスクの数を制御できます。
クラウドへの移行:自社構築の XXL-JOB インスタンスからすべてのタスクをクラウドバージョンにスムーズに移行するための移行ツールを提供します。
タスクの監視とアラート:包括的な監視メトリクスとさまざまなアラートメソッドを提供し、O&M (運用保守) エンジニアがオンラインの問題を迅速に特定して解決するのを容易にします。
分散タスクスケジューリングの開始
クライアントアプリケーションを SchedulerX に接続する方法については、「クライアントを SchedulerX にすばやく接続する」をご参照ください。
SchedulerX をすぐに使い始めるには、「指定したホストで定期 Shell スクリプトタスクを実行する」をご参照ください。
アプリケーションを XXL-JOB エディションにすばやく接続する方法については、「10分で XXL-JOB を体験する」をご参照ください。
Java または Golang アプリケーションをゼロから構築し、XXL-JOB エディションに接続する方法については、「Java/Golang アプリケーションをゼロから構築して XXL-JOB に接続する」をご参照ください。
参考資料
XXL-JOB エディションのバージョン選択と課金については、「XXL-JOB エディションのバージョン選択と課金」をご参照ください。
XXL-JOB とオープンソースプロダクトの比較については、「XXL-JOB とオープンソースプロダクトの比較」をご参照ください。
SchedulerX の課金については、「SchedulerX インスタンスの課金」をご参照ください。
MSE SchedulerX と自社構築のオープンソースソリューションの比較については、「MSE SchedulerX と自社構築のオープンソースソリューションの比較」をご参照ください。