빌링 서비스 및 오픈소스 도구 Pass 연계 테스트 설계서 - SeungpilPark/uEngine-bill GitHub Wiki
빌링 시스템 Pass 배포 시스템 설계
- 외부 세계에 시스템을 보이지 않아야 하고 프론트 엔드 시스템을 만들거나, 혹은 백엔드 시스템 앞에 리버스 프록시가 있어야한다. PG 로부터 게이트웨이 알림 (예 : IPN / 내부 결제 알림)을 받아 처리해야하는 경우 API Gateway 을 통해 설정하도록 한다.
=> E-form 서비스가 프론트 엔드 시스템 역할을 하며, Api gateway(Server wrapper) 를 통해 PG 로부터의 게이트웨이 알림을 받아 처리한다.
- 부하 분산 장치 앞에 최소한 2 개의 인스턴스 (안정성을 위해)를 배포하도록 한다.
=> 다수의 Docker container 를 통해 구성하도록 한다.
- 마스터 및 슬레이브 인스턴스로 데이터베이스를 설정하고 정기적 인 스냅 샷을 생성하도록 구성한다.
=> AWS RDS 를 통해 처리하도록 한다.
- Auto scale 이 가능해야 한다.
=> AWS Docker 를 통해 처리하도록 한다.
빌링 시스템 Pass 배포 어플리케이션 체크리스트
- 업그레이드 배포 전 실행할 수있는 비즈니스 수준 회귀 테스트를 작성하도록 한다.
=> Active Deployment
- 서버와 데이터베이스의 시간대는 UTC 여야하며 NTP가 인스턴스간에 드리프트가 발생하지 않도록 적절히 구성되어야 한다.
=> AWS Docker 또는 EC2 에 NTP 를 동일한 Time Zone 으로 설정한다.
- 지불 게이트웨이와의 통합을 확인한다. UNKNOWN 상태에 있어야하는 결제 거래는 거의 없어야 한다. 플러그인이 자동으로 처리 할 수없는 경우 수동으로 처리할 수 있는 Payment Admin API 를 제공하도록 한다.
=> 자동으로 PG 사와 거래할 수 없을 경우 관리자는 Payment Admin API 를 통해 고객의 결제상태를 변경하고, 필요할 경우 고객과 직접 거래를 진행해야 한다.