저는 새 프로젝트를 시작하고 있으며 프로젝트의 거의 유일한 개발자 일 것입니다. 그러나 한두 명의 다른 개발자가 기존 응용 프로그램이나 간단한 스크립트를 기본 프로젝트에 통합해야합니다. 이 프로젝트는 소규모 대량 및 스트리밍 데이터 수집 / 처리, 이벤트 중심 및 주문형 코드 실행을 모두 처리해야합니다. 프레임 워크의 일부 부분은 CPU에 바운드되고 일부 부분은 I / O에 바운드 될 수 있습니다. 대부분의 데이터는 단일 머신에 있어야하지만 사용 가능한 컴퓨팅 성능을 높이기 위해 클러스터를 생성하고 VM을 연결할 수 있습니다. 이 핵심 프레임 워크가 제공하는 서비스에 의존하는 하나 이상의 소규모 웹 응용 프로그램이있을 수 있습니다. 주요 언어는 거의 모든 것을위한 Python입니다.
내 질문은 내가 직접 개발의 대부분을 할 것이라는 점을 감안할 때 이와 같은 노력에 마이크로 서비스 접근 방식을 취해야하는지 아니면 모 놀리 식 응용 프로그램을 사용 해야하는지 여부입니다. 제 생각에는 마이크로 서비스 (Nameko를 사용)가 서로 다른 실행 모델 (데이터 파이프 라인, 이벤트 시작, 주문형, 웹 애플리케이션 등)이있는 프레임 워크 요소와 작업 부하를 분산시키는 명확한 방법을 자연스럽게 분리 할 수 있다는 것입니다. 여러 프로세스에 걸친 커뮤니케이션. 내 걱정은 아마도 Kubernetes 클러스터로 끝날 것입니다 (나는 Docker에 익숙하지만 Kubernetes에 상당히 익숙합니다), 시스템 실행을 촉진하기 위해 필요한 여러 서비스 (rabbitmq, redis 등), 잠재적으로 필요한 모든 기능을 실제로 구현하기위한 많은 양의 작은 코드 덩어리
개발자가 한 명 이상인 프로젝트의 경우에도 이와 같은 복잡한 시스템의 개발 및 유지 관리를 마이크로 서비스가 단순화합니까? 대신 사용하거나 시스템 설계와 관련된 오버 헤드를 줄이기 위해 고려해야 할 방법 / 시스템 / 프레임 워크가 있습니까?