CS/Cloud

[클라우드] 스케일링, 로드밸런싱, Cloud Native Application

0m1n 2023. 2. 2. 15:45
728x90
반응형

스케일링, 로드밸런싱

  • 문제 : 스케일 로드밸런싱은 동일한 내용의 신규 파드를 다른 노드들에 배치하는 것이다.
  • 스케일링 : 하나의 pod에 용량들을 증대시키는 역할, 한 노드안에 있는 컨테이너(pod) 같은 노드에 편입시켜서 한 노드에 여러개의 pod 만드는것
  • 로드밸런싱 : 스케일링을 진행해서 한 노드에서 2개 pod 만든 다음 사용자들을 분산시켜서 여러 사용자들이 동시에 접근할 수 있도록 용량 늘리는 기법 다른 노드로 분산시키는 기법
  • 공통 목적 : 용량을 늘려 여러 사용자들을 한 번에 받고 여러 일들을 더 많이 수행할 수 있도록 만듦

롤링 업데이트 : 스케일업된 파드를 롤백하거나, 업데이트하게 될 때 사용(서비스의 중단 없는 사용)

  • 새로운 파드 만든다.
  • 업데이트 한다.
  • 기존 버전 삭제한다.

배포 종류 3가지

  • Blue-Green deployment
    • 동일 서버를 미리 구축한 뒤, 라우팅을 순간적으로 전환하여 새로운 버전 배포
    • 빠른 롤백과 테스트에 유리
    • 자원이 두배로 필요하여 비용이 많이 발생
  • Rolling Update deployment
    • 새로운 버전의 어플리케이션으로 서서히 배포하는 전략
    • 인스턴스를 정해놓은 단위로 순차적으로 배포
    • 가용 자원이 제한적일 때 유리
    • 배포 중 인스턴스 수가 감소됨으로 서버 처리 용량을 고려해야 함
  • Canary deployment
    • 카나리아 새처럼 빠르게 미리 위험을 감지하여 대응할 수 있도록 배포
    • 구버전의 서버와 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단하기 때문에 오류율 및 성능 모니터링에 유용

Cloud Native Application

4요소

  • Devops
  • Continous Delivery(CI CD)
  • Mirco services
  • containers

장단점

  • 장점
    1. 최적화된 언어와 아키텍쳐 선택
    2. 탄력적인 시스템 운영
    3. 독립적 확장성
    4. 손쉬운 개발
    5. 스크럼 구성을 통한 배포
  • 단점
    1. 복잡성 증가
    2. 데이터 중복성 증가
    3. 종단간 테스트의 어려움

12 factors

  • 코드 베이스 : 버전 관리가 가능한 하나의 코드베이스와 이를 이용한 다양한 배포
  • 종속성 : 명시적으로 선언되고 분리 된 종속성
  • 설정 : 환경에 저장 된 설정의 이용
  • 백엔드 서비스 : 백엔드 서비스를 연결된 리소스로 취급
  • 빌드, 릴리즈, 실행 : 철저하게 분리된 빌드와 실행 단계
  • 프로세스 : 애플리케이션을 하나 혹은 여러 개의 무상태 프로세스로 실행
  • 포트 바인딩 : 포트 바인딩을 사용한 서비스 공개
  • 동시성 : 프로세스 모델을 통한 확장
  • 폐기 기능 : 빠른 시작과 그레이스풀 셧다운을 통한 안정성 극대화
  • Dev/prod 일치 : 개발/운영 환경을 최대한 비슷하게 유지
  • 로그 : 로그를 이벤트 스트림 취급
  • Admin 프로세스 : Admin/maintenance 작업을 일회성 프로세스로 실행
728x90
반응형