과 같은 첨단 데이터 서비스를 만들 때 FXMacroData, 기본 API 프레임워크는 단일 가장 중요한 엔지니어링 결정입니다. 우리의 임무는 간단합니다: 즉시 신뢰성 높은 대대 경제 및 외환 데이터를 제공 거래자, 양, 그리고 전세계의 핀테크 팀.
이를 달성하기 위해 우리는 빠른, 원생적으로 비동기적이고, 구글 클라우드 실행- 표준 경쟁자는 컵 그리고 고하지만 결국 우리는 선택했습니다 FastAPI여기 기술적인 분해가 있습니다. 왜 FastAPI가 클라우드용으로 설계된 성능이 뛰어난 현대 데이터 API를 만드는 데 확실한 승자가 되었는지에 대한 설명입니다.
API 의 의무: 성능 및 서버 없는 효율성
우리의 핵심 요구 사항은 높습니다. 동시행성거시 경제 데이터 서비스는 I/O에 묶여 있습니다. API는 데이터베이스 (Firestore) 또는 다른 내부 네트워크 서비스가 데이터를 반환하도록 기다리는 데 대부분의 시간을 보내고, CPU 계산을 수행하지 않습니다.
- 플래스크 (동시/WSGI): 표준 플래스크는 동기화되어 있습니다. 차단 이 비효율성은 컴퓨팅 자원을 낭비하고 단일 서버가 비용 효율적으로 처리 할 수있는 동시 사용자 수를 제한합니다.
- 고 (중급급 모노리트): 강력한 반면, Django는 의견이, 배터리 포함 프레임워크입니다. 순수한 데이터 API 백엔드, 그것의 내장 ORM, 템플릿, 세션 관리 과잉살인이 대규모 아키텍처를 데이터 엔드포인트에 서비스하기 위해 배포하는 것은 비효율적입니다. 특히 클라우드 러닝과 같은 유연하고 사용 당 지불 환경에서요.
️ FastAPI: 최적의 클라우드 확장을 위해 네이티브 아시크
FastAPI는 현대적인 ASGI 표준 비동기 (async/await) 이 차단이 없는 아키텍처는 우리가 필요로 하는 중요한 성능 우위를 제공했습니다.
- 차단되지 않는 I/O: FastAPI 작업자가 I/O 요청을 시작하면 (예: Firestore에서 데이터를 기다리는 경우) 차단하는 대신 즉시 다른 대기 요청을 처리할 수 있습니다. 수백 개의 동시에 요청 최소한의 자원을 사용해서
- 서버 없는 통합: 가볍고 ASGI 네이티브라는 것은 FastAPI가 서버 없는 컨테이너의 짧은, 자원이 제한된 수명 내에서 완벽하게 회전하고 실행된다는 것을 의미합니다. 클라우드 런의 확장 모델, 우리는 단지 정확한 계산 시간에 대해서만 지불합니다.
실제적인 차이점: 코드 내 I/O 경쟁
내티브 아시크론 프로그래밍의 이점은 여러 내부 또는 외부 소스에서 데이터를 동시에 요청할 때 즉시 분명합니다.
➡️ 플라스크 (동시적인 예제)
사형 집행 순차적으로총 실행 시간은 합계 두 번의 지연 (약 2초) 의 두 번째 호출은 첫 번째가 완료 될 때까지 기다려야합니다.
# Flask (Synchronous)
import time
from flask import Flask
app = Flask(__name__)
@app.route("/")
def sync_example():
time.sleep(1) # Wait for Source A
time.sleep(1) # Wait for Source B
return "Total Time: ~2.0s"
➡️ FastAPI (아시크론 예제)
사형 집행 동시에총 실행 시간은 최대 두 가지 지연 (약 1초) 의 두 가지 I/O 작업은 동시에 시작됩니다.
# FastAPI (Asynchronous)
import asyncio
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def async_example():
await asyncio.gather(
asyncio.sleep(1), # Wait for Source A
asyncio.sleep(1) # Wait for Source B
)
return "Total Time: ~1.0s"
개발자 생산성 및 신뢰성
원시 성능과 클라우드 아키텍처를 넘어, FastAPI는 우리의 개발 프로세스를 크게 개선했습니다:
- 자동 검증: 을 이용합니다 피단틱 모델 그리고 표준 파이썬 타입 힌트 자동 데이터 검증, 연쇄화 및 무연속화. 이것은 보일러플릿 코드를 극적으로 줄이고 실행 시간 데이터 타입 오류를 사실상 제거합니다.
- 자동 문서화: FastAPI는 자동으로 상호 작용, 표준화 된 생성 OpenAPI 문서 (스와거 UI)이 FXMacroData API를 통합하는 우리의 사용자 퀀트 개발자 및 핀테크 팀에 대한 귀중한 것입니다.
요약하자면, FastAPI를 선택하면 Google Cloud Run의 사용 당 지불 효율성과 완벽하게 일치하는 고성능, 상태 없는 API를 만들 수 있었습니다. 이는 기술적으로 우월하고, Django와 같은 과잉 엔지니어링 프레임워크보다 현대 데이터 마이크로 서비스에서 훨씬 비용 효율적입니다.
만약 여러분이 새로운 데이터 API를 만들고 있다면 속도, 효율성, 클라우드 네이티브 확장성에 초점을 맞추고 있다면 선택은 분명합니다. FastAPI와 비동시로 이동-
FXMacroData 엔지니어링 팀