Skip to content
Junha edited this page Nov 12, 2023 · 66 revisions

목차

...

1. Instruction


성능 테스트를 위한 티켓팅 서비스 구현

  • 웹 Best Practice 고민 및 적용
  • K6를 활용한 Spike Test 수행
  • Prometheus 및 Grafana를 통한 모니터링 및 개선사항 보고서 작성

2. Architecture

Infra

image

Terraform을 통해 전체 배포 환경 구현

NAT Gateway 비용 이슈로 Public Subnet Node Group 구성 사용

ALB 비용 이슈로 인해 ALB 삭제 후 Nginx Ingress(Baremetal) 구축

Performance Test

result

성능 테스트 환경 구축에 대한 고민

  • 테스트 도구, 성능테스트 자동화, 성능테스트 부하발생 환경, 테스트 결과 출력 및 분석

성능테스트 시나리오 상세 설명

대기열 시스템

image

대기열 시스템 설계 이슈

  • 갱신 누락 고려, Non-blocking API, 대기열 데이터 구조 등

CD Pipeline

image

3. 성능 테스트 보고서

SignIn Spike Test 보고서

  • 100만건 데이터 단일 컬럼에 대한 인덱스 추가 후 Slow Query 개선
  • 암호화 CPU 성능 이슈: CPU 코어수 증가 및 암호화 난이도 조절에 따른 변화 관찰

JVM Warm Up Test 보고서

  • 프로세스 생성 후 동일 테스트를 반복함으로 JVM CodeHeap 및 성능 변화 관찰

인터파크 트래픽 0.001% Spike Test 보고서

  • 천만건 데이터 SELECT COUNT(*)NoOffset 구현으로 개선
  • 하나의 자원(=Event)에 대한 Lock 경쟁 발생에 대한 고민 및 대기열 시스템 도입 후 테스트

인터파크 트래픽 0.01% Spike Test 보고서 (WIP)

  • Connection 쓰레드 생성에 따른 부하를 쓰레드 최소개수 단순 증가로 개선
  • DB Connection Pending을 Pool 개수 증가로 개선
  • 이벤트 페이지 조회 캐싱으로 개선

4. 이슈 목록

인프라

성능 테스트 환경 구축

백엔드

팀원 소개


진행 기간 : 2023.07.01 ~ 2023.11.12 (회의록)


이름 Github 기술 스택
Backend https://github.com/f-lab-clone/ticketing-backend Kotlin, Spring-boot, Testcontainers, K6
Infra https://github.com/f-lab-clone/ticketing-infra AWS, EKS, Terraform, Helm, Argocd, Prometheus, Grafana
Queue System https://github.com/f-lab-clone/queuing-system Node.js, Redis

이름 역할 Github
안준하 Project Leader / Infra junha-ahn
임하영 Infra hihahayoung
박정섭 Backend ParkJeongseop
김민준 Backend minjun3021

하차자 제외

프로젝트 시작 일기를 보면 알 수 있듯, 모두 현역 군인 신분으로 프로젝트를 진행했나갔습니다.

Clone this wiki locally