회사에서 협력사와 데이터 파일 교환에 SFTP + NFS 조합을 쓰는 걸 보고 생각해본 서비스 아이디어.

애플리케이션에서 컨트롤 할 수 없는 SFTP, NFS 같은 시스템 서비스나 인프라 서비스를 매우 싫어하는 게 가장 큰 이유이지만.

경우에 따라 괜찮은 선택이지만, 대부분은 별로다. 특히 Kubernetes 같은 노드간 자동 부하분산을 실행하는 컨테이너 클러스터에서는 파일 조작은 최악의 선택이다.

기존 설계의 문제점

  • sftp, nfs는 애플리케이션에서 관리할 수 없다.
  • 관리포인트 및 스테이크홀더가 늘어난다.
  • 확장이 어렵다.

설계

사용 시나리오

  1. 파트너가 업로드 디렉토리를 요청한다.
  2. 시스템이 드랍박스에 디렉토리를 생성하고 파트너 계정에 업로드 권한을 부여한다.
  3. 생성된 디렉토리 정보를 파트너에게 전달한다.
  4. 파트너가 디렉토리에 파일을 업로드한다.
  5. Dropbox가 웹훅을 실행해 시스텡에 업로드 정보를 전달한다.
  6. 시스템이 파일을 다운로드 해서 처리한다.
  7. 파일 처리 결과를 Dropbox에 업로드한다.
  8. 파트너가 처리 결과를 다운로드한다.

Use case

use case

BPMN

플로우차트보단 알아보기 쉬울 것 같아 BPMN 표기법으로 시나로오를 정리해봤다.

BPMN은 잘 모른다. 엄격한 표기법을 사용한 건 아니고, 그냥 알아볼 수 있는 정도로만 정리.

BPMN

참고