서비스(kubernetics) 구성 설계

Application Service

리소스 구성

정보

Client / BFF / GW – BO, CC

  • BO와 CC는 클라이언트(PC 브라우저 + JavaScript)를 대상으로 하며, Server Side Rendering(SSR)을 지원하는 Next.js로 어플리케이션아 구성된다.

Client / BFF / GW – FO (PC, MO)

  • FO(PC, MO) Client는 Next.js로 개발되며 FO Gateway로 부터 Restful API 서비스를 제공받는다.

  • 위 그림은 논리적 구성을 표현하며 실제적으로는 Node.js를 이용한 SSR을 한다.

APIs

  • Springboot로 구현된 Restful API 서비스

  • order, member, common, goods, display, event와 bo API 서비스로 구성된다.

DBMS

  • 회원/주문 {order, member, common}

  • 상품/전시{goods, display}

  • 이벤트 {event}

  • Master(Read-Write)/Replica(Read Only) 구조로 이중화

  • ETL 혹은 배치잡을 이용한 table 동기화

Log Stack

리소스 구성

정보

OpenSearch

  • 수집되는 application 로그를 인덱싱하여 저장

Fluentd

  • Application의 로그를 수집하여 포매팅하여 OpenSearch에 전송

Kibana

  • OpenSearch의 로그를 개발자가 조회할 수 있는 UI 제공

EFK 서버 위치

  • fluentd : Kubernetes

  • OpenSearch : AWS(Managed Service)

  • Kibana : AWS(Managed Service)

로그 보관

  • OpenSearch와는 별개로 로그는 보관 기간에 따라 S3에 압축 보관

Telemetry

리소스 구성

정보

APM

  • 어플리케이션 성능 관리. Request 처리 성능의 병목 구간을 찾아 개선

  • APM제공 라이브러리를 함께 application에 구성 (* 사용 제품 미정)

Prometheous-Grafana

  • Pod에 metric(cpu, memory, network utilization 등) 모니터링

  • Istio envoy에서 제공

Kiali

  • MSA 간 호출의 처리량, 응답속도, 정상여부 상황을 트래픽 flow로 모니터링

  • Istio envoy에서 제공

Jaeger

  • 하나의 request 처리를 위한 MSA간의 호출, 처리 관계를 상세 분석할 수 있도록 기능 제공

  • Istio envoy에서 제공

Software 구성

리소스 구성

정보

Application

Springboot

Container

Docker

Orchestration

EKS(Kubernetes)

Servismesh

istio

CICD

Gitlab, Nexus, Jenkins, Sonarqube, Helm Chart, ArgoCD

Logging

EFK (OpenSearch, Fluentd, Kibana)

Telemetry

EKS

Batch Scheduler

Cronicle

APM

WhaTap or Scouter

DBMS

PostgreSQL

In-Memory

Redis(Session Clustering)

Software 목록

적용 영역

적용 솔루션

라이선스

버전 / 기타

** External Proxy (ALB)**

AWS ALB

AWS PaaS

Managed Service

Servie Mesh (G/W)

Istio

Apache License 2.0

Version 1.8 이상

Orchastration

Kubernetes

Apache License 2.0

Version 1.19 이상

Data Storage

S3(AWS)

AWS PaaS

Managed Service

CI/CD

Gitlab

MIT License

소스 통합

Jenkins

MIT License

CI/CD Pipeline

ArogCD

Apache License 2.0

Kubernetes Deployment

Helm

Apache License 2.0

Kubernetes Deployment

NexusOSS

Eclipse Public License

Library, Docker Image 저장소

Logging

Fluentd

Apache License 2.0

Application 로그 수집

OpenSearch

AWS PaaS

Managed Service, 로그 인덱스

Kibana

AWS PaaS

Managed Service, 로그 분석 화면

Telemetry

Prometheus

Apache License 2.0

서버 metric 수집

Grafana

Apache License 2.0

서버 metric UI 제공

Kiali

Apache License 2.0

API 호출 모니터링

Jaeger(Zipkin)

Apache License 2.0

API 호출 상세 분석

WhaTap (미정)

유료 라이선스

TP Monitor (미정)

DBMS

PostgreSQL

OSI License

Persistence DBMS

In-Memory DB

Redis

AWS PaaS

Managed Service, 세션 클러스터링

Kubernetes Apps

Deployment / Pod

Namespace

Workload

Node Label

Description

x2bee-fo

[고객사약어]-app

deployment

msa

Node.js Service for PC Web(Next.js Server Side Rendering)

x2bee-gw

[고객사약어]-app

deployment

msa

RestAPIs Service for Vue.js (Spring Cloud Gateway)

x2bee-bo

[고객사약어]-app

deployment

msa

Back Office Web Service (Spring Boot, Next.js)

x2bee-cc

[고객사약어]-app

deployment

msa

Customer Center Web Service (Spring Boot, Next.js)

x2bee-batch-mbod

[고객사약어]-app

deployment

msa

Batch service for member, order (Spring Batch)

x2bee-batch-gddp

[고객사약어]-app

deployment

msa

Batch service for goods, display (Spring Batch)

x2bee-api-member

[고객사약어]-app

deployment

msa

Member api service (Springboot, RestApis)

x2bee-api-order

[고객사약어]-app

deployment

msa

Order api service (Springboot, RestApis)

x2bee-api-goods

[고객사약어]-app

deployment

msa

Goods api service (Springboot, RestApis)

x2bee-api-display

[고객사약어]-app

deployment

msa

Display api service (Springboot, RestApis)

x2bee-api-event

[고객사약어]-app

deployment

msa

Event api service (Springboot, RestApis)

x2bee-api-common

[고객사약어]-app

deployment

msa

Common api service (Springboot, RestApis)

x2bee-api-bo

[고객사약어]-app

deployment

msa

Bo api service (Springboot, RestApis)

istio-ingressgateway

istio-system

deployment

msa

Istio ingress component

istio-tracing

istio-system

deployment

msa

istio tracing component

x2bee-batch-scheduler-mbod

[고객사약어]-app

deployment

msa

Batch scheduler for batch-mbod (node.js)

x2bee-batch-scheduler-gddp

[고객사약어]-app

deployment

msa

Batch scheduler for batch-gddp (node.js)

grafana

monitoring

deployment

msa

monitoring bi

prometheus

monitoring

deployment

msa

to gather pod metrics

kiali

istio-system

deployment

msa

to monitor msa calls flows

jaeger

istio-system

deployment

msa

to trace each msa call chain

마지막 업데이트