728x90
반응형

백엔드 프로젝트 3

[msa-perf-lab] REST vs gRPC 성능 비교 및 InfluxDB + Grafana 시각화

드디어 성능 테스트에 필요한 모든 환경을 구축하고, 실제 테스트까지 해 보았다.트래픽 발생은 JS k6라이브러리를 활용했고, 시계열 데이터를 InfluxDB에 담아 Grafana와 연동해 시각화했다. InfluxDB + Grafana 컨테이너화 InfluxDB와 Grafana를 컨테이너로 올렸다. Docker에 준비된 이미지를 받아와 띄우고 기본 세팅만 하면 되기 때문에 크게 어렵진 않았다.기존 컨테이너 (Flask + Go(Gin) + PostgreSQL)와 하나의 compose 파일로 묶을까 했지만, 네트워크는 공유하되 테스트용 컨테이너는 분리해 관리하는 것이 나을 것 같아 따로 구성했다. InfluxDB, Grafana 세팅은 크게 건드린 건 없고 최대한 가볍게 띄웠다. 모든 컨테이너가 띄워졌다...

[msa-perf-lab] Flask <-> Go(Gin) gRPC 환경 세팅 및 내부 gRPC 통신 테스트

저번 글에서 Flask + PostgreSQL 환경 세팅 및 docker-compose 컨테이너화 까지 진행했었다.이번 글에서는 Go 서버 구현은 넘어가고, Flask Go gRPC 환경 세팅에 대한 내용을 다룰 것이다. 디렉터리 구조 우선 디렉터리 구조를 좀 손봤다. 작은 프로젝트가 될 거라서 구조는 신경쓰지 않으려고 했는데, 플라스크 기준으로 3가지 통신 방식이 있었다. 1. Flask가 요청 받고 직접 응답 (internal)2. Flask가 요청 받고 Go에게 Rest로 전달 (rest)3. Flask가 요청 받고 Go에게 gRPC로 전달 (grpc) 아직 제대로 시작도 안 했는데 벌써 복잡해져서, 아예 초반에 디렉터리 구조를 잡아버렸다.그나마 다행인 건, gRPC 서버(Go)에서는 gRPC ..

[msa-perf-lab] MSA 성능 실험 프로젝트 - Flask & Go(Gin)

프로젝트 개요Flask + Go(Gin) 기반 MSA 아키텍처 성능 실험 프로젝트를 시작한다. 서비스 목적이 아닌 성능 개선 및 측정/검증 프로젝트이며 UI/UX, 도메인, 비즈니스 로직 등을 철저히 제외하고 백엔드 고급 기술 + 성능 개선 및 측정에 목표를 둔다. 프로젝트 목적- 이력서 & 포트폴리오 업그레이드 및 개인 실력 향상 주요 내용- Flask & Go(Gin) MSA 아키텍처 설계 및 구현- Flask & Go(Gin) 서버 간 Rest/gRPC 성능 측정- Flask 단일 vs Flask & Go 성능 측정 (CPU 집약적 연산, 외부 API 호출, 대용량 데이터 처리 등)- Docker/Docker compose 활용한 컨테이너 그룹화 및 Kubernetes 연동 컨테이너 오케스트레이션-..

728x90
반응형