我正在开始一个新的项目,尽管可能需要一个或两个其他开发人员将现有的应用程序或简单的脚本集成到主项目中,但我几乎将是该项目的唯一开发人员。该项目需要处理小规模的批量和流数据的摄取/处理,以及事件驱动和按需代码执行。框架的某些部分受CPU限制,而某些部分则受I / O限制。大多数数据必须存在于单个计算机上,但是我们能够创建集群并连接虚拟机以增加可用的计算能力。可能会有一个或多个小型Web应用程序依赖于此核心框架提供的服务。主要语言将是适用于几乎所有内容的Python。
我的问题是,考虑到我将自己完成大部分开发工作,我是否应该采用微服务方法来进行此类工作或坚持使用单一应用程序。我的想法是,微服务(使用Nameko)在具有不同执行模型(数据管道,事件启动,按需,Web应用程序等)的框架元素之间提供了自然的分隔,并提供了一种清晰的方式来分配工作负载和跨多个流程的沟通。我担心的是,我可能最终会使用一个Kubernetes集群来管理(我熟悉Docker,但对于Kubernetes来说还很陌生),为了促进系统运行,需要多个服务(rabbitmq,redis等),并可能有很多小的代码块来实际实现我们所需要的所有必要功能
对于只有一个开发人员的项目,微服务是否仍会简化这样的复杂系统的开发和维护?我是否应该考虑使用其他方法/系统/框架,或者减少以这种方式设计系统所涉及的开销?