피드로 돌아가기
Building InternFlow (Part 1): Why I Chose a Microservice Architecture for a Student Project
Dev.toDev.to
Infrastructure

리소스 프로필 격리를 통한 시스템 가용성 및 응답성 최적화 설계

Building InternFlow (Part 1): Why I Chose a Microservice Architecture for a Student Project

Ayush Srivastava2026년 6월 28일3intermediate

Context

Job Crawler, AI 분석, RAG 서비스 등 서로 다른 리소스 요구사항을 가진 기능들을 단일 FastAPI 프로세스에서 운영할 때 발생하는 리소스 경합 문제 분석. 특히 무거운 AI 요청이 사용자 API 응답 속도를 저하시키는 병목 현상과 단일 장애 지점(Single Point of Failure)으로 인한 낮은 신뢰성 해결 필요.

Technical Solution

  • 리소스 특성에 따른 서비스 분리: Network I/O 중심의 Crawler, CPU/Memory 집약적인 AI Service, Latency 민감한 Web API를 독립된 프로세스로 격리
  • Docker Compose 기반의 서비스 오케스트레이션: 개별 Dockerfile 및 환경 변수 설정을 통한 서비스 간 독립성 확보
  • 내부 네트워크 통신 구조 설계: Shared Internal Network를 통한 서비스 간 통신과 동시에 개별 서비스의 실패가 전체 시스템으로 전이되지 않는 Isolation 구조 채택
  • 서비스 경계 조기 설정: 기능별 리소스 프로필 분석을 통해 초기 설계 단계에서 Microservice Architecture를 적용하여 향후 리팩토링 비용 최소화

- 기능별 리소스 프로필(Network-heavy, Compute-heavy, Latency-sensitive) 분석 및 분류 - 서로 다른 워크로드의 서비스가 동일한 Thread Pool을 공유하는지 검토 - 단일 프로세스 내 장애가 전체 서비스 중단으로 이어지는 구조인지 확인 - 초기 설정 비용보다 분리 후 얻는 디버깅 효율성과 확장성 이득 산출

원문 읽기