KR20130116184A - 레이턴시를 유도함으로써 분산 컴퓨팅 서비스의 복원성을 평가하기 위한 방법 및 시스템 - Google Patents
레이턴시를 유도함으로써 분산 컴퓨팅 서비스의 복원성을 평가하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20130116184A KR20130116184A KR1020130039653A KR20130039653A KR20130116184A KR 20130116184 A KR20130116184 A KR 20130116184A KR 1020130039653 A KR1020130039653 A KR 1020130039653A KR 20130039653 A KR20130039653 A KR 20130039653A KR 20130116184 A KR20130116184 A KR 20130116184A
- Authority
- KR
- South Korea
- Prior art keywords
- active application
- latency
- message
- application component
- application
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Hardware Redundancy (AREA)
Abstract
분산 컴퓨팅 인프라구조를 사용하여 이용 가능하게 될 수 있는 네트워킹 애플리케이션의 복원성을 검증하는 기법이 개시된다. 일 실시예에서, 레이턴시 모니터링 애플리케이션은 각각의 액티브 애플리케이션 컴포넌트를 관찰하고, 특정 또는 불특정 간격으로 하나를 선택하고, 선택된 액티브 애플리케이션 컴포넌트로부터 나온 하나 이상의 메시지에 레이턴시 또는 에러 메시지를 도입한다. 그 후, 레이턴시 모니터링 애플리케이션은 영향받은 액티브 애플리케이션 컴포넌트에 종속된 다른 액티브 애플리케이션 컴포넌트들에 대한 레이턴시 또는 에러 메시지의 효과를 측정한다. 네트워크 애플리케이션의 나머지에 대한 고장 난 서버의 영향을 관찰함으로써, 제공자는 각각의 컴포넌트가 분산 컴퓨팅 인프라구조를 이용하여 임의의 예상치 못한 레이턴시 또는 에러 조건들을 견딜 수 있도록 보장할 수 있다.
Description
본 발명은 일반적으로 분산 컴퓨팅 시스템 및 방법에 관한 것으로서, 더 구체적으로는 레이턴시를 유도함으로써 분산 컴퓨팅 서비스의 복원성을 평가하는 것에 관한 것이다.
폭넓고 다양한 컴퓨팅 애플리케이션들이 컴퓨터 네트워크를 통해 사용자들에게 이용될 수 있게 되었다. 종종, 네트워킹 애플리케이션(networked application)이 분산 컴퓨터 시스템 내의 다수의 상호 작용 컴퓨팅 노드를 사용하여 제공될 수 있다. 네트워킹 애플리케이션은 하나 이상의 컴퓨팅 노드에서 실행되는 하나 이상의 네트워킹 애플리케이션 컴포넌트로서 존재한다. 예를 들어, 웹 사이트는 웹 페이지에 대한 사용자들로부터의 요청들을 수신하도록 구성된 (분산 컴퓨팅 시스템 내의 하나의 노드에서 실행되는) 웹 서버를 사용하여 제공될 수 있다. 요청들이 (분산 컴퓨팅 시스템 내의 다른 노드에서 실행되는) 애플리케이션 서버로 전달될 수 있으며, 여기서 차례로 요청들을 프로세싱하고 웹 서버 및 최종적으로 사용자에게 다시 전달되는 응답을 생성한다.
네트워킹 애플리케이션의 다른 예는 네트워크 통해 미디어 타이틀에 대한 액세스를 제공하는데 사용되는 콘텐츠 분산 시스템을 포함한다. 통상적으로, 콘텐츠 분산 시스템은 액세스 서버 및 콘텐츠 서버와 같은 다양한 서버를 포함할 수 있다. 클라이언트는 게임 콘솔, 컴퓨팅 시스템, 컴퓨팅 태블릿, 휴대폰, 또는 네트워크 인식 DVD 플레이어(network-aware DVD player) 등과 같은 콘텐츠 플레이어를 사용하여 서버에 연결될 수 있다. 콘텐츠 서버는 콘텐츠 서버로부터 콘텐츠 플레이어로의 다운로드에 이용될 수 있는 파일(또는 "스트림(stream)")을 저장한다. 각각의 스트림은 영화, 텔레비전 프로그램, 스포츠 이벤트, 사용자 생성 콘텐츠, 또는 기록된 비디오에 촬영된 스테이지드(staged) 또는 라이브 이벤트와 같은 비디오 또는 다른 콘텐츠의 다양한 형태의 디지털 버전을 제공할 수 있다. 사용자들은 콘텐츠의 목록이 이용될 수 있는 웹 서버로 연결함으로써 서비스에 액세스한다. 일단 특별한 타이틀에 대한 요청이 수신되면, 타이틀은 이용 가능한 콘텐츠 서버에 대한 연결을 통해 클라이언트 시스템으로 스트리밍될 수 있다.
이들과 같은 시스템에서, 레이턴시 및 에러는 하나의 서버에서 실행되는 네트워킹 애플리케이션 컴포넌트와 다른 서버에서 실행되는 종속 네트워킹 애플리케이션 컴포넌트 사이의 다양한 통신 경로에서 일어날 수 있다. 이들 레이턴시 또는 에러 조건들은 과부하되거나 소프트웨어 또는 하드웨어 고장을 겪은 서버 또는 네트워크 디바이스로부터 기인할 수 있다. 일부 경우에, 종속 네트워킹 애플리케이션 컴포넌트는 타깃 애플리케이션을 이용하여 통신 경로에서의 이러한 레이턴시 또는 에러에 대한 복원성이 있을 수 없다. 결과적으로, 종속 네트워킹 애플리케이션 컴포넌트들은 차례로 다른 네트워킹 애플리케이션 컴포넌트들까지의 통신 경로에서의 레이턴시 또는 에러, 잠재적 캐스케이딩(cascading) 레이턴시, 에러 조건, 또는 하나 이상의 애플리케이션 컴포넌트의 다른 문제점들을 분산 컴퓨터 시스템을 통해 도입할 수 있다.
복잡한 분산 컴퓨터 시스템 내의 레이턴시 및 에러들은 충분히 정확하게 모델링하는 것이 어렵다는 점에서, 다수의 네트워킹 애플리케이션 컴포넌트들에 걸친이러한 크로스-레이턴시 및 에러들을 테스트하는 것은 어렵다. 그럼에도, 테스트 시스템에 대해 충분히 복원성이 있는 것처럼 보일 수 있는 네트워크 애플리케이션 컴포넌트들은 분산 컴퓨터 시스템에 전개되는 경우 고장 날 수도 있다. 앞서 예시한 바와 같이, 분산 컴퓨터 시스템에서 실행되는 애플리케이션의 복원성을 테스트하기 위한 더 좋은 방법이 필요하다.
여기에 개시된 본 발명의 일 실시예는 네트워킹 애플리케이션의 복원성을 평가하는 컴퓨터 구현 방법을 제공한다. 이 방법은 네트워킹 애플리케이션이 제공되는 네트워크 내의 복수의 액티브 애플리케이션 컴포넌트를 식별하는 단계, 하나 이상의 선택 기준에 기초하여 복수의 액티브 애플리케이션 컴포넌트로부터 제1 액티브 애플리케이션 컴포넌트를 선택하는 단계, 미리 정의된 변경 규칙에 따라 제1 액티브 애플리케이션 컴포넌트에 의해 송신된 메시지를 변경하는 단계; 및 복수의 액티브 애플리케이션 컴포넌트에 포함된 제2 액티브 애플리케이션 컴포넌트를 모니터링하여 변경된 메시지에 의해 야기된 제2 액티브 애플리케이션 컴포넌트에 대한 효과를 판단하는 단계를 포함한다.
다른 실시예들은 이들로 제한되는 것은 아니지만, 개시된 방법의 하나 이상의 양태를 구현하도록 구성된 시스템뿐 아니라 프로세싱 유닛이 개시된 방법의 하나 이상의 양태를 구현할 수 있게 하는 명령어를 포함하는 컴퓨터 판독가능 매체를 포함한다.
본 발명의 앞서 인용된 특징들이 상세히 이해될 수 있도록, 앞서 간략히 요약된 본 발명의 더 구체적인 설명은 실시예들을 참조하여 설명될 것이며, 실시예들 중 일부는 첨부 도면에 의해 예시된다. 그러나, 첨부 도면들은 본 발명의 통상적인 실시예만을 예시하며, 따라서 본 발명의 범위를 제한하는 것으로 간주되지 않아야 하는데, 그 이유는 본 발명이 다른 동등한 효과적인 실시예들을 인정할 수 있기 때문이다.
도 1은 본 발명의 하나 이상의 양태를 구현하도록 구성된 분산 컴퓨팅 시스템을 예시한다.
도 2는 본 발명의 일 실시형태에 따른 레이턴시 애플리케이션을 포함하는 관리 서버(administration server)의 도면이다.
도 3은 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템 내의 2개의 노드를 예시한다.
도 4는 본 발명의 일 실시예에 따라 네트워킹 애플리케이션의 복원성을 검증하는 방법을 예시한다.
도 1은 본 발명의 하나 이상의 양태를 구현하도록 구성된 분산 컴퓨팅 시스템을 예시한다.
도 2는 본 발명의 일 실시형태에 따른 레이턴시 애플리케이션을 포함하는 관리 서버(administration server)의 도면이다.
도 3은 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템 내의 2개의 노드를 예시한다.
도 4는 본 발명의 일 실시예에 따라 네트워킹 애플리케이션의 복원성을 검증하는 방법을 예시한다.
본 발명의 실시예는 분산 컴퓨팅 시스템 내의 상호작용 컴퓨팅 소자들의 집합을 사용하여 이용될 수 있게 된 네트워킹 애플리케이션의 복원성을 검증하기 위한 기법들을 제공한다. 이하, 이러한 컴퓨팅 소자들은 노드라고 지칭된다. 예를 들어, 네트워크 모니터링 애플리케이션(이하 레이턴시 애플리케이션이라고 지칭됨)은 특정 노드에서 실행되는 타깃 네트워킹 애플리케이션 컴포넌트의 인스턴스와 관련된 통신 경로로 레이턴시 또는 에러를 도입하도록 구성될 수 있다. 그 다음, 레이턴시 애플리케이션은 타깃 네트워킹 애플리케이션 컴포넌트에 종속하는 시스템들이 이렇게 유도된 레이턴시 또는 에러 조건들에 따라 여전히 정확히 기능할 수 있는지(또는 적절히 성능 저하될 수 있는지)를 판단할 수 있다. 이에 따라, 레이턴시 애플리케이션은 제어된 방식으로 분산 컴퓨팅 시스템 내의 다른 시스템들에 대한 레이턴시 또는 에러 조건들의 영향을 관찰할 수 있다. 이러한 접근법은 데이터 센터 내의 물리적 서버에서뿐 아니라, 다양한 컴퓨팅 컴포넌트들의 위치가 알려져 있지 않은 클라우드 기반 컴퓨팅 환경에 유용할 수 있다.
일 실시예에서, 레이턴시 애플리케이션은 불특정 간격으로 각각의 실행 중인 애플리케이션 컴포넌트를 관찰하고, 실행 중인 애플리케이션 컴포넌트 중 하나를 선택하고, 애플리케이션 컴포넌트의 통신 경로들 중 하나 이상에 레이턴시 또는 에러를 도입한다. 여기서, 선택된 애플리케이션 컴포넌트는 타깃 애플리케이션 컴포넌트라고 지칭된다. 그 후, 레이턴시 애플리케이션은 타깃 애플리케이션 컴포넌트에 종속된 애플리케이션 컴포넌트들의 거동 변화를 관찰한다.
종속 애플리케이션 컴포넌트에 대한 영향을 관찰함으로써, 제공자는 각각의 컴포넌트가 이러한 레이턴시 또는 에러들을 견딜 수 있도록 보장할 수 있다. 일 실시예에서, 레이턴시 애플리케이션은 생산 환경에서 애플리케이션 컴포넌트 또는 다른 소프트웨어 모듈들에 대한 업데이트 또는 패치를 전개시키기 전에 테스트 환경에서 사용될 수 있다. 그렇게 하면, 생산 환경에 전개되지 않고 업데이트 또는 패치의 효과가 평가될 수 있다. 다른 실시예에서, 레이턴시 애플리케이션은 시스템이 온라인에 있는 동안 레이턴시 또는 에러가 분산 컴퓨터 시스템에 도입되는 생산 환경에서 사용될 수 있다. 이에 따라, 다양한 실시예에서, 레이턴시 애플리케이션은 분산 컴퓨터 시스템 내의 고장 허용한계에 대한 요구사항을 강제하는 것을 돕는데, 이는 그렇지 않으면, 생산 시스템들이 업데이트되거나, 패치되거나, 그렇지 않으면 의도하지 않거나 원치 않는 종속성을 생성하는 방식으로 변경됨에 따라, 시간에 따라 손실될 수 있다. 더 일반적으로, 여기에 설명된 레이턴시 애플리케이션에 의해 시스템의 임의의 논리 그룹이 정의되고 테스트될 수 있다.
다음 설명에서, 본 발명의 더 완전한 이해를 제공하기 위해 수많은 특정 상세사항이 개시된다. 그러나, 당업자는 본 발명이 이들 특정 상세사항의 하나 이상이 없이도 실시될 수 있다는 점을 명백히 알 것이다. 다른 예시에서, 공지된 특징들은 본 발명이 불명확해지는 것을 방지하기 위해 설명되지 않았다.
또한, 본 발명의 구체적인 실시예들은 데이터 통신 네트워크를 통해 앤드 유저 클라이언트 디바이스로 영화, 음악, 텔레비전 프로그램, 또는 사용자 생성 콘텐츠를 스트리밍하는데 사용된 네트워킹 애플리케이션의 일례를 사용하여 설명된다. 그러나, 본 발명의 실시예들은 다양한 네트워킹 애플리케이션 또는 서비스를 위해 개별적인 시스템 고장에 대한 복원성을 검증하는 것에 적응될 수 있다는 점이 이해되어야 한다. 따라서, 스트리밍 미디어 서비스에 대한 언급은 단순히 예시적일 뿐 제한적인 것이 아니다.
도 1은 본 발명의 하나 이상의 양태를 구현하도록 구성된 분산 컴퓨팅 시스템(100)을 예시한다. 도시된 바와 같이, 분산 컴퓨터 시스템(100)은 복수의 컴퓨팅 노드(102)를 포함하는 분산 컴퓨팅 인프라구조(110)(이하, "클라우드"라고 지칭됨)에 연결된 클라이언트 디바이스(142)를 포함한다. 클라이언트 디바이스(142)는 LAN(Local Area Network), WAN(Wide Area Network), 또는 인터넷 등의 네트워크(120)를 통해 클라우드(110)로 연결될 수 있다. 클라우드(110)는 네트워크(120)를 통해 REST(representational state transfer)와 같은 표준 메시징 프로토콜을 통해 하나 이상의 가상 컴퓨팅 서비스를 제공한다. 여러 다른 타입의 서비스 중에, 가상 컴퓨팅 서비스의 예에는 프로세싱 용량, 스토리지, 및 관계형 데이터베이스(relational database)를 포함할 수 있다. 가상 컴퓨팅 서비스는 네트워킹 애플리케이션의 다양한 액티브 애플리케이션 컴포넌트들이 서로 통신하는 복수의 노드에서 실행되는 네트워킹 애플리케이션을 포함할 수 있다. 예를 들어, 노드(102(0))는 네트워킹 애플리케이션의 하나의 액티브 애플리케이션 컴포넌트를 실행할 수 있다. 노드(102(0))는 노드(102(4))와 통신할 수 있는데, 노드(102(4))는 동일한 네트워킹 애플리케이션의 제2 액티브 애플리케이션 컴포넌트를 실행할 수 있다. 노드(102(4))는 노드(102(2)), 노드(102(5)), 및 노드(102(N-1))와 통신할 수 있는데, 이들 노드 각각은 동일한 네트워킹 애플리케이션의 제3 액티브 애플리케이션 컴포넌트를 실행할 수 있다.
일 실시예에서, 클라우드(110)는 Amazon®와 같은 클라우드 서비스 제공자에 의해 호스팅된다. 클라우드 서비스 제공자는 전세계 상이한 물리적 위치에 있는 다양한 데이터센터의 노드(102)를 하우징하며, 클라이언트가 네트워크(120)를 통해 클라우드 서비스에 액세스할 수 있게 한다. 예를 들어, Amazon®은 Amazon Elastic Compute Cloud™ (EC2)라고 지칭되는 가상 프로세싱뿐 아니라 Amazon Simple Storage Service™ (S3)라고 지칭되는 가상 클라우드 스토리지 솔루션을 호스팅하는데, 이들은 http(Hypertext Transport Protocol)와 같은 공통 전송 프로토콜을 사용하여 인터넷을 통해 액세스될 수 있다. 다른 실시예에서, 단일 조직이 사설 네트워크의 클라우드(110) 및 클라이언트 디바이스(142) 모두를 호스팅할 수 있다.
노드(102) 각각은 프로세서(CPU), 메모리, 네트워크 인터페이스 컨트롤러(NIC), 하드디스크 드라이브, 자기 테이프 드라이브, 광학 디스크 드라이브, 드라이브 어레이(예를 들어, RAID) 등(미도시)과 같은 하나 이상의 비휘발성 스토리지 디바이스를 포함한다. 각각의 노드(102)는 메모리에 저장되어 CPU에서 실행되는 하나 이상의 애플리케이션뿐 아니라 운영 체제(예를 들어, Microsoft® Windows™, Linux™, Unix® 등)를 포함할 수 있다. 애플리케이션 중 일부는 Apache™ Cassandra와 같은 분산 데이터베이스 관리 시스템 또는 Apache™ Hadoop과 같은 분산 애플리케이션 시스템과 같은 다양한 클라우드 서비스 아키텍처를 위한 소프트웨어 프레임워크를 제공할 수 있다. 일 실시예에서, 각각의 노드(102)는 블레이드 서버(blade server)를 포함하며, 2개 이상의 블레이드 서버가 새시(chassis)에 하우징되어 공통 전력 공급기 및 냉각 시스템과 같은 특정 리소스를 공유한다.
클라이언트 디바이스(142)는 또한 프로세서(CPU), 메모리, NIC, 및 하나 이상의 비휘발성 스토리지 디바이스(미도시)를 포함한다. 노드(102)와 유사하게, 클라이언트 디바이스(142) 또한 메모리에 저장되고 CPU에서 실행되는 클라이언트 애플리케이션(144)과 같은 하나 이상의 애플리케이션뿐 아니라 운영 체제를 포함한다. 일 실시예에서, 클라이언트 컴퓨터(142)는 분산 컴퓨터 시스템(100)을 분석하도록 데이터 분석자(data analyst)에 의해 유지될 수 있다. 클라이언트 디바이스(142)는 (클라이언트 디바이스(142) 및 노드(102)에 있는 NIC를 통해) 네트워크(120)를 거쳐 노드(102) 중 하나 이상과 통신할 수 있다. 이에 따라, 클라이언트 애플리케이션(144)은 클라이언트 디바이스(142)로 하여금 네트워크(120)를 통해 하나 이상의 노드(102)와 통신하게 함으로써 클라우드(110)에서 실행되는 하나 이상의 네트워킹 애플리케이션에 액세스할 수 있다.
관리 서버(162)는 분산 컴퓨터 시스템(100)을 위한 관리 업무를 자체적으로 수행하거나, 시스템 관리자에 의해 발행되는 하나 이상의 커맨드에 응답하여 관리 업무를 수행할 수 있다. 관리 서버(162)는 노드(102) 중 하나를 포함하는 프로세서, 메모리, 스토리지, 및 네트워크 인터페이스와 같은 종래의 컴포넌트를 포함하는 임의의 컴퓨팅 디바이스일 수 있다. 관리 서버(162)는 그래픽 사용자 인터페이스 또는 커맨드-라인 인터페이스를 생성하는 레이턴시 애플리케이션(164)과 같은 소프트웨어 애플리케이션을 포함할 수 있고, 시스템 관리자로 하여금 이들로 제한되는 것은 아니지만, 클라우드(110)를 구성, 모니터링, 및 테스트하는 것을 포함하는 다양한 기능들을 수행하게 한다. 관리 서버(162)는 통신 링크(130)를 통해 노드(102) 중 하나 이상과 통신할 수 있다.
레이턴시 애플리케이션(164)은 관리 서버(162) 상에서 실행되도록 구성된다. 이하 더 설명하는 바와 같이, 레이턴시 애플리케이션(164)은 클라우드(110) 내의 증가한 레이턴시 또는 에러 조건들의 하나 이상의 시뮬레이션을 스케줄링한다. 레이턴시 애플리케이션은 선택된 액티브 애플리케이션 컴포넌트(이하 타깃 컴포넌트라고 지칭됨)와 관련된 특정 통신 경로에 레이턴시 또는 에러 조건들을 도입한다.
도 2는 본 발명의 일 실시형태에 따른 레이턴시 애플리케이션(164)을 포함하는 관리 서버(162)의 도면이다. 도시된 바와 같이, 관리 서버(162)는 이들로 제한되는 것은 아니지만, CPU(central processing unit)(205), 네트워크 인터페이스(215), 인터커넥트(220), 메모리(225), 및 스토리지(230)를 포함한다. 관리 서버(162)는 또한 I/O 디바이스(212)(예를 들어, 키보드, 디스플레이, 및 마우스 디바이스)를 관리 서버(162)에 연결하는 I/O 디바이스 인터페이스(210)를 포함할 수 있다.
일반적으로, CPU(205)는 메모리(225)에 저장된 프로그래밍 명령어를 검색 및 실행한다. 유사하게, CPU(205)는 메모리(225)에 상주하는 애플리케이션 데이터를 저장 및 검색한다. 인터커넥트(220)는 CPU(205), I/O 디바이스 인터페이스(210), 네트워크 인터페이스(215), 메모리(225), 및 스토리지(230) 사이의 프로그래밍 명령어 및 애플리케이션 데이터의 전송을 용이하게 한다. CPU(205)는 싱글 CPU, 멀티 CPU, 다수의 프로세싱 코어를 갖는 단일 CPU 등을 나타낸다. 메모리(225)는 일반적으로 랜덤 액세스 메모리를 나타낸다. 스토리지(230)는 디스크 드라이브 스토리지 디바이스일 수 있다. 단일 유닛으로 도시되었지만, 스토리지(230)는 고정 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 착탈식 메모리 카드, 광학 스토리지, NAS(network attached storage), 또는 SAN(storage area-network)과 같은 고정식 및/또는 착탈식 스토리지 디바이스들의 조합일 수 있다.
예를 들어, 메모리(225)는 모니터링 로그(235)를 포함하는 레이턴시 애플리케이션(164) 및 스토리지(230)를 포함한다. 도시된 바와 같이, 레이턴시 애플리케이션(164)은 레이턴시 컴포넌트(223), 복구 모니터(227), 및 시뮬레이션 모니터링 파라미터(229)를 포함한다. 전술한 바와 같이, 레이턴시 애플리케이션(164)은 주기적으로 레이턴시 또는 에러 조건들을 선택하여 네트워킹 애플리케이션과 관련된 액티브 네트워킹 애플리케이션 컴포넌트에 도입하도록 구성된 소프트웨어 애플리케이션을 제공할 수 있다. 네트워킹 애플리케이션 컴포넌트는 클라우드 컴퓨팅 환경에서 실행되는 분산 컴퓨팅 시스템(100)의 노드(102)에서 실행되거나, 제공자의 데이터 센터의 서버에서 실행될 수 있다.
일 실시예에서, 레이턴시 컴포넌트(223)는 타깃 액티브 애플리케이션 컴포넌트를 선택하고, 애플리케이션 컴포넌트와 관련된 하나 이상의 통신 경로에서 레이턴시 또는 에러 조건들을 시뮬레이션한다. 레이턴시 컴포넌트(223)는 모니터링 파라미터(229)에 따라 시뮬레이션을 구성한다. 미리 정의된 시뮬레이션을 제어하는 모니터링 파라미터(229)는 레이턴시 애플리케이션(164)에 의해 자동으로 미리 결정될 수 있다. 또한, 레이턴시 애플리케이션은 그래픽 또는 커맨드 라인 인터페이스를 통해 시스템 관리자로부터 하나 이상의 모니터링 파라미터(229)를 수신할 수 있다. 예를 들어, 레이턴시 애플리케이션은 시뮬레이션이 레이턴시 모드 또는 에러 모드에서 동작할지 여부에 관한 모니터링 파라미터(229)를 설정할 수 있다. 레이턴시 모드가 명시되면, 레이턴시 애플리케이션은 타깃 컴포넌트로 하여금 미리 정의된 시간량만큼 메시지들을 지연시키게 한다. 대안으로서, 특정 시간량보다는 랜덤 지연이 도입될 수 있다. 에러 모드가 명시되면, 레이턴시 애플리케이션은 타깃 컴포넌트로 하여금 예상 메시지 대신에 에러 메시지를 도입하게 한다. 예를 들어, 특정 URL(uniform resource locator)과 관련된 요청에 응답하여, 언급된 URL에서의 웹 페이지보다, 레이턴시 애플리케이션은 타깃 컴포넌트로 하여금 404 ("찾을 수 없음(not found)") 에러와 같은 에러 메시지를 리턴하게 할 수 있다.
시뮬레이션과 관련된 다른 모니터링 파라미터(229)는 이들로 제한되는 것은 아니지만, 시뮬레이션이 실행되도록 스케줄링된 횟수, 시뮬레이션의 시작 시간, 시뮬레이션의 지속 시간, 및 시뮬레이션의 연속 실행 사이의 지속 시간을 포함한다. 레이턴시 애플리케이션(164)은 선택된 컴포넌트로부터 나오는 모든 메시지들이 영향을 받는지 여부, 또는 시스템 관리자에 의해 특정된 하나 이상의 이벤트 디스크립터(descriptor)를 충족시키는 메시지만이 영향을 받는지 여부를 판단할 수 있다. 예를 들어, 시뮬레이션은 사용자의 메일 주소를 요청하는 메시지에 응답하여 레이턴시만을 도입하도록 프로그래밍될 수 있다. 다른 실시예에서, 시뮬레이션은 타깃 컴포넌트로부터 나오는 메시지들의 총 개수의 일부 퍼센티지에 영향을 미치도록 프로그래밍될 수 있다.
일단 타깃 애플리케이션 컴포넌트가 선택되어 시뮬레이션이 시작되면, 복원 모니터(227)는 타깃 애플리케이션 컴포넌트에 종속된 애플리케이션 컴포넌트의 움직임을 관찰할 수 있다. 복원 모니터(227)는 종속 애플리케이션 컴포넌트로부터 레이턴시 및 다른 정보를 수집한 후, 로그(235)에 정보를 저장한다. 로그(235)의 콘텐츠는 종속 애플리케이션 컴포넌트에 의해 생성된 로깅 데이터를 포함할 뿐 아니라 모니터링 파라미터(229)에 의해 특정된 정보를 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템 내의 2개의 노드(300)를 예시한다. 도시된 바와 같이, 노드들은 애플리케이션 컴포넌트(316), 클라이언트 인터페이스(312), 및 서버 인터페이스(314)를 포함한다.
애플리케이션 컴포넌트(316)는 네트워킹 애플리케이션과 관련된 하나 이상의 기능들을 제공한다. 애플리케이션 컴포넌트(316)는 서버, 클라이언트, 또는 서버 및 클라이언트 모두로 기능할 수 있다. 예를 들어, 애플리케이션 컴포넌트(316(0))는 애플리케이션 컴포넌트(316(1))를 위한 서버로서 기능한다. 대응적으로, 애플리케이션 컴포넌트(316(1))는 애플리케이션 컴포넌트(316(0))의 클라이언트로서 기능한다. 또한, 애플리케이션 컴포넌트(316(0) 및 316(1))는 다른 노드(미도시)에서 실행되는 다른 애플리케이션 컴포넌트를 위한 클라이언트 및 서버로서 기능할 수 있다.
서버 인터페이스(314(0))는 애플리케이션 컴포넌트(316(0))에 의해 송수신되는 서버 기반 메시지들을 입터셉트한다. 대응적으로, 서버 인터페이스(314(1))는 애플리케이션 컴포넌트(316(1))에 의해 송수신되는 서버 기반 메시지들을 입터셉트한다. 서버 인터페이스(314)는 이들로 제한되는 것은 아니지만, 데이터 압축/해제, 및 부정확한 포맷의 메시지를 위한 에러 또는 예외 처리를 포함하는 이들 메시지에 대한 다양한 기능을 수행한다. 예를 들어, 서버 인터페이스(314(0))는 클라이언트 인터페이스(312(1))로부터 메시지를 수신하고, 적절한 포맷화를 위한 메시지를 체크하고, 이 메시지를 애플리케이션 컴포넌트(316(0))로 전달할 수 있다. 애플리케이션 컴포넌트(316(0))는 메시지를 프로세싱하고, 응답 메시지를 생성한다. 애플리케이션 컴포넌트(316(0))는 응답 메시지를 서버 인터페이스(314(0))로 송신한다. 서버 인터페이스(314(0))는 응답 메시지에 대한 하나 이상의 기능을 수행한 후, 응답 메시지를 클라이언트 인터페이스(312(1))에 송신한다. 서버 인터페이스(314)는 클라이언트로부터의 메시지와 서버로부터의 대응 응답 메시지 사이의 레이턴시를 측정하는 것과 같은 테스트 및 측정 기능들을 제공하도록 프로그래밍될 수 있다. 그 후, 서버 인터페이스(314)는 차후의 검색 및 평가를 위해 이들 측정 결과를 저장할 수 있다.
클라이언트 인터페이스(312(0))는 애플리케이션 컴포넌트(316(0))에 의해 송수신되는 클라이언트 기반 메시지들을 입터셉트한다. 대응적으로, 클라이언트 인터페이스(312(1))는 애플리케이션 컴포넌트(316(1))에 의해 송수신되는 클라이언트 기반 메시지들을 입터셉트한다. 클라이언트 인터페이스(314)는 이들로 제한되는 것은 아니지만, 데이터 압축/해제, 및 부정확한 포맷의 메시지를 위한 에러 또는 예외 처리, 및 메시지에 대한 응답이 서버로부터 수신되지 않는 경우의 메시지 재전송 시도를 포함하는 이들 메시지에 대한 다양한 기능을 수행한다. 예를 들어, 애플리케이션 컴포넌트(316(1))는 애플리케이션 컴포넌트(316(0))에 송신할 메시지를 생성한다. 애플리케이션 컴포넌트(316(1))는 클라이언트 인터페이스(312(1))에 메시지를 송신한다. 클라이언트 인터페이스(312(1))는 응답 메시지에 대해 하나 이상의 기능들을 수행한 후, 메시지를 서버 인터페이스(314(0))에 송신한다. 전술한 바와 같이, 서버 인터페이스(314(0)) 및 애플리케이션 컴포넌트(316(0))는 메시지를 프로세싱하고, 응답 메시지를 생성한다. 클라이언트 인터페이스(312(1))는 응답 메시지를 수신 및 프로세싱하고, 응답 메시지를 애플리케이션 컴포넌트(316(1))에 송신한다. 클라이언트 인터페이스(314)는 메시지와 대응 응답 메시지 사이의 레이턴시를 측정하는 것과 같은 테스트 및 측정 기능들을 제공하도록 프로그래밍될 수 있다. 그 후, 클라이언트 인터페이스(314)는 차후의 검색 및 평가를 위해 이들 측정 결과를 저장할 수 있다.
전술한 바와 같이, 관리 서버(162)는 구성, 모니터링, 테스트 기능 중에 통신 링크(130)를 통해 노드(102) 중 하나 이상과 통신한다. 레이턴시 애플리케이션(164)은 통신 링크(130)를 사용하여 시뮬레이션을 구성하고, 시뮬레이션의 실행을 시작하고, 시뮬레이션으로부터 기인하는 메트릭(metric)을 수집할 수 있다. 특히, 레이턴시 애플리케이션(164)은 다양한 애플리케이션 컴포넌트(316) 사이를 통과함에 따라 레이턴시 또는 에러 조건을 메시지에 도입하도록 클라이언트 인터페이스(312) 및 서버 인터페이스(314) 내의 파라미터들을 설정한다. 예를 들어, 레이턴시 애플리케이션(164)은 증가된 레이턴시를 도입하기 위해 미리 결정된 기간만큼 애플리케이션 컴포넌트(316(0))로/로부터 송신된 메시지들을 지연시키도록 서버 인터페이스(314(0))의 파라미터들을 설정할 수 있다. 다른 예시에서, 레이턴시 애플리케이션(164)은 메시지들을 원래의 메시지보다는 에러 메시지로 대체하도록 서버 인터페이스(314(0))에서의 파라미터를 설정할 수 있다. 레이턴시 애플리케이션(164)은 서버 인터페이스(314(0))를 통과하는 모든 메시지 또는 메시지의 일부 퍼센티지를 변경하도록 서버 인터페이스(314(0))를 구성할 수 있다. 대안으로서, 레이턴시 애플리케이션(164)은 이들로 제한되는 것은 아니지만 특정 URL(uniform resource locater)에 대한 액세스를 명시한 메시지들을 포함하는 하나 이상의 기준을 충족하는 메시지들을 변경하도록 서버 인터페이스(314(0))를 구성할 수 있다. 레이턴시 애플리케이션(164)은 서버 인터페이스(314(0))를 위해 전술된 것과 유사한 방식으로 클라이언트 인터페이스(312(0))에 대한 파라미터들을 설정할 수 있다.
시뮬레이션을 위해 스케줄링된 시간에 도달하면, 레이턴시 애플리케이션(164)은 애플리케이션 컴포넌트(316(0))(타깃 애플리케이션 컴포넌트)를 선택하고, 시뮬레이션에서의 설정에 따라 클라이언트 인터페이스(312(0)) 및 서버 인터페이스(314(0))에 파라미터들을 기입하고, 시뮬레이션을 시작한다. 시뮬레이션 중에, 타깃 애플리케이션 컴포넌트(316(0))에 종속된 애플리케이션 컴포넌트는 시뮬레이션에 의해 도입된 레이턴시 또는 에러 조건들로 인해 증가된 레이턴시, 에러 조건들, 또는 그 밖의 다른 문제점을 겪을 수 있다. 종속 애플리케이션 컴포넌트는 타깃 애플리케이션 컴포넌트(316(0))와 직접 연결될 수 있다(직접 종속). 대안으로서, 종속 애플리케이션 컴포넌트는 하나 이상의 다른 애플리케이션 컴포넌트를 통해 타깃 애플리케이션 컴포넌트(316(0))와 연결될 수 있다(간접 종속). 시뮬레이션이 스케줄링된 지속시간 동안 실행되는 경우, 레이턴시 애플리케이션(164)은 클라이언트 인터페이스(312(0)) 및 서버 인터페이스(314(0)) 내의 파라미터들을 이들의 원래의 동작 값으로 복원시키고, 시뮬레이션이 종료된다. 레이턴시 애플리케이션(164)은 타깃 애플리케이션 컴포넌트(316(0))에 의해 직간접적으로 영향을 받는 애플리케이션 컴포넌트들과 관련된 클라이언트 인터페이스(312) 및 서버 인터페이스(314)에 질의함으로써 레이턴시 정보 및 그 밖의 다른 메트릭을 수집한다. 레이턴시 애플리케이션(164)은 시스템 관리자에 의한 차후 분석을 위한 메트릭을 저장한다.
도 4는 본 발명의 일 실시예에 따라 네트워킹 애플리케이션의 복원성을 검증하는 방법(400)을 예시한다. 방법 단계들(400)이 도 1 내지 도 3의 시스템과 함께 설명되지만, 당업자는 방법 단계들(400)을 임의의 순서로 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있다는 점을 이해할 것이다.
방법(400)은 단계(402)에서 시작하는데, 여기서 레이턴시 애플리케이션(164)은 시뮬레이션을 위한 모드가 레이턴시 모드인지 여부를 판단한다. 시뮬레이션의 모드가 레이턴시 모드이면, 방법은 단계(404)로 진행하는데, 여기서 레이턴시 애플리케이션(164)은 시뮬레이션을 위한 레이턴시 모드를 설정하며 시뮬레이션과 관련된 지연 시간을 설정한다. 시뮬레이션 중에, 선택 메시지들은 지연 시간에 관해 증가된 레이턴시를 겪는데, 여기서 지연 시간은 이들로 제한되는 것은 아니지만, 실제 지연 시간, 최대 지연 시간, 또는 평균 지연 시간을 나타낼 수 있다. 단계(402)로 돌아가서, 시뮬레이션의 모드가 레이턴시 모드가 아니면, 시뮬레이션의 모드는 에러 모드이다. 방법(400)은 단계(406)로 진행하는데, 여기서 레이턴시 애플리케이션(164)은 에러 모드를 설정한다. 에러 모드 시뮬레이션에서, 선택 메시지들은 적절한 메시지 응답보다 에러 메시지를 리턴한다.
단계(404) 또는 단계(406)로부터, 방법(400)은 단계(408)로 진행하며, 여기서 레이턴시 애플리케이션(164)은 모든 메시지보다는 일정한 메시지 타입이 증가된 레이턴시 또는 에러 조건을 겪도록 시뮬레이션과 연관된 하나 이상의 이벤트 디스크립터를 설정할 수 있다. 예를 들어, 시뮬레이션은 사용자의 메일 주소를 요청하는 메시지 또는 특정 URL(uniform resource locator)에 대한 액세스를 요청하는 메시지에 대해서만 레이턴시 또는 에러 조건들을 도입할 수 있다. 이벤트 디스크립터가 설정되지 않으면, 애플리케이션 컴포넌트에 의해 송신된 모든 메시지들이 증가된 레이턴시 또는 에러 응답의 대상이 된다. 단계(410)에서, 레이턴시 애플리케이션(164)은 시뮬레이션 빈도 및 지속 시간을 설정한다. 예를 들어, 시뮬레이션은 10분의 지속시간 동안 1회, 주기적으로(예를 들어, 1주일에 1회) 또는 랜덤 간격으로 일어나도록 스케줄링될 수 있다. 단계(412)에서, 레이턴시 애플리케이션(164)은 타깃 애플리케이션에 종속된 애플리케이션 세트를 판단한다. 종속 애플리케이션은 타깃 애플리케이션에 직접 종속될 수 있으며, 여기서 종속 애플리케이션은 타깃 애플리케이션과의 직접 통신 링크를 갖는다. 대안으로서, 종속 애플리케이션은 타깃 애플리케이션에 간접 종속될 수 있으며, 여기서 종속 애플리케이션은 하나 이상의 중간 애플리케이션(intervening application)을 통해 타깃 애플리케이션에 의해 영향을 받을 수 있다. 단계(414)에서, 레이턴시 애플리케이션(164)은 전술한 바와 같이, 모드, 임의의 적용 가능 이벤트 디스크립터, 및 빈도를 포함하는 시뮬레이션 스케줄을 세이브한다.
단계(416)에서, 레이턴시 애플리케이션(164)은 시뮬레이션 실행 시간에 도달할 때까지 대기한다. 일단, 시뮬레이션 실행 시간에 도달하면, 방법(400)은 단계(418)로 진행하는데, 여기서 레이턴시 애플리케이션(164)은 이전에 세이브된 시뮬레이션을 따라 클라이언트 인터페이스(412) 또는 서버 인터페이스(414) 내의 시뮬레이션 특성을 설정한다. 단계(420)에서, 레이턴시 애플리케이션(164)은 분산 컴퓨터 시스템(100) 내의 관찰된 레이턴시의 기록을 시작한다. 특히, 레이턴시 애플리케이션(164)은 타깃 애플리케이션에 직간접적으로 종속된 애플리케이션들에 의해 겪는 레이턴시를 기록한다. 단계(422)에서, 레이턴시 애플리케이션(164)은 시뮬레이션 지속 기간이 만료되기를 기다린다. 단계(424)에서, 레이턴시 애플리케이션(164)은 시뮬레이션 전의 원래의 값들에 따라 클라이언트 인터페이스(312) 또는 서버 인터페이스(314) 내의 시뮬레이션 특성을 리셋한다. 단계(426)에서, 레이턴시 애플리케이션(164)은 시뮬레이션으로부터 기록된 결과들을 수집한다. 레이턴시 애플리케이션(164)은 관계형 데이터베이스, 보고서, 또는 일련의 그래프와 같이 수집된 결과를 임의의 기술적 실현 가능 방식으로 조직화할 수 있다. 그 후, 방법(400)은 종료된다.
요컨데, 네트워킹 애플리케이션의 복원성은 다양한 통신 링크에 레이턴시 또는 에러 조건들을 도입함으로써 분산 컴퓨터 시스템(100) 내에서 평가된다. 레이턴시 애플리케이션(164)은 특정 타깃 애플리케이션과 관련된 증가된 레이턴시 또는 에러 조건들의 원인이 되는 시뮬레이션을 스케줄링하도록 구성된다. 일 실시예에서, 레이턴시 애플리케이션(164)은 각각의 액티브 애플리케이션 컴포넌트를 특정 또는 불특정 간격으로 관찰하고, 하나를 선택하고, 선택된 액티브 애플리케이션 컴포넌트로부터 나온 하나 이상의 메시지에 레이턴시 또는 에러 메시지를 도입한다. 그 후, 레이턴시 애플리케이션(164)은 영향받은 액티브 애플리케이션 컴포넌트에 종속된 다른 액티브 애플리케이션 컴포넌트들에 대한 레이턴시 또는 에러 메시지의 효과를 측정한다.
레이턴시 또는 에러 시뮬레이션으로부터의 결과는 네트워킹 애플리케이션과 관련된 하나 이상의 애플리케이션 컴포넌트의 복원성을 판단하는데 유용할 수 있다는 이점이 있다. 시뮬레이션에 레이턴시 및 에러 조건들을 도입함으로써, 종속 컴포넌트에 대한 효과를 측정하는 것에 앞서, 레이턴시 애플리케이션(164)에 의해 수집된 정보는 시스템 관리자가 네트워킹 애플리케이션의 다양한 컴포넌트들을 개선하여 증가된 레이턴시 또는 에러 조건의 주기 동안 더 복원성이 있도록 하는 것을 도울 수 있다.
앞선 설명은 본 발명의 실시예들에 관한 것이었지만, 본 발명의 다른 실시예 및 추가 실시예가 본 발명의 기본 범위를 벗어나지 않는 한 고안될 수도 있다. 예를 들어, 본 발명의 양태들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 본 발명의 일 실시예는 컴퓨터 시스템과 함께 사용하기 위한 컴퓨터 제품으로서 구현될 수 있다. 프로그램 제품의 프로그램(들)은 실시예들(본 명세서에서 설명된 방법들을 포함함)의 기능을 정의하며, 다양한 컴퓨터 판독가능 스토리지 매체에 포함될 수 있다. 예시적인 컴퓨터 판독가능 스토리지 매체는 이들로 제한되는 것은 아니지만, (i) 정보가 영구적으로 저장되는 기록불가 스토리지 매체(예를 들어, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크, 플래시 메모리, ROM 칩, 또는 임의의 타입의 솔리드 스테이트 비휘발성 반도체 메모리와 같은 컴퓨터 내의 ROM(read-only memory) 디바이스); 및 (ii) 변경 가능한 정보가 저장된 기록가능 스토리지 매체(예를 들어, 디스켓 드라이브 내의 플로피 디스크 또는 하드 디스크 드라이브 또는 임의의 타입의 솔리드 스테이트 랜덤 액세스 반도체 메모리)를 포함한다. 본 발명의 기능들을 지시하는 컴퓨터 판독가능 명령어를 수행하는 경우, 이러한 컴퓨터 판독가능 스토리지 매체는 본 발명의 실시예이다.
앞의 내용을 고려하여, 본 발명의 범위는 다음의 청구항에 의해 판단된다.
Claims (11)
- 네트워킹 애플리케이션의 복원성을 검증하는 컴퓨터 구현 방법으로서,
상기 네트워킹 애플리케이션이 제공되는 네트워크 내의 복수의 액티브 애플리케이션 컴포넌트를 식별하는 단계;
하나 이상의 선택 기준에 기초하여 상기 복수의 액티브 애플리케이션 컴포넌트로부터 제1 액티브 애플리케이션 컴포넌트를 선택하는 단계;
미리 정의된 변경 규칙에 따라 상기 제1 액티브 애플리케이션 컴포넌트에 의해 송신된 메시지를 변경하는 단계; 및
상기 복수의 액티브 애플리케이션 컴포넌트에 포함된 제2 액티브 애플리케이션 컴포넌트를 모니터링하여 상기 변경된 메시지에 의해 야기된 상기 제2 액티브 애플리케이션 컴포넌트에 대한 효과를 판단하는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 변경하는 단계는 상기 메시지의 전송을 지연하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 변경하는 단계는 상기 메시지를 에러 메시지로 대체하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 메시지는 상기 제2 액티브 애플리케이션 컴포넌트 이외에 상기 복수의 액티브 애플리케이션 컴포넌트에 포함된 임의의 액티브 애플리케이션 컴포넌트로부터 수신된 메시지에 대한 응답을 포함하는 방법.
- 제1항에 있어서, 상기 메시지는 네트워크 관리자에 의해 특정된 하나 이상의 이벤트 디스크립터를 충족하는 요청에 대해 응답하는 방법.
- 제5항에 있어서, 상기 하나 이상의 이벤트 디스크립터는 특정 URL(uniform resource locator)과 관련된 액세스 동작을 기술하는 방법.
- 제1항에 있어서, 하나 이상의 로그 엔트리를 생성하여 상기 메시지의 변경으로부터 기인한 상기 제2 액티브 애플리케이션 컴포넌트에 대한 효과를 기록하는 단계를 더 포함하는 방법.
- 프로세싱 유닛에 의해 실행되는 경우 상기 프로세싱 유닛으로 하여금 네트워킹 애플리케이션의 복원성을 검증하는 동작을 수행하게 하는 명령어들을 포함하는 컴퓨터 판독가능 스토리지 매체로서,
상기 동작은,
상기 네트워킹 애플리케이션이 제공되는 네트워크 내의 복수의 액티브 애플리케이션 컴포넌트를 식별하는 단계;
하나 이상의 선택 기준에 기초하여 상기 복수의 액티브 애플리케이션 컴포넌트로부터 제1 액티브 애플리케이션 컴포넌트를 선택하는 단계;
미리 정의된 변경 규칙에 따라 상기 제1 액티브 애플리케이션 컴포넌트에 의해 송신된 메시지를 변경하는 단계; 및
상기 복수의 액티브 애플리케이션 컴포넌트에 포함된 제2 액티브 애플리케이션 컴포넌트를 모니터링하여 상기 변경된 메시지에 의해 야기된 상기 제2 액티브 애플리케이션 컴포넌트에 대한 효과를 판단하는 단계
를 포함하는 컴퓨터 판독가능 스토리지 매체. - 제8항에 있어서, 상기 메시지는 네트워크 관리자에 의해 특정된 하나 이상의 이벤트 디스크립터를 충족하는 요청에 대해 응답하는 컴퓨터 판독가능 스토리지 매체.
- 제8항에 있어서, 상기 동작은 하나 이상의 로그 엔트리를 생성하여 상기 메시지의 변경으로부터 기인한 상기 제2 액티브 애플리케이션 컴포넌트에 대한 효과를 기록하는 단계를 더 포함하는 컴퓨터 판독가능 스토리지 매체.
- 시스템으로서,
프로세서; 및
상기 프로세서에 의해 실행되는 경우 네트워킹 애플리케이션의 복원성을 검증하는 동작을 수행하는 명령어들을 포함하는 메모리를 포함하며,
상기 동작은,
상기 네트워킹 애플리케이션이 제공되는 네트워크 내의 복수의 액티브 애플리케이션 컴포넌트를 식별하는 단계;
하나 이상의 선택 기준에 기초하여 상기 복수의 액티브 애플리케이션 컴포넌트로부터 제1 액티브 애플리케이션 컴포넌트를 선택하는 단계;
미리 정의된 변경 규칙에 따라 상기 제1 액티브 애플리케이션 컴포넌트에 의해 송신된 메시지를 변경하는 단계; 및
상기 복수의 액티브 애플리케이션 컴포넌트에 포함된 제2 액티브 애플리케이션 컴포넌트를 모니터링하여 상기 변경된 메시지에 의해 야기된 상기 제2 액티브 애플리케이션 컴포넌트에 대한 효과를 판단하는 단계를 포함하는 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/445,862 US9015289B2 (en) | 2012-04-12 | 2012-04-12 | Method and system for evaluating the resiliency of a distributed computing service by inducing a latency |
US13/445,862 | 2012-04-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130116184A true KR20130116184A (ko) | 2013-10-23 |
KR101478698B1 KR101478698B1 (ko) | 2015-01-02 |
Family
ID=48095650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130039653A KR101478698B1 (ko) | 2012-04-12 | 2013-04-11 | 레이턴시를 유도함으로써 분산 컴퓨팅 서비스의 복원성을 평가하기 위한 방법 및 시스템 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9015289B2 (ko) |
EP (1) | EP2650791B1 (ko) |
JP (2) | JP2013232187A (ko) |
KR (1) | KR101478698B1 (ko) |
CN (1) | CN103377077B (ko) |
AU (1) | AU2013202560B2 (ko) |
CA (1) | CA2810869C (ko) |
DK (1) | DK2650791T3 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015289B2 (en) * | 2012-04-12 | 2015-04-21 | Netflix, Inc. | Method and system for evaluating the resiliency of a distributed computing service by inducing a latency |
GB2502571A (en) * | 2012-05-31 | 2013-12-04 | Ibm | Modifying the lifespan of metrics in response to detecting a fault |
US9182949B2 (en) * | 2013-03-15 | 2015-11-10 | Imagine Communications Corp. | Systems and methods for controlling branch latency within computing applications |
US9519557B2 (en) * | 2014-07-11 | 2016-12-13 | Microsoft Technology Licensing, Llc | Compliance testing through sandbox environments |
US9692665B2 (en) * | 2014-07-30 | 2017-06-27 | Microsoft Technology Licensing, Llc | Failure analysis in cloud based service using synthetic measurements |
US9444708B2 (en) * | 2014-07-30 | 2016-09-13 | Microsoft Technology Licensing, Llc | Detection of outage in cloud based service using synthetic measurements and anonymized usage data |
US9436553B2 (en) * | 2014-08-04 | 2016-09-06 | Microsoft Technology Licensing, Llc | Recovering usability of cloud based service from system failure |
US9747153B2 (en) * | 2015-06-22 | 2017-08-29 | Microsoft Technology Licensing, Llc | Resilience as a service |
US10212034B1 (en) * | 2015-09-24 | 2019-02-19 | Amazon Technologies, Inc. | Automated network change management |
US11093836B2 (en) * | 2016-06-15 | 2021-08-17 | International Business Machines Corporation | Detecting and predicting bottlenecks in complex systems |
US10387231B2 (en) * | 2016-08-26 | 2019-08-20 | Microsoft Technology Licensing, Llc | Distributed system resiliency assessment using faults |
US10320957B2 (en) | 2016-09-01 | 2019-06-11 | International Business Machines Corporation | Increasing data resiliency operations based on identifying bottleneck operators |
US10866851B2 (en) * | 2016-09-28 | 2020-12-15 | Netflix, Inc. | Determining the failure resiliency of a service in a distributed computing system |
US10691516B2 (en) * | 2017-04-05 | 2020-06-23 | International Business Machines Corporation | Measurement and visualization of resiliency in a hybrid IT infrastructure environment |
US10673708B2 (en) * | 2018-10-12 | 2020-06-02 | International Business Machines Corporation | Auto tuner for cloud micro services embeddings |
US11234157B2 (en) * | 2019-04-08 | 2022-01-25 | T-Mobile Usa, Inc. | Network latency aware mobile edge computing routing |
CN110427329B (zh) * | 2019-08-13 | 2023-04-25 | 杭州有赞科技有限公司 | 一种数据库sql性能数据的采集方法及系统 |
US11223552B1 (en) | 2021-01-08 | 2022-01-11 | Microsoft Technology Licensing, Llc | Aggregation-based determination of cloud computing service resiliency to chaos events |
US11921604B2 (en) * | 2021-10-28 | 2024-03-05 | Red Hat, Inc. | Evaluating system recovery using emulated production systems |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225707A (ja) * | 1994-02-10 | 1995-08-22 | Fujitsu Ltd | アプリケーションのテスト方法及びそのテスト支援装置 |
JP3571121B2 (ja) | 1995-08-09 | 2004-09-29 | ヤンマー農機株式会社 | 耕耘装置 |
US6618389B2 (en) * | 1999-11-22 | 2003-09-09 | Worldcom, Inc. | Validation of call processing network performance |
US7240364B1 (en) * | 2000-05-20 | 2007-07-03 | Ciena Corporation | Network device identity authentication |
US7336613B2 (en) * | 2000-10-17 | 2008-02-26 | Avaya Technology Corp. | Method and apparatus for the assessment and optimization of network traffic |
US7089456B2 (en) | 2002-06-03 | 2006-08-08 | Honeywell International, Inc | Error response test system and method using test mask variable |
US7334222B2 (en) | 2002-09-11 | 2008-02-19 | International Business Machines Corporation | Methods and apparatus for dependency-based impact simulation and vulnerability analysis |
EP1678888B1 (en) * | 2003-08-21 | 2010-02-10 | Vidiator Enterprises Inc. | Quality of experience (qoe) metrics for wireless communication networks |
US7809982B2 (en) * | 2004-10-01 | 2010-10-05 | Lockheed Martin Corporation | Reconfigurable computing machine and related systems and methods |
US8116731B2 (en) * | 2007-11-01 | 2012-02-14 | Finsphere, Inc. | System and method for mobile identity protection of a user of multiple computer applications, networks or devices |
JPWO2010131425A1 (ja) | 2009-05-14 | 2012-11-01 | 日本電気株式会社 | 逐次発生データ解析装置、システム、方法、及びプログラム |
US8073946B1 (en) * | 2009-08-17 | 2011-12-06 | Google Inc. | Monitoring of metrics to identify abnormalities in a large scale distributed computing environment |
US8397138B2 (en) * | 2009-12-08 | 2013-03-12 | At & T Intellectual Property I, Lp | Method and system for network latency virtualization in a cloud transport environment |
GB2477921A (en) * | 2010-02-17 | 2011-08-24 | Sidonis Ltd | Analysing a network using a network model with simulated changes |
US9858133B2 (en) | 2010-09-20 | 2018-01-02 | Netflix, Inc. | Techniques for assessing the resiliency of a distribution computing service provided by a collection of interacting servers |
US8171137B1 (en) * | 2011-05-09 | 2012-05-01 | Google Inc. | Transferring application state across devices |
US9015289B2 (en) * | 2012-04-12 | 2015-04-21 | Netflix, Inc. | Method and system for evaluating the resiliency of a distributed computing service by inducing a latency |
US9612935B2 (en) * | 2014-11-21 | 2017-04-04 | Vmware, Inc. | Enhanced resiliency testing by enabling state level control for request |
-
2012
- 2012-04-12 US US13/445,862 patent/US9015289B2/en active Active
-
2013
- 2013-03-26 CA CA2810869A patent/CA2810869C/en active Active
- 2013-03-27 AU AU2013202560A patent/AU2013202560B2/en active Active
- 2013-04-08 JP JP2013080302A patent/JP2013232187A/ja active Pending
- 2013-04-11 EP EP13163304.2A patent/EP2650791B1/en active Active
- 2013-04-11 KR KR20130039653A patent/KR101478698B1/ko active IP Right Grant
- 2013-04-11 DK DK13163304.2T patent/DK2650791T3/da active
- 2013-04-12 CN CN201310126250.5A patent/CN103377077B/zh active Active
-
2014
- 2014-12-03 JP JP2014244827A patent/JP2015092354A/ja active Pending
-
2015
- 2015-04-20 US US14/691,538 patent/US9864666B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
AU2013202560B2 (en) | 2015-09-17 |
CA2810869C (en) | 2017-03-21 |
JP2015092354A (ja) | 2015-05-14 |
JP2013232187A (ja) | 2013-11-14 |
US9015289B2 (en) | 2015-04-21 |
EP2650791A3 (en) | 2017-09-20 |
CN103377077B (zh) | 2018-01-02 |
US9864666B2 (en) | 2018-01-09 |
CN103377077A (zh) | 2013-10-30 |
CA2810869A1 (en) | 2013-10-12 |
US20150227444A1 (en) | 2015-08-13 |
AU2013202560A1 (en) | 2013-10-31 |
DK2650791T3 (da) | 2020-07-20 |
KR101478698B1 (ko) | 2015-01-02 |
US20130275518A1 (en) | 2013-10-17 |
EP2650791B1 (en) | 2020-05-06 |
EP2650791A2 (en) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101478698B1 (ko) | 레이턴시를 유도함으로써 분산 컴퓨팅 서비스의 복원성을 평가하기 위한 방법 및 시스템 | |
EP2619664B1 (en) | Validating the resiliency of networked applications | |
US9491248B2 (en) | Real-time analytics of web performance using actual user measurements | |
US9436579B2 (en) | Real-time, multi-tier load test results aggregation | |
US9251035B1 (en) | Load test charts with standard deviation and percentile statistics | |
US9213751B2 (en) | Method of increasing capacity to process operational data | |
Jayathilaka et al. | Detecting performance anomalies in cloud platform applications | |
WO2014165092A1 (en) | Using canary instances for software analysis | |
US20160094392A1 (en) | Evaluating Configuration Changes Based on Aggregate Activity Level | |
US20180285082A1 (en) | Comparing scripts | |
WO2015122872A1 (en) | Client application profiling | |
Dalle Vacche et al. | Zabbix network monitoring essentials | |
AU2015271911B9 (en) | Method and system for evaluating the resiliency of a distributed computing service by inducing latency | |
US10079715B1 (en) | Methods, systems and computer readable mediums for performing metadata-driven data collection | |
Srirama et al. | Deliverable D6. 7 Performance testing of cloud applications, Final Release | |
Saljooghinejad | Latency Based Approach for Characterization of Cloud Application Performance. | |
Vallath et al. | Testing for Scalability | |
Chothia et al. | Grok the data center | |
Moulavi | Self Tuning for Elastic Storage in Cloud Environment | |
Albrecht | Developing and Evaluating Novel Network Protocols on Wide-Area Testbeds | |
Srirama et al. | Deliverable D6. 6 Performance testing of cloud applications, Interim Release |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170929 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190924 Year of fee payment: 6 |