애플리케이션 복원력은 구성 요소 장애, 중단 또는 갑작스러운 워크로드 급증과 같은 계획되지 않은 중단 사고 동안 핵심 기능을 유지하는 소프트웨어의 기능입니다. 복원력이 뛰어난 앱은 비즈니스 연속성을 보장하고, 사용자 경험을 보호하고, 다운타임을 최소화하는 데 도움이 됩니다.
애플리케이션은 고객 트랜잭션 처리 및 공급망 관리부터 직원 협업 지원 및 실시간 데이터 분석에 이르기까지 현대 비즈니스의 거의 모든 측면을 지원합니다.
이러한 애플리케이션이 실패하면 심각한 영향이 발생할 수 있습니다. 다운타임(애플리케이션이 사용할 수 없거나 제대로 작동하지 않는 기간)은 평판을 손상시키고, 사용자 경험을 저하시키고, 상당한 재정적 손실을 초래할 수 있습니다.
실제로 현재 98%의 조직이 다운타임 비용이 시간당 10만 달러를 초과하고 있으며 1/3은 100만 달러에서 5백만 달러 사이의 손실을 예상하고 있다고 보고합니다.
조직은 복원력 있는 애플리케이션을 설계하고 구현함으로써 이러한 중단 사고를 방지하고 완화할 수 있습니다.
애플리케이션 복원력은 다음의 두 가지 핵심 원칙에 기반합니다.
복원력이 뛰어난 애플리케이션은 애플리케이션 아키텍처의 취약점을 줄이고 운영 효율성을 개선하며 예상치 못한 장애가 발생하더라도 일관된 사용자 경험을 보장할 수 있습니다.
업계 뉴스레터
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
복원력이 뛰어난 애플리케이션을 만들고 배포하기 위해 개발자와 IT 팀은 애플리케이션의 라이프사이클 전반에 걸쳐 여러 가지의 툴과 관행을 사용할 수 있습니다.
복원력 있는 애플리케이션의 일반적인 구성 요소는 다음과 같습니다.
이중화는 중요한 시스템의 백업 버전을 보유하는 것을 의미합니다. 시스템에 장애가 발생하면 백업이 작동하여 시스템이 계속 작동하도록 합니다.
예를 들어, 결제 처리 서비스에는 서로 다른 서버에서 실행되는 서비스의 여러 복사본이 있을 수 있습니다. 한 서버가 작동을 멈추면 다른 서버의 복사본이 자동으로 워크로드를 인계받을 수 있으므로 고객이 문제를 알아차리지 못합니다.
조직은 종종 다음과 같은 주요 영역에 이중화를 구축합니다.
로드 밸런싱은 애플리케이션 가용성을 최적화하기 위해 네트워크 트래픽을 여러 서버에 효율적으로 분산하는 작업입니다. 개별 구성 요소에 장애가 발생하거나 과부하가 걸리는 경우에도 시스템이 성능과 가용성을 유지할 수 있으므로, 애플리케이션 복원력에 매우 중요합니다.
예를 들어, 한 서버가 응답하지 않는 경우 로드 밸런서가 자동으로 트래픽을 다른 정상 서버로 리디렉션하여 애플리케이션을 온라인 상태로 유지할 수 있습니다.
장애 격리는 분산 시스템 내에 중요한 구성 요소를 격리하여 국부적인 문제가 시스템 전체의 중단으로 이어지는 것을 방지하는 설계 관행입니다.
격리는 마이크로서비스 아키텍처에서 특히 중요합니다. 마이크로서비스 아키텍처에서는 한 서비스의 장애가 제대로 격리되지 않으면 다른 많은 종속성에 빠르게 영향을 미칠 수 있습니다.
서비스 메시는 오류를 격리하는 데 특히 유용합니다. 이러한 인프라 계층은 분산 애플리케이션의 마이크로서비스 간 통신을 관리하는 데 도움이 되며 다음의 기능을 제공합니다.
이러한 기능이 함께 작용하면 한 서비스의 오류가 다른 서비스로 확산되지 않도록 방지할 수 있습니다. 예를 들어, 전자 상거래 사이트에서 제품 추천 엔진에 장애가 발생했다고 가정해 보겠습니다. 서비스 메시는 이 장애를 감지하고, 요청이 손상된 서비스에 도달하지 못하도록 막고, 그에 따라 트래픽을 다시 라우팅할 수 있습니다. 그러면 사용자는 중단 없이 계속 탐색하고 구매할 수 있습니다.
관측 가능성을 통해 팀은 지표(응답 시간과 같은 성능 지표), 로그(오류 또는 충돌과 같은 이벤트 기록), 추적(요청이 시스템을 통과하는 전체 여정)이라는 세 가지 주요 데이터 유형을 사용하여 시스템 상태를 실시간으로 모니터링할 수 있습니다.
팀은 이러한 신호를 캡처하고 분석함으로써 이상 징후를 감지하고 문제를 신속하게 진단하여 다운타임을 줄일 수 있습니다. 예를 들어, 고객이 웹페이지가 느리게 로드된다고 보고하는 경우 관측 가능성 툴은 엔지니어가 지연을 일으킨 서비스에 대한 요청을 추적하여 더 많은 사용자에게 영향을 미치기 전에 문제를 해결하도록 도울 수 있습니다.
자동화는 시스템이 수동 개입 없이도 문제에 대응할 수 있도록 함으로써 애플리케이션 복원력에 중요한 역할을 합니다.
예를 들어, 관측 가능성 툴은 문제를 감지하고 이중화는 백업 리소스를 제공합니다. 자동화는 이러한 기능을 연결하여 복구 프로세스를 조율합니다. 자동화는 복구 시간을 크게 줄여 몇 시간이 소요되던 수동 문제 해결을 몇 초의 자동 응답으로 전환할 수 있습니다.
애플리케이션 복원력의 몇 가지 주요 자동화된 대응은 다음과 같습니다.
컨테이너화된 애플리케이션을 관리하기 위한 오픈 소스 시스템인 Kubernetes와 같은 툴은 자동화를 통해 복원력 구성 요소를 서로 연결하는 방식을 보여줍니다. Kubernetes는 기본 제공되는 상태 검사를 통해 장애를 감지하고, 정상 노드 전반에서 워크로드 일정을 조정하고, 자동화된 워크플로를 통해 서비스 연속성을 유지할 수 있습니다.
우아한 성능 저하(graceful degradation)란 스트레스가 발생하는 동안 핵심 기능은 유지하고 불필요한 기능을 제거하는 작업을 말합니다. 예를 들어, 블랙 프라이데이 트래픽이 급증하는 동안 소매업체는 장바구니와 결제 기능을 유지하기 위해 고객 후기 및 위시리스트를 일시적으로 비활성화할 수 있습니다.
확장가능한 애플리케이션은 워크로드 수요에 따라 리소스를 자동으로 조정할 수 있습니다. 이 기능은 트래픽이 변동하는 경우에도 성능과 가용성을 보장하는 데 도움이 됩니다.
확장성은 다양한 방법으로 달성할 수 있습니다. 예를 들어, 클라우드 기반 플랫폼은 내장된 로드 밸런서, 자동 확장, 다중 지역 복제와 같은 기능을 통해 확장성을 제공합니다. 즉, 여러 지리적 위치에 걸쳐 데이터와 서비스를 복사하여 성능과 안정성을 개선합니다. 이러한 기능은 서비스가 트래픽을 지능적으로 분산하고, 가동 시간을 유지하고, 변화하는 상황에 대응하여 복구 시간을 최소화할 수 있습니다.
예를 들어, 클라우드 호스팅 스트리밍 플랫폼은 일반적으로 100개의 서버에서 작동할 수 있습니다. 하지만 라이브 글로벌 이벤트 중에는 여러 지역에 걸쳐 10,000개의 서버로 자동 확장되어 수백만 명의 동시 시청자에게 원활한 재생을 제공할 수 있습니다.
소프트웨어 애플리케이션이 비즈니스 운영과 소비자의 일상 생활 모두에 필수적인 요소로 자리잡으면서 이러한 애플리케이션은 예상치 못한 중단을 견디고 거의 모든 조건에서 기능을 유지하는 것이 매우 중요합니다.
특히 다음의 네 가지 요인으로 인해 애플리케이션 복원력이 더욱 주목받고 있습니다.
고객은 디지털 서비스가 항상 작동하기를 기대합니다. Google에 따르면 방문자의 53%는 로드하는 데 3초 이상 걸리는 모바일 페이지를 포기합니다.
뱅킹 앱, 전자 상거래 플랫폼, 의료 포털 등에서 다운타임은 고객 이탈, 소셜 미디어 반발, 지속적인 브랜드 손상을 유발할 수 있습니다. 애플리케이션 가용성은 기술적 지표가 아닌 기본적인 비즈니스 요구 사항입니다.
애플리케이션 중단은 모든 규모의 조직에 비용을 초래할 수 있습니다. 소매 브랜드가 트래픽이 많은 판매 이벤트를 시작했지만, 추가 수요로 인해 결제 서비스에 장애가 발생하는 일반적인 시나리오를 생각해 보세요. 몇 분 안에 수천 건의 트랜잭션이 중단되고, 고객은 좌절감을 느끼고, 회사는 수익을 잃습니다.
매출 손실 외에도 중단은 문제 해결 비용 및 서비스 수준 계약(SLA) 위반부터 규제 위반, 고객 보상, 장기적인 브랜드 손상에 이르기까지 수많은 2차 비용을 초래할 수 있습니다.
최근 세간의 이목을 끈 여러 인시던트는 그 영향이 얼마나 중대한지를 잘 보여줍니다.
최신 애플리케이션 아키텍처에는 마이크로서비스, 멀티클라우드 환경, 코드 라이브러리 등 많은 움직이는 요소들이 있습니다. 이러한 모듈식 구성 요소는 확장성을 향상시키는 동시에 잠재적인 실패 지점의 수도 증가시킵니다.
복원력 있는 설계 및 구현이 없으면 사소한 문제도 증폭될 수 있습니다. 단일 마이크로서비스 장애는 수십 개의 종속성에 영향을 미칠 수 있습니다. 예를 들어, 제품 정보를 저장하는 데이터베이스 서비스가 작동을 멈추면 검색, 추천 또는 결제와 같은 다른 기능이 중단될 수 있습니다.
또한 클라우드 지역 간의 네트워크 중단이 발생하면 서비스가 파편화되고 데이터 불일치가 발생할 수 있습니다. 구성 요소가 완전히 작동을 멈추는 마이크로서비스 장애와 달리, 이러한 연결 문제는 애플리케이션의 다른 부분이 계속 실행되지만 서로 통신할 수 없는 '분할 뇌' 시나리오를 생성합니다.
예를 들어, 금융 거래 앱의 주문 시스템이 실시간 가격 데이터와 연결이 끊어지면 사용자에게 잘못된 견적이 표시되거나 거래가 실패할 수 있습니다.
애플리케이션 프로그래밍 인터페이스(API) 중단이 발생하면 중요한 기능이 손상될 수 있습니다. 마이크로서비스 장애는 조직이 제어하는 내부 구성 요소에 영향을 미치는 반면, API 중단은 애플리케이션이 의존하지만 직접 수정할 수는 없는 타사 서비스와 관련이 있습니다. 예를 들어, 배달 앱의 매핑 서비스가 중단되면 핵심 애플리케이션이 계속 실행되더라도 사용자는 운전자를 추적할 수 없고 운전자는 경로를 찾을 수 없어 경험이 중단됩니다.
특정 부문 및 위치에서 규제 기관은 데이터 가용성, 앱 복구 기능, 데이터 손실 완화, 가동 시간에 대한 엄격한 요구 사항을 설정했습니다. 이러한 요구 사항은 애플리케이션 복원력을 기술적 목표에서 규정 준수 문제로 격상시킵니다.
일부 데이터 보호 및 개인정보 보호 법에는 이제 보안 의무와 함께 가용성 표준이 포함됩니다. 예를 들어, 일반 데이터 보호 규정 (GDPR)은 개인 데이터를 보호하고 액세스 가능한 상태로 유지하도록 요구합니다. 시스템 장애 발생 시 조직은 손실된 데이터를 복구해야 합니다.
특히 규제가 심한 산업은 가장 엄격한 표준에 직면해 있습니다.
사베인즈-옥슬리(SOX) 법이 재해 복구 계획을 명시적으로 의무화하고 있지는 않지만, 많은 조직들이 이 법을 준수하고 규정 준수를 입증하는 데 도움이 되는 백업 시스템과 공식적인 복구 절차를 유지 관리하고 있습니다.
또한 금융 기관은 비즈니스 연속성 계획 및 복구 시간 목표에 대한 자세한 지침을 제공하는 연방 금융기관 심사위원회(FFIEC)와 같은 기관의 분야별 규정 및 권장 사항을 준수해야 합니다.
건강 보험 양도 및 책임에 관한 법률(HIPAA)에 따라 적용 대상 기관은 전자 보호 건강 정보(ePHI)의 가용성과 무결성을 보장하기 위해 관리적, 물리적, 기술적 보호 장치를 구현해야 합니다. HIPAA는 연중무휴 24시간 액세스를 의무화하지는 않지만, 의료 기관은 치료를 위해 필요한 경우 환자 데이터에 대한 액세스를 유지해야 합니다.
HIPAA 보안 규칙은 데이터 백업 계획, 재해 복구 절차, 긴급 모드 운영을 요구하기 때문에 많은 조직이 고급 장애 조치 및 데이터 복제 전략에 투자하고 있습니다.
시스템이 실제 장애에 견딜 수 있도록 조직은 지속적인 측정과 사전 예방적 테스트를 함께 사용하여 애플리케이션 복원력을 검증합니다. 이러한 접근 방식 통해 팀은 성능을 모니터링하고, 취약점을 식별하고, 애플리케이션이 빠르고 효과적으로 복구될 수 있는지 확인할 수 있습니다.
특히 DevOps 팀은 복원력 관행을 지속적 통합/지속적 전달 파이프라인(CI/CD 파이프라인)에 자주 통합합니다. 이를 통해 장애 조치 절차 테스트를 자동화하고, 구성 변경 사항을 검증하고, 불안정한 배포를 롤백하여 문제를 조기에 포착하고, 중단이 사용자에게 영향을 미치는 것을 방지할 수 있습니다.
조직은 애플리케이션 복원력 평가를 위해 다음과 같은 몇 가지 주요 지표를 사용합니다.
RTO는 시스템을 복원하기 전에 허용되는 최대 다운타임입니다. RTO는 복구 기대치를 정의하고 재해 복구 및 비즈니스 연속성 계획을 지원합니다.
조직은 운영, 매출 또는 고객 경험에 용납할 수 없는 손상이 발생하기 전에 각 시스템이 얼마나 오래 중단될 수 있는지 결정하는 비즈니스 영향 분석을 기반으로 RTO를 설정합니다.
예를 들어, 결제 처리 시스템의 RTO는 5분인 반면, 내부 보고 툴은 24시간을 허용할 수 있습니다.
MTTR은 장애 발생 후 서비스를 복구하는 데 걸리는 시간입니다. 조직은 장애 감지와 서비스 복원 사이의 시간을 자동으로 추적하는 인시던트 관리 툴 및 모니터링 플랫폼을 사용하여 MTTR을 측정합니다. MTTR이 낮을수록 복구 속도가 빨라지고 사용자 경험이 향상됩니다.
MTBF는 시스템 장애 사이의 평균 운영 시간을 의미합니다. 이 지표는 장애 발생 빈도에 대한 인사이트를 제공하며, 일반적으로 자동화된 모니터링 시스템과 인시던트 로그를 통해 추적된 총 운영 시간을 장애 횟수로 나누어 계산합니다.
오류 예산은 서비스 수준 목표 내에서 허용되는 다운타임 수준을 나타냅니다. 오류 예산을 통해 팀은 계산된 위험을 감수할 수 있습니다. 서비스가 월별 오류 예산의 20%만 사용한 경우 팀은 새로운 기능을 보다 적극적으로 배포할 수 있습니다. 예산이 거의 소진되면, 대신 안정성 개선에 중점을 둡니다.
복원력 스코어카드는 중복성, 지연 시간, 복구 데이터를 사용하여 애플리케이션 복원력을 벤치마킹하고 개선 기회를 파악하는 종합 보고서입니다. 이러한 스코어카드는 일반적으로 여러 모니터링 툴의 지표를 집계하는 관측 가능성 플랫폼에서 생성됩니다.
보다 현실적인 관점을 확보하기 위해 테스트를 활용하는 조직이 점점 늘어나고 있습니다. 지표가 기반을 제공할 수 있는 경우 조직은 테스트를 통해 이론적 준비 상태에서 입증된 복원력으로 전환할 수 있습니다.
카오스 엔지니어링은 서버 종료, 지연 시간 주입 또는 강제 연결 손실과 같은 제어된 장애를 도입하여 애플리케이션이 스트레스 상황에서 복구되는 방식을 테스트합니다.
예를 들어, Netflix의 Chaos Monkey 같은 툴은 애플리케이션 인스턴스를 무작위로 종료하여 서비스가 예기치 않은 중단을 견딜 수 있는지 테스트합니다.
재해 시뮬레이션은 팀 간의 기술 복구, 커뮤니케이션 및 조정을 평가하기 위해 주요 중단 사고 또는 공격을 모방하는 대규모 시나리오입니다.
랜섬웨어 공격이나 클라우드 지역 장애와 같은 시뮬레이션은 조직이 애플리케이션 아키텍처에 대한 스트레스 테스트를 실시하고 재해 복구 계획의 간극을 파악하는 데 도움이 됩니다.
인공 지능(AI)과 머신 러닝(ML)은 복원력에 대한 조직의 접근 방식을 바꾸고 있습니다. 이러한 기술들은 다운타임 방지하기 위한 새롭고 강력한 툴을 제공하지만, 고유한 문제도 수반합니다.
가장 큰 문제 중 하나는 AI 워크로드가 리소스를 많이 사용한다는 점입니다. 많은 모델은 그래픽 처리 장치(GPU)에 의존하는데, 이는 비용이 많이 들고 클라우드 리전 전체에서 복제하기 어렵습니다. 이로 인해 복원력의 필수 요소인 이중화를 달성하기가 더 어려워집니다.
AI 시스템은 예상치 못한 방식으로 실패할 수도 있습니다. 시간이 지남에 따라 정확도가 떨어질 수 있는데, 이는 모델 드리프트라고 하는 문제입니다. 또는 시스템을 속이도록 설계된 악성 데이터인 적대적 입력을 접할 수도 있습니다. 이러한 유형의 장애는 예측 및 격리하기가 더 어려울 수 있습니다.
또한 리소스 제약이나 지연 시간으로 인해 클라우드 환경에서 흔히 발생하는 AI 기능의 속도 저하 또는 작동 중지 문제가 발생해도 나머지 애플리케이션은 여전히 안정적으로 작동해야 하므로 우아한 성능 저하 전략에 대한 압박이 가중됩니다.
동시에 AI는 복원력 강화에 대한 중요한 사용 사례도 있습니다.
요컨대, AI는 새로운 복잡성을 야기하지만, 클라우드 네이티브 환경과 DevOps 파이프라인에 통합되는 경우에는 더 빠른 복구, 더 지능적인 모니터링, 그리고 전반적으로 더 복원력 있는 애플리케이션을 구현할 수 있습니다.
생성형 AI 기반 자동화 플랫폼인 IBM Concert를 활용해 애플리케이션 관리를 간소화하고, 실행 가능한 AI 인사이트를 확보할 수 있습니다.
풀스택 관측 가능성을 자동화된 애플리케이션 자원 관리와 연결하여 성능 문제가 고객 경험에 영향을 미치기 전에 해결합니다.
IBM Consulting이 제공하는 혁신적인 서비스로 복잡한 하이브리드 및 멀티 클라우드 환경을 효과적으로 관리해 보세요.