Fairy ' s

[08. March] 규모에 따른 운영 / TIL 본문

Devops Bootcamp

[08. March] 규모에 따른 운영 / TIL

berafairy 2023. 3. 8. 14:40

 

현대의 애플리케이션 배포는 웹 애플리케이션의 형태로 배포된다. 이는 서버(인터넷을 이용하는 모든 사람들에게 노출된 어떠한 컴퓨터)가 존재함을 의미한다.

 


웹 서비스에 접속하는 방법

  • 사용자 관점
    - URL을 웹 브라우저에 입력 ≫ 도메인을 IP 주소로 변환 ≫ 웹 서비스에 접속
  • 서버 관점
    - 사용자가 서버에 도달 ≫ 경로 (도메인 이름 이후에 등장하는 문자열) 처리 ≫ 웹 서버가 정해놓은 규칙(라우팅)에 따라 서버 내의 자원(HTML 페이지 또는 JSON과 같은 응답)을 사용자에게 제공

 

CI/CD 파이프라인 단계 - Deploy

Plan → Code → Build → Test → Release → Deploy → Operate

 


한 대의 서버에서 HTML 페이지를 제공할 때

동시에 수 천명이 한 대의 서버에 접속하여 HTML 페이지를 요구하고,
서비스를 제공하는 단일 서버가 인프라 문제로 갑작스럽게 서비스를 제공할 수 없는 경우
≫ 사용자 규모 증가와 인프라 문제 등에 대한 해결책 = 규모 확장

 


규모 확장

  • 수직 확장 (Vertical Scaling, Scale Up)
    - 서버의 성능을 높이는 방법 (CPU, RAM, 스토리지, 네트워크 I/O) / 트래픽이 적을 때
    - 수직 확장은 성능을 올릴 수록 무한대로 증가하는 트래픽을 따라잡을 수 없다.
    - 장애 대응이 어렵다.
    - 비용이 많이 든다.

  • 수평 확장 (Horizontal Scaling, Scale Out) / 분산 시스템
    - 더 많은 서버를 도입하는 방법 / 트래픽이 많을 경우
    - 장애가 발생했을 때 효율적으로 다른 컴퓨터로 전환할 수 있다.
    - 수평확장을 할 경우 모든 컴퓨터에 동일하게 업데이트를 해주어야 하는 등 불편함이 발생한다.
      ≫ 따라서 자동화가 필수적으로 필요하다.

  • 성능 : 높은 처리량(throughput), 낮은 대기 시간(latency) 등을 포함하는 개념
  • 확장성 : 증가하는 작업량을 처리할 수 있는가
  • 가용성 : 시스템이 정상적으로 사용 가능한 정도
  • 프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해두고 필요에 따라 즉시 사용할 수 있는 상태로 준비 시켜두는 것

 


CI/CD 파이프라인의 마지막 단계 - Operate

Plan → Code → Build → Test → Release → Deploy → Operate

  • 모니터링
    - 메트릭을 최소화, 고가용성 달성
    - 가설 검증 / 개선
Comments