私は仕事で新しいプロジェクトを始めており、おそらくプロジェクトのほぼ唯一の開発者になりますが、他の1人または2人の開発者は、既存のアプリケーションまたは単純なスクリプトをメインプロジェクトに統合する必要があります。このプロジェクトでは、小規模のバルクデータとストリーミングデータの取り込み/処理、およびイベント駆動型とオンデマンドの両方のコード実行を処理する必要があります。フレームワークの一部はCPUに強く依存し、一部はI / Oに強く依存します。ほとんどのデータは単一のマシン上に存在する必要がありますが、クラスターを作成してVMを接続し、利用可能な計算能力を向上させることができます。おそらく、このコアフレームワークが提供するサービスに依存する1つ以上の小さなWebアプリケーションがあるでしょう。主な言語は、ほぼすべてのPythonです。
私の質問は、開発の大部分を自分で行うことを考えると、このような取り組みにマイクロサービスアプローチを採用すべきか、モノリシックアプリケーションに固執すべきかということです。私の考えでは、マイクロサービス(Namekoを使用)は、異なる実行モデル(データパイプライン、イベント起動、オンデマンド、Webアプリケーションなど)を持つフレームワークの要素を自然に分離し、ワークロードと複数のプロセスにわたる通信。私の懸念は、おそらくシステムの実行を容易にするために必要な複数のサービス(rabbitmq、redisなど)を管理するKubernetesクラスター(私はDockerに精通していますが、Kubernetesにはまだかなり新しい)になることです。そして、潜在的に私たちが必要なすべての機能を実際に実装するための多くの小さなコードの塊
開発者が1人しかいないプロジェクトの場合、マイクロサービスはこのような複雑なシステムの開発と保守を引き続き簡素化しますか?代わりに使用することを検討する必要があるメソッド/システム/フレームワークはありますか、またはこの方法でシステムを設計する際のオーバーヘッドを削減するためにありますか?