• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

유연성, 탄력성

23.07.22 16:28 작성 조회수 191

0

세션 10 -1 강의에서

설계동향 리액티브 선언 설명해주시는 부분 중

유연성과 탄력성을 평가할 수 있는 항목이나 지표를 예를 들어 설명해주시면 이해가 잘 될 거 같습니다!

답변 1

답변을 작성해보세요.

0

내 강의자 입니다.

리액티브 선언에서 언급한 4가지 속성에 대해 질문을 해주셨네요.

리액티브 선언 https://www.reactivemanifesto.org/ko 를 참고하면 다음과 같이 설명합니다.

탄력성(Resilient): 시스템이 장애 에 직면하더라도 응답성을 유지 하는 것을 탄력성이 있다고 합니다. 탄력성은 고가용성 시스템, 미션 크리티컬 시스템에만 적용되지 않습니다. 탄력성이 없는 시스템은 장애가 발생할 경우 응답성을 잃게 됩니다. 탄력성은 복제, 봉쇄, 격리, 위임에 의해 실현됩니다. 장애는 각각의 구성 요소 에 포함되며 구성 요소들은 서로 분리되어 있기 때문에 이는 시스템이 부분적으로 고장이 나더라도, 전체 시스템을 위험하게 하지 않고 복구 할 수 있도록 보장합니다. 각 구성 요소의 복구 프로세스는 다른(외부의) 구성 요소에 위임되며 필요한 경우 복제를 통해 고가용성이 보장됩니다. 구성 요소의 클라이언트는 장애를 처리하는데에 압박을 받지 않습니다.

유연성(Elastic): 시스템이 작업량이 변화하더라도 응답성을 유지하는 것을 유연성이라고 합니다. 리액티브 시스템은 입력 속도의 변화에 따라 이러한 입력에 할당된 자원을 증가시키거나 감소키면서 변화에 대응합니다. 이것은 시스템에서 경쟁하는 지점이나 중앙 집중적인 병목 현상이 존재하지 않도록 설계하여, 구성 요소를 샤딩하거나 복제하여 입력을 분산시키는 것을 의미합니다. 리액티브 시스템은 실시간 성능을 측정하는 도구를 제공하여 응답성 있고 예측 가능한 규모 확장 알고리즘을 지원합니다. 이 시스템은 하드웨어 상품 및 소프트웨어 플랫폼에 비용 효율이 높은 방식으로 유연성 을 제공합니다.

위의 설명처럼 예를 들자면 k8s에 레플리키셋를 여러개로 선언해 놓으면 하나의 파드가 죽더라도 다시 그 선언 갯수에 맞게 다시 생성되는 것을 탄력성이 있다고 하고,

유연성은 k8s hpa를 설정하면 리소스 대응에 따라 레플리카셋이 늘거나 줄어드는데 이것을 예로 할 수 있겠습니다.