본격적인 Docker활용해보자 실제 구축편

in #architecture7 years ago (edited)

Infrastructure Architecture on Retail with docker

최종적으로 구축된 구성도다. 초기 부터 내가 모든 것을 설계 했다면 좀더 좋은 결과가 나왔을텐데 좀 아쉽다. 실제로 내가 관리 가능한 부분이 한정되었고 좀 더 개선 되었으면 하는 부분도 있지만 난 여기까지만

A. Main Service_Cloud Server(본부 서비스용)

I. LB_Load Balancing

Korea -VPN- All Branch
사용자가 접속할때 L4의 VIP로 접속 이때 Hash 알고리즘 선택

  • Round Robin
  • Least Connection
  • Fastest Response Time
  • Adaptive
  • Fixed
  • Hash

II. Dev Server : (개발 서버, 에러 재현, 최종 버전 이미지 생성용)

  • 본부 시스템, 점포_POS, 점포_Report, 개발, DB#1~5 으로 총 9 개의 서비스각 각각 포트로 실행됨
  • 추가 개발 소스파일은 git에 저장됨
  • 추가 개발 완료 시점 마다 commit 후 git repository를 Dockerfile를 통해 이미지 YYMMDD_V1.0_CSR(No) 형태로 빌드함(재배포 개념으로 버전관리)
  • 해당 이미지는 버전관리용으로 사용됨
  • 상세 개발내역은 CSR(No)로 관리
  • 실 서비스에 적용 뒤 문제가 생기면 전버전으로 Container 생성하여 rollback
  • CSR에 등록된 Ticket을 토대로, 문제가 생긴 서버의 DB와 Volume Container를 Image로 생성하여 DEV로 전송하여 동일 현상을 재현

III. DB Replication

  • Store Data가 Primary로 전달됨 -> NAS로 위치 변경하여 Primary, Secondary 에 마운트 시켜 해결
  • Backup DB Dump/day 및 OS Backup/day

B. CSR Server_ Docker Images Storage

  • CSR 서비스 운영
  • Docker Image 저장소(용도별, 일자별 Docker image 관리)
  • 표준 배포용 Dockerfile 관리
  • Standard Web Server , DB Image 관리
  • Application은 DEV에서 관리

C. Store Service

  • POS와 Report 서버의 분리(두 서버 차이점은 소스코드 한줄 다름)
  • Report 서버의 경우 POS서버는 실시간 Transaction용, 프로그래밍이 제대로 안되어 있어 메모리 이슈가 많이 생김. 큰 Transaction의 경우 모두 Report 서버를 사용.
  • Report 서버의 경우 Docker를 통해 사용
  • 차후 검증 완료 될시 POS 서버 또한 모두 Docker 사용 예정
  • Final 컨셉의 경우 Nginx를 통해 LB를 사용하여 이중화 삼중화 작업을 하려고 했으나 CPU 이슈가 발생되어 Tunning중 이라하고 귀찮아서 안한다고 한다
  • Report 서버에서 간혈적 문제 생김
  • Backup DB Dump/day, Raid 1, DB Replication

D. Network & DR

  • L3 장애시 : POS와 Server는 L2 통신 판매 문제 X(같은 subnet)
  • L2 장애시 : 2중화를 통해 A장비 장애시 B 장비로 감 문제 X
  • 인터넷 장애시 : FO 장애시 -> Radio 장애시 -> 4G(ISP와 터널링을 통해 기존 사용하던 IP 사용 단 안정적이지 못함)
  • POS 서버 장애시 : 소프트웨어 장애시 SOP, 하드웨어 장애시 교체(대체 장비)
Hardware

a. Report 서버를 Read Only -> Read - Write 으로 변경하고, 전체 사용모드로 변경 코드 2줄 수정 필요
b. HDD 에러시 하드 찰탁 뒤 사용 : Raid 1이라 하나 장애나도 정상 작동

  • 최근 Raid Controller 불량으로 서버 다운됨
Software

Monit이 일차적으로 확인하여 서비스 재시작 후 통보

  • DB Lock 이슈의 경우 해결 못함_관리자가 수동 재부팅 필요
    • 모든 장비에는 각각의 Data 포트가 있음 이는 각각 A와 B 스위치에 연결됨. -> 장애빈도가 거진 없기 때문에 장애시 수동변경
    • Server <-> Switch 의 경우 Bonding으로 연결

적용이후 아직까진 별 탈 없이 운영되고 있음. 현재까지 무장애 운영 중
기존에 비해 점포서버 설치 시간이 획기적으로 줄어듬

최종 적용 구성도

infra_design.PNG

최에에에종 이고 싶은 구성도

infra_design_02.PNG

Sort:  

Congratulations @liopark12! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemitBoard Ranking update - A better rich list comparator
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Congratulations @liopark12! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.13
TRX 0.34
JST 0.034
BTC 110524.91
ETH 4381.32
USDT 1.00
SBD 0.83