Fairy ' s
[08. March] 규모에 따른 운영 / TIL 본문
현대의 애플리케이션 배포는 웹 애플리케이션의 형태로 배포된다. 이는 서버(인터넷을 이용하는 모든 사람들에게 노출된 어떠한 컴퓨터)가 존재함을 의미한다.
웹 서비스에 접속하는 방법
- 사용자 관점
- 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
- 모니터링
- 메트릭을 최소화, 고가용성 달성
- 가설 검증 / 개선
'Devops Bootcamp' 카테고리의 다른 글
[10. March] 리눅스 #2 / TIL (0) | 2023.03.10 |
---|---|
[09. March] 리눅스 #1 / TIL (0) | 2023.03.09 |
[07. March] 개발 프로세스 / TIL (0) | 2023.03.07 |
[Book] 비전공자를 위한 이해할 수 있는 IT지식 #2 (0) | 2023.03.04 |
[Book] 비전공자를 위한 이해할 수 있는 IT 지식 #1 (4) | 2023.03.02 |
Comments