KR20200029574A - 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법 - Google Patents

시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법 Download PDF

Info

Publication number
KR20200029574A
KR20200029574A KR1020207004959A KR20207004959A KR20200029574A KR 20200029574 A KR20200029574 A KR 20200029574A KR 1020207004959 A KR1020207004959 A KR 1020207004959A KR 20207004959 A KR20207004959 A KR 20207004959A KR 20200029574 A KR20200029574 A KR 20200029574A
Authority
KR
South Korea
Prior art keywords
service
request
policy
simulation
services
Prior art date
Application number
KR1020207004959A
Other languages
English (en)
Other versions
KR102339747B1 (ko
Inventor
유 나까따
히로아끼 고노우라
요시끼 마쯔우라
다까시 쯔노
Original Assignee
가부시키가이샤 히타치세이사쿠쇼
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 히타치세이사쿠쇼 filed Critical 가부시키가이샤 히타치세이사쿠쇼
Publication of KR20200029574A publication Critical patent/KR20200029574A/ko
Application granted granted Critical
Publication of KR102339747B1 publication Critical patent/KR102339747B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

복수의 서비스로 구성된 서비스 시스템의 가용성을 시스템 구축 전에 추정한다. 문제가 발생한 서비스에 의존하는 서비스의 처리 내용 및 리퀘스트 송신처 중 적어도 하나가 변경된다. 이러한 변경을 시뮬레이션에 있어서 실현하기 위해서, 각 서비스 간의 의존 관계를 기술한 시스템 구성, 의존처 서비스에 관한 처리 상황에 따른 처리 변경을 기술한 타 서비스 리퀘스트 송신 폴리시, 및 리퀘스트의 송신 레이트를 기술한 리퀘스트 생성 폴리시가 입력된다. 시뮬레이터는, 리퀘스트 생성 폴리시에 기초하여 리퀘스트가 도착했다고 한 경우의 서비스 시스템 거동 시뮬레이션을, 시스템 구성 및 타 서비스 리퀘스트 송신 폴리시에 기초하여 실행한다.

Description

시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법
본 발명은, 일반적으로 설계된 시스템의 시뮬레이션에 관한 것이다.
설계된 시스템의 시뮬레이션에 관한 기술로서, 특허문헌 1에 개시된 기술이 알려져 있다. 특허문헌 1에 개시된 시뮬레이터는, 설계한 시스템에, 입력 부하와, 시스템을 구성하는 하드웨어 고장과 같은 외란을 부여할 때의 시스템의 거동을 출력한다.
일본 특허공개 제2005-196601호 공보
이하, 「시스템 개발」은, 시스템의 설계와 구축을 포함한다. 즉, 시스템 개발에서는, 시스템의 설계, 설계된 시스템의 구축, 및 구축된 시스템의 검증과 같은 프로세스를 거쳐 시스템의 개발이 완성된다.
최근, 클라우드 컴퓨팅의 보급에 의해, 마이크로 서비스 아키텍처에 기초하는 시스템 개발이 일반화되고 있다. 마이크로 서비스 아키텍처에 기초하는 시스템 개발에서는, 서비스 시스템이, 개발자가 개발한 서비스와, 다른 벤더가 개발한 서비스와, 클라우드 컴퓨팅의 제공원이 제공하는 서비스와 같은 복수의 서비스를 조합하여 구축되는 경우가 많다. 이들 서비스는, 분산 환경(예를 들어, 복수의 계산기(예를 들어 범용 계산기)로 구성된 분산형의 계산기 시스템)상에서 분산적으로 디플로이되는 경우가 많다. 그리고, 개개의 서비스에는 API(Application Programming Interface)가 준비되어 있으며, 서비스끼리가 서로 네트워크를 경유하여 처리의 리퀘스트를 서로 송신하고, 서비스 시스템의 처리(예를 들어, 하나 또는 복수의 업무)가 실현된다. 이러한 시스템 개발에 의해, 서비스의 재이용성에 의한 신속한 시스템의 구축이나, 신속한 리소스의 확보에 의한 스케일링 성능의 향상이 가능하게 되어, 개발과 운용의 양면에서 장점이 기대되고 있다.
그러나, 마이크로 서비스 아키텍처에 기초하는 시스템 개발의 결점은, 서비스 시스템의 리스폰스 타임이 변동하는 경우의 원인 구명이나, 서비스의 장애에 대한 대응을 설계하는 것이 곤란한 것이다.
모놀리식의 시스템 개발, 즉, 단일의 서버상에 전개되는 서비스 시스템의 시스템 개발에서는, 서비스 시스템의 리스폰스 타임이 변동하는 경우의 원인 구명은 비교적 용이하다. 왜냐하면, 서비스 시스템 내의 처리의 흐름을 따라 가기 쉽고, 또한 실행 시의 리소스 소비량 등을 감시하는 일이, 단일의 서버로 완결되기 때문이다. 그 때문에, 미리 장애가 될 수 있는 개소도 추측하기 쉬워, 대응도 설계에 편성시키는 것이 비교적 용이하다.
이에 반하여, 마이크로 서비스 아키텍처에서는, 소규모의 독립된 처리가 분산 환경으로서의 계산기 시스템에서 실행되고, 서비스 시스템에 대한 하나의 리퀘스트에 관한 처리가, 계산기 시스템을 구성하는 복수의 서비스가 분산된 서버 간에 걸치기 때문에, 개발 시 및 실행 시에 처리의 흐름을 파악하는 것이 어려워진다. 또한, 하나의 리퀘스트에 대한 처리가, 다수의 개소(서버)에서 처리가 실행되기 때문, 서버 간에서 다수의 통신이 발생한다. 그 때문에, 처리의 보틀넥이, 지금까지 존재하기 어려운 네트워크나 메시지 큐에 존재할 가능성이 있다. 또한, 동일한 서비스 시스템 중 적어도 일부의 서비스가 상이한 개발 조직에 의해 개발된 서비스인 경우도 있기 때문에, 서비스 시스템 내에서 이용되는 전체 서비스의 처리 내용이나 특징을 파악할 수 있는 사람(예를 들어 개발자 또는 설계자)은 적다.
일반적인 시스템 개발에서는, 설계한 시스템의 가용성의 검증을 위해서, 설계한 시스템을 시험적으로 구축한 후에(즉, 실전 환경과 동등한 시험 환경으로서의 시험용 시스템을 구축한 후에), 부하 시험이나 리스폰스 타임의 측정을 행하고 그 시험 결과를 기초로 설계를 재검토한다는 것을 반복하는 일이 행해진다. 단, 이 방법은, 시험을 위한 시험 환경이 필요해 시간적 비용이 많이 든다.
그래서, 특허문헌 1과 같은 시뮬레이션 기술의 이용을 하고, 서비스 시스템의 구축 전에 당해 서비스 시스템의 가용성을 추정하는 것이 생각된다.
그러나, 특허문헌 1에 있어서의 시뮬레이션 대상의 시스템은, 서비스 시스템과는 달리, 복수의 서버로 구성된 시스템(예를 들어 3계층 Web 시스템)이다. 즉, 특허문헌 1에서는, 시뮬레이션 대상의 시스템의 구성 요소는 서버이며, 소위 오토스케일 의해 시스템이 유지된다.
한편, 서비스 시스템(전형적으로는, 마이크로 서비스 아키텍처에 기초하는 시스템 개발에 있어서 설계된 서비스 시스템)이 디플로이되는 계산기 시스템(복수의 서버)은, 일반적으로 시스템 개발측(예를 들어, 서비스 시스템을 제공하는 기업)의 관리하에 없는 계산기 시스템(예를 들어, 클라우드 컴퓨팅을 제공하는 기업의 관리하의 계산기 시스템)이다.
따라서, 시스템 개발측에서, 서비스 시스템의 가용성을 유지하기 위해서 계산기 시스템에 있어서의 오토스케일의 방법을 제어한다고 하는 방법을 취할 수는 없다. 즉, 서비스 시스템의 가용성 검증을 위한 시뮬레이션에, 특허문헌 1에 개시된 기술을 적용할 수는 없다.
어느 쪽의 서비스에 문제가 발생하여도(예를 들어, 일부의 서비스에서 장애나 리스폰스 타임의 변동과 같은 문제가 발생하여도), 서비스 시스템 전체로서 기대하는 동작(예를 들어, 엔드 유저에 대해서 어떠한 리스폰스를 돌려주는 것)을 보증할 수 있도록 하기 위해서, 문제가 발생한 서비스에 의존하는 서비스의 처리 내용 및 리퀘스트 송신처 중 적어도 하나가 변경된다. 예를 들어, 어떤 서비스로부터 당해 어떤 서비스의 의존처의 서비스에 리퀘스트가 송신되었지만 일정 시간 지나도 의존처의 서비스로부터 당해 어떤 서비스에 리스폰스가 돌아오지 않는 경우에, 당해 어떤 서비스가, 하기 중 어느 것을 실행하는 것이 생각된다.
·당해 어떤 서비스가, 에러 통지를 생성하고, 당해 서비스의 의존원(또는 엔드 유저)으로 에러 통지를 돌려준다(당해 어떤 서비스의 처리 내용의 변경의 일례).
·당해 어떤 서비스가, 리퀘스트 송신처를, 의존처의 서비스로부터, 경고 통지용 서비스나, 대체 서비스로 변경한다(당해 어떤 서비스의 리퀘스트 송신처의 변경 일례).
·당해 어떤 서비스가, 일정 빈도로 송신되는 리퀘스트의 대부분의 리퀘스트를 변경 후의 리퀘스트 송신처에 송신하지만, 일부의 리퀘스트를, 의존처의 서비스의 문제가 해소되어 있을지도 모르기 때문에 의존처의 서비스에 송신한다(당해 어떤 서비스의 처리 내용 및 리퀘스트 송신처의 변경의 일례).
이와 같이 서비스 시스템 내에서 처리 내용 및 리퀘스트 송신처의 적어도 하나를 변경하는 것을 시뮬레이션에 있어서 실현(재현)하기 위해서, 하기의 (a1)과 (a2)와 (a3)의 정보가, 시뮬레이터에 입력된다.
(a1) 복수의 서비스로 구성되고 서비스 간에서 리퀘스트가 송수신됨으로써 당해 복수의 서비스가 제휴하여 엔드 유저로부터의 리퀘스트에 따르는 처리를 실행하는 서비스 시스템에 있어서의 각 서비스 간의 의존 관계를 기술한 시스템 구성.
(a2) 상기 복수의 서비스 중 1 이상의 서비스의 각각에 대하여 하기를 기술한 타 서비스 리퀘스트 송신 폴리시(policy).
·당해 서비스의 의존처이기 때문에 리퀘스트 송신처로 되는 서비스에 있어서의 장애 유무와 처리 속도 중 적어도 하나인 처리 상황에 관한 조건.
·당해 조건이 충족되었다고 한 경우의 당해 서비스의 변경 후의 처리 내용과 변경 후의 리퀘스트 송신처 중 적어도 하나인 처리 변경.
(a3) 서비스 시스템에 엔드 유저로서 송신하는 리퀘스트의 내용과 당해 리퀘스트의 송신 레이트를 기술한 리퀘스트 생성 폴리시.
시뮬레이터는, 리퀘스트 생성 폴리시에 기초하는 리퀘스트가 당해 리퀘스트 생성 폴리시에 기초하는 송신 레이트로 도착했다고 한 경우의 서비스 시스템 거동인 시스템 거동의 시뮬레이션을, 시스템 구성 및 타 서비스 리퀘스트 송신 폴리시에 기초하여 실행하고, 당해 시뮬레이션의 실행 결과로서의 시스템 거동을 나타내는 정보인 시뮬레이션 결과 정보를 출력한다.
복수의 서비스로 구성된 서비스 시스템, 특히, 마이크로 서비스 아키텍처에 기초하여 설계되고 분산 환경에 디플로이되는 서비스 시스템에 있어서, 리퀘스트 송신처 및 처리 내용 중 적어도 하나를 변경하는 것을, 시뮬레이션에 있어서 실현(재현)할 수 있어, 당해 변경이 행해진 경우의 시스템 거동을 시뮬레이트하여 출력할 수 있다. 이 때문에, 서비스 시스템의 가용성을 추정할 수 있다.
본 명세서에 있어서 개시되는 주제의, 적어도 하나의 실시예의 상세는, 첨부되어 있는 도면과 이하의 기술 중에서 설명된다. 개시되는 주제의 기타 특징, 양태, 효과는, 이하의 개시, 도면, 청구항에 의해 밝혀질 것이다.
도 1은, 마이크로 서비스 시뮬레이터의 입출력을 예시하는 도면.
도 2는, 마이크로 서비스 시뮬레이터의 이용 플로우를 예시하는 도면.
도 3은, 시뮬레이션 입력 데이터 작성 툴 및 마이크로 서비스 시뮬레이터의 실행에 이용되는 장치의 내부 구성을 나타내는 도면.
도 4는, 시뮬레이션 입력 데이터 작성 툴에 의해 표시되는 시스템 구성 작성 지원 화면을 예시하는 도면.
도 5는, 타 서비스 리퀘스트 송신 폴리시의 일례를 나타내는 도면.
도 6은, 리퀘스트 생성 폴리시의 일례를 나타내는 도면.
도 7은, 마이크로 서비스 시뮬레이터의 시스템 구성을 예시하는 도면.
도 8은, 시뮬레이션 환경 구축 시의 처리 시퀀스를 예시하는 도면.
도 9는, 시뮬레이션 중의 폴리시 변경의 처리 시퀀스를 예시하는 도면.
도 10은, 시스템에의 리퀘스트에 대한 처리 시퀀스를 예시하는 도면.
도 11은, 마이크로 서비스 시뮬레이터에 대한 외란 설정 시의 처리 시퀀스를 예시하는 도면.
도 12는, 외란 발생 시나리오의 일례를 나타내는 도면.
이하의 설명에서는, 「인터페이스 디바이스부」는, 1 이상의 인터페이스 디바이스여도 된다. 당해 1 이상의 인터페이스 디바이스는, 하기 중 어느 것이어도 된다.
·I/O(Input/Output) 디바이스와 원격의 표시용 계산기 중 적어도 하나에 대한 I/O 인터페이스 디바이스. 표시용 계산기에 대한 I/O 인터페이스 디바이스는, 통신 인터페이스 디바이스여도 된다. 적어도 하나의 I/O 디바이스는, 유저 인터페이스 디바이스, 예를 들어 키보드 및 포인팅 디바이스와 같은 입력 디바이스와, 표시 디바이스와 같은 출력 디바이스 중 어느 것이어도 된다.
·1 이상의 통신 인터페이스 디바이스. 1 이상의 통신 인터페이스 디바이스는, 1 이상의 동종의 통신 인터페이스 디바이스(예를 들어 1 이상의 NIC(Network Interface Card))여도 되고 2 이상의 이종(異種)의 통신 인터페이스 디바이스(예를 들어 NIC와 HBA(Host Bus Adapter))여도 된다.
또한, 이하의 설명에서는, 「메모리부」는, 1 이상의 메모리이며, 전형적으로는 주기억 디바이스여도 된다. 메모리부에 있어서의 적어도 하나의 메모리는, 휘발성 메모리여도 되고 불휘발성 메모리여도 된다.
또한, 이하의 설명에서는, 「PDEV부」는, 1 이상의 PDEV이며, 전형적으로는 보조 기억 디바이스여도 된다. 「PDEV」는, 물리적인 기억 디바이스(Physical storage DEVice)를 의미하고, 전형적으로는, 불휘발성의 기억 디바이스, 예를 들어 HDD(Hard Disk Drive) 또는 SSD(Solid State Drive)이다.
또한, 이하의 설명에서는, 「기억부」는, 메모리부 및 PDEV부 중 적어도 하나(전형적으로는 적어도 메모리부)이다.
또한, 이하의 설명에서는, 「프로세서부」는, 1 이상의 프로세서이다. 적어도 하나의 프로세서는, 전형적으로는, CPU(Central Processing Unit)와 같은 마이크로프로세서이지만, GPU(Graphics Processing Unit)와 같은 타종(他種)의 프로세서여도 된다. 적어도 하나의 프로세서는, 싱글 코어여도 되고 멀티코어여도 된다. 적어도 하나의 프로세서는, 처리의 일부 또는 전부를 행하는 하드웨어 회로(예를 들어 FPGA(Field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit))와 같은 광의의 프로세서여도 된다.
또한, 이하의 설명에서는, 「kkk부」(인터페이스 디바이스부, 기억부 및 프로세서부를 제외함)의 표현으로 기능을 설명하는 경우가 있지만, 기능은, 1 이상의 컴퓨터 프로그램이 프로세서부에 의해 실행됨으로써 실현되어도 되고, 1 이상의 하드웨어 회로에 의해 실현되어도 된다. 프로그램이 프로세서부에 의해 실행됨으로써 기능이 실현되는 경우, 정해진 처리가, 적절하게 기억부 및/또는 통신 인터페이스 디바이스부 등을 이용하면서 행해지기 때문에, 기능은 프로세서부의 적어도 일부로 되어도 된다. 기능을 주어로 하여 설명된 처리는, 프로세서부 혹은 그 프로세서부를 갖는 장치가 행하는 처리로 해도 된다. 프로그램은, 프로그램 소스로 인스톨되어도 된다. 프로그램 소스는, 예를 들어 프로그램 배포 계산기 또는 계산기가 판독 가능한 기록 매체(예를 들어 비일시적인 기록 매체)여도 된다. 각 기능의 설명은 일례이며, 복수의 기능이 하나의 기능으로 합쳐지거나, 하나의 기능이 복수의 기능으로 분할되거나 해도 된다.
또한, 이하의 설명에서는, 「데이터 세트」라 함은, 프로그램으로부터 본 하나의 논리적인 전자 데이터의 덩어리이며, 예를 들어 레코드, 파일, 키 밸류 페어 및 튜풀 중 어느 것이어도 된다.
또한, 이하의 설명에서는, 「xxx 데이터 세트」라는 표현으로, 입력에 대해서 출력이 얻어지는 데이터 세트(정보)를 설명하는 경우가 있지만, 데이터 세트는, 어떤 구조의 데이터여도 되고, 입력에 대한 출력을 발생하는 신경 회로망과 같은 학습 모델이어도 된다. 이하의 설명에 있어서, 각 데이터 세트의 구성은 일례이며, 하나의 데이터 세트는, 2 이상의 데이터 세트로 분할되어도 되고, 2 이상의 데이터 세트의 전부 또는 일부가 하나의 데이터 세트여도 된다.
또한, 이하의 설명에서는, 장치가 「표시용 정보를 표시한다」라 함은, 장치가 갖는 표시 디바이스에 표시용 정보를 표시하는 것이어도 되고, 장치가 표시용 계산기에 표시용 정보를 송신하는 것이어도 된다(후자의 경우에는 표시용 계산기에 의해 표시용 정보가 표시됨). 표시용 정보의 일례가, 시스템 거동을 나타내는 정보인 시뮬레이션 결과 정보이다.
이하, 본 발명의 적합한 일 실시예에 대하여, 도면을 이용하여 설명한다.
본 실시예에 따른 시뮬레이터는, 마이크로 서비스 아키텍처에 기초하여 설계된 서비스 시스템의 가용성을 추정하기 위한 시뮬레이터에 관한 것이다. 그래서, 이하, 본 시뮬레이터를, 「마이크로 서비스 시뮬레이터」라고 칭한다. 또한, 마이크로 서비스 시뮬레이터 내에서 구축한 후술하는 가상 시스템(가상적인 서비스 시스템) 내의 가상 서비스(서비스에 대응한 가상적인 서비스)에 대해서 의도적으로 발생시키는, 과부하 상태나 리스폰스 타임의 장시간화 등을, 「외란」이라고 칭한다.
도 1은, 마이크로 서비스 시뮬레이터의 입출력의 예를 나타낸다.
마이크로 서비스 시뮬레이터(0112)의 입력은, 시스템 구성(0106)과, 리퀘스트 생성 폴리시(0108)와, 타 서비스 리퀘스트 송신 폴리시(0107)다. 이들 입력 데이터는, 입력 데이터 스토리지(0105)에 보존된다.
시스템 구성(0106)은, 서비스 시스템을 구성하는 서비스와, 서비스 간의 의존 관계를 나타낸 데이터 세트이다. 시스템 구성(0106)의 상세는, 도 4를 기초로 설명은 후술한다.
타 서비스 리퀘스트 송신 폴리시(0107)는, 복수의 서비스 중 1 이상의 서비스의 각각에 대하여, (1) 당해 서비스의 의존처이기 때문에 리퀘스트 송신처로 되는 서비스에 있어서의 장애 유무와 처리 속도 중 적어도 하나인 처리 상황에 관한 조건, 및 (2) 당해 조건이 충족되었다고 한 경우의 당해 서비스의 변경 후의 처리 내용과 변경 후의 리퀘스트 송신처 중 적어도 하나인 처리 변경을 기술한 데이터 세트이다. 타 서비스 리퀘스트 송신 폴리시(0107)는, 예를 들어 각 서비스가, 의존하는 다른 서비스로 리퀘스트를 보낼 때의 폴리시를 나타내는 데이터 세트이다. 타 서비스 리퀘스트 송신 폴리시(0107) 중에서, 의존처의 서비스 상태에 따라서, 리퀘스트의 송신처를 변경하는 것을 기술할 수 있도록 한다. 또한, 자신의 서비스의 처리 내용을 변경하는 것도 기술할 수 있도록 한다. 예를 들어, 어떤 서비스가, 의존처의 서비스에서 리스폰스 타임이 어떤 임계값을 초과한 경우에, 그 의존처의 서비스로 리퀘스트를 송신하지 않고, 자신의 서비스로 리퀘스트를 송신한 리퀘스트원의 서비스에 에러 메시지를 보내는 것을 기술할 수 있다.
리퀘스트 생성 폴리시(0108)는, 시뮬레이션 중에, 마이크로 서비스 시뮬레이터(0112) 내에 구축한 가상 시스템으로 의사적으로 송신되는 메시지를 작성할 때 이용되는 폴리시다. 리퀘스트 생성 폴리시(0108)에서는, 생성되는 메시지의 내용과, 송신처의 서비스와, 일정 시간 내의 송신 레이트가 지정 가능하다. 또한 송신에 이용되는 프로토콜을 지정하는 것도 가능하게 한다. 프로토콜이 지정됨으로써, 프로토콜 특유의 송신 속도나, 재송 제어나, 동기 통신 또는 비동기 통신 등의 특성을 시뮬레이션 내에서 재현할 수 있다. 또한, 리퀘스트 생성 폴리시(0108)에서는, 생성하는 리퀘스트 수를 지정할 수도 있다. 리퀘스트 수는, 무한을 지정함으로써, 시뮬레이션을 영속적으로 가동시키는 것이 가능하다. 이 경우, 시뮬레이션은, 마이크로 서비스 시뮬레이터(0112)의 유저(예를 들어 시스템 설계자)가, 마이크로 서비스 시뮬레이터(0112)에 대해서 시뮬레이션 종료를 명령함으로써 종료한다.
이후에는, 시스템 구성(0106)과, 리퀘스트 생성 폴리시(0108)와, 타 서비스 리퀘스트 송신 폴리시(0107)를 총칭하여, 「입력 데이터」라고 칭한다. 또한, 이 이후에 기재하는 유저는, 모두 마이크로 서비스 시뮬레이터(0112)의 유저를 가리키기로 한다. 또한, 「엔드 유저」는, 서비스 시스템의 유저를 가리키기로 하고, 예를 들어 서비스 시스템에 대한 리퀘스트의 발행원이다.
마이크로 서비스 시뮬레이터(0112)의 외부에는, 시뮬레이션 입력 데이터 작성 툴(0103), 외란 입력 콘솔(0110) 및 폴리시 입력 콘솔(0113)이 존재한다. 이들 요소(0103, 0110 및 0113) 중 어느 것도, 컴퓨터 프로그램이어도 되고 물리적인 장치여도 된다. 예를 들어, 클라우드 기반(복수의 계산 리소스를 갖는 계산기 시스템)에 있어서, 마이크로 서비스 시뮬레이터(0112), 시뮬레이션 입력 데이터 작성 툴(0103), 외란 입력 콘솔(0110) 및 폴리시 입력 콘솔(0113) 중 적어도 하나가 실행되어도 된다.
입력 데이터는, 유저가, 시뮬레이션 입력 데이터 작성 툴(0103)을 이용하여 작성할 수 있다. 시뮬레이션 입력 데이터 작성 툴(0103)은, 시스템 구성(0106), 타 서비스 리퀘스트 송신 폴리시(0107), 및 리퀘스트 생성 폴리시(0108) 중 적어도 하나에 포함하는 정보 요소의 입력을 접수하는 1 이상의 UI(User Interface)를 표시한다. 당해 1 이상의 UI는, 하나 또는 복수의 GUI(Graphical User Interface)에 포함되어 있어도 된다. 당해 1 이상의 UI 경유로 입력된 정보 요소가, 시스템 구성(0106), 타 서비스 리퀘스트 송신 폴리시(0107), 및 리퀘스트 생성 폴리시(0108) 중 적어도 하나에 포함된다. 시뮬레이션 입력 데이터 작성 툴(0103)이 제공하는 1 이상의 UI를 이용하여 효율적으로 입력 데이터를 준비하는 것이 기대된다. 예를 들어, 시뮬레이션 입력 데이터 작성 툴(0103)은, 시뮬레이션 중에 가상 시스템에 투입하는 리퀘스트 메시지의 템플릿을 저장하는 DB(데이터베이스)인 리퀘스트 템플릿 DB(0101)로부터, 메시지의 템플릿을 임포트 가능하다. 또한, 서비스 시스템을 구성하는 서비스의 템플릿을 저장하는 서비스 템플릿 DB(0102)로부터, 서비스의 템플릿을 임포트 가능하다. 또한, 작성한 입력 파일을 입력 데이터 리포지터리(0104)에 보존하고, 다음 번에 작성할 때 임포트하는 것이 가능하다. 또한, 입력 데이터는, 유저가, 임의의 에디터로 작성하는 것은 가능하도록 한다.
마이크로 서비스 시뮬레이터(0112)는, 시스템 거동의 정보의 출력의 일례로서, 각 서비스의 리퀘스트 처리 시간인 리스폰스 타임의 추이나, 어떤 시각에 각 서비스가 소비하는 리소스양을 나타내는 정보를 출력(표시)할 수 있다. 이들 정보의 출력의 일례는, 시스템 거동을 표시하는 UI의 일례인 시스템 거동 출력 화면(예를 들어 GUI)(0111)의 출력이다. 시스템 거동 출력 화면(0111)에 의해, 출력 결과를 그래프화하여 출력하는 것이 가능하다. 즉, 마이크로 서비스 시뮬레이터(0112)는, 마이크로 서비스 아키텍처에 기초하여 설계된 서비스 시스템(IT 시스템이라고 칭해도 됨)에 원하는 가용성이 있음을 확인하기 위해서, 시스템 개발측에 있어서 설계된 서비스 시스템에 대해서 상정되는 리퀘스트가 입력되었을 때의 시스템 거동(예를 들어, 각 서비스의 리스폰스 타임이나 이용 리소스양의 추이)을 추정하고, 당해 시스템 거동을 가시화할 수 있다. 또한, 시뮬레이션 로그 DB(0113)에 로그로서 보존하는 것이 가능하다.
서비스 시스템의 가용성을 측정하기 위해서는, 시뮬레이션의 도중에, 특정한 서비스에 의도적으로 외란을 발생시켜, 외란 발생 시의 가용성을 확인하는 것이 바람직하다. 그래서, 유저는, 외란 입력 콘솔(0110)을 사용하여, 시뮬레이션의 실행 중에, 특정한 서비스에 대해서, 외란(예를 들어, 장애, 또는 과부하에 의한 리스폰스 타임의 장시간화)을, 의도적으로 발생시킬 수 있다. 또한, 유저가 외란 입력 콘솔(0110)로 입력한 외란은, 입력 데이터 스토리지(0105) 내에, 외란 발생 시나리오(0109)로서 보존할 수 있도록 한다. 외란 발생 시나리오(0109)는, 서비스 시스템에 포함되는 적어도 하나의 서비스 ID와, 당해 적어도 하나의 서비스에 대하여 지정 시점에서의 외란(의도적인 처리 정지, 처리 속도 향상 또는 처리 속도 저하)을 기술한 데이터 세트이다. 외란 발생 시나리오(0109)는, 시뮬레이션 개시 전에(또는, 시뮬레이션의 실행 중에), 마이크로 서비스 시뮬레이터(0112)에 입력되고, 시뮬레이션 개시 후에 마이크로 서비스 시뮬레이터(0112)가 외란 발생 시나리오(0109)를 따라서 가상 시스템 내의 가상 서비스에 외란을 발생시킬 수 있다.
서비스 시스템의 가용성을 측정하기 위해서는, 시뮬레이션의 도중에(예를 들어, 시스템 거동 출력 화면(0111)이 표시하는 리스폰스 타임이나 소비 리소스양의 추이를 기초로), 엔드 유저로서 발행하는 리퀘스트의 내용 또는 송신 레이트나, 적어도 하나의 서비스 처리 내용 또는 리퀘스트 송신처를 변경하는 것이 바람직하다. 그래서, 유저는, 폴리시 입력 콘솔(0113)을 이용하여, 시뮬레이션의 실행 중에, 타 서비스 리퀘스트 송신 폴리시(0107) 및 리퀘스트 생성 폴리시(0108)의 적어도 하나를 변경하고, 마이크로 서비스 시뮬레이터(0112)는, 변경 후의 폴리시를 시뮬레이션 실행 중에 접수하여, 변경 후의 폴리시를, 시뮬레이션을 정지시키지 않고 반영하고, 당해 반영 후의 폴리시에 따라서, 당해 시뮬레이션을 계속한다. 이에 의해, 추정된 시스템 거동의 출력과 당해 출력에 기초하는 폴리시 변경의 반복을, 시뮬레이션을 멈추지 않고 행한다고 하는 효율적인 처리를 기대할 수 있다. 또한, 유저가 폴리시 입력 콘솔(0113)로 입력한 폴리시는, 입력 데이터 스토리지(0105) 내에, 타 서비스 리퀘스트 송신 폴리시(0107) 및 리퀘스트 생성 폴리시(0108) 중 어느 것으로서 보존할 수 있도록 한다.
본 실시예에 의하면, 마이크로 서비스 시뮬레이터(0112)는, 상술한 시스템 구성(0106), 타 서비스 리퀘스트 생성 폴리시(0107), 및 리퀘스트 생성 폴리시(0108)를 입력하고, 리퀘스트 생성 폴리시(0108)에 기초하는 리퀘스트가 당해 폴리시(0108)에 기초하는 송신 레이트로 도착했다고 하는 경우의 시스템 거동의 시뮬레이션을, 시스템 구성(0106) 및 타 서비스 리퀘스트 송신 폴리시(0107)에 기초하여 실행하고, 당해 시스템 거동을 나타내는 정보를 표시한다. 이에 의해, 마이크로 서비스 아키텍처에 기초하여 설계되고 분산 환경에 디플로이되는 서비스 시스템에 있어서, 리퀘스트 송신처 및 처리 내용 중 적어도 하나를 변경하는 것을, 시뮬레이션에 있어서 실현(재현)할 수 있어, 당해 변경이 행해진 경우의 시스템 거동을 시뮬레이트하여 출력할 수 있다. 이 때문에, 서비스 시스템의 가용성을 추정할 수 있다.
구체적으로는, 예를 들어 마이크로 서비스 시뮬레이터(0112)는, 시뮬레이션의 실행 중에, 서비스 시스템에 포함되는 1 이상의 서비스의 각각에 대하여, 타 서비스 리퀘스트 송신 폴리시(0107)에 기초하여, 당해 서비스의 의존처의 서비스의 처리 상황을 변경하고, 그것에 수반하여, 당해 서비스의 처리 내용 및 리퀘스트 송신처 중 적어도 하나를 변경하고, 당해 변경 후의 시스템 거동을 시뮬레이트한다. 마이크로 서비스 시뮬레이터(0112)는, 당해 1 이상의 서비스의 각각에 관한 의존처의 서비스의 처리 상황의 변경 전후의 시스템 거동을 나타내는 정보를 포함한 정보를 표시한다. 이에 의해, 유저는, 의존처 서비스의 처리 상황의 변경(의존원 서비스의 처리 내용 및 리퀘스트 송신처 중 적어도 하나의 변경)의 전후에서의 시스템 거동을 비교할 수 있다.
또한, 입력 데이터 스토리지(0105), 리퀘스트 템플릿 DB(0101), 서비스 템플릿 DB(0102), 입력 데이터 리포지터리(0104), 및 시뮬레이션 로그 DB(0113) 중 적어도 하나는, 1 이상의 계산기가 갖는 기억부에 의해 실현된다.
도 2는, 마이크로 서비스 시뮬레이터(0112)를 유저가 이용할 때의 이용 흐름도를 나타낸다.
유저의 이용이 개시되면(0201), 우선, 유저는, 시뮬레이션 입력 데이터 작성 툴(0103)을 사용하여, 입력 데이터를 작성한다(0202). 입력 데이터는, 리퀘스트 템플릿 DB(0101)나 서비스 템플릿 DB(0102)에 저장된 템플릿을 사용하여 작성해도, 입력 데이터 리포지터리(0104)로부터 과거의 입력 데이터를 임포트하여, 그것을 수정하거나, 또는 수정하지 않고 작성해도 된다. 그 후, 유저는, 작성한 입력 데이터를 입력 데이터 스토리지(0105)에 보존한다(0203).
다음으로, 유저는, 마이크로 서비스 시뮬레이터(0112)에 대해서, 입력 데이터 스토리지(0105)에 보존되어 있는 입력 데이터를 로딩하도록 명령한다(0204). 로딩이 왼료되면, 유저는, 마이크로 서비스 시뮬레이터(0112)에 대해서, 시뮬레이션의 개시를 명령한다(0205).
시뮬레이션이 개시 후, 유저는 외란 입력 콘솔(0110)을 사용하여, 하나 이상의 서비스에 대한 외란의 모의 발생을 지시할 수 있다(0206). 외란의 영향을 시뮬레이션으로 확인할 필요가 없는 경우에는, 이 스텝은 행하지 않아도 된다.
또한, 유저는, 시뮬레이션의 실행 중에, 타 서비스 리퀘스트 송신 폴리시(0107)를 변경할 수 있다(0207). 타 서비스 리퀘스트 송신 폴리시를 시뮬레이션 중에 변경하기 위해서는, 예를 들어 먼저 유저가 변경 후의 타 서비스 리퀘스트 송신 폴리시(0107)를 입력 데이터 스토리지(0105) 내에 준비하고, 마이크로 서비스 시뮬레이터(0112)에, 변경 후의 타 서비스 리퀘스트 송신 폴리시(0107)를 임포트하도록 명령한다. 만일 시뮬레이션 중에, 타 서비스 리퀘스트 송신 폴리시(0107)를 수정할 필요가 없는 경우에는, 이 스텝은 행하지 않아도 된다.
또한, 유저는, 시뮬레이션의 실행 중에, 리퀘스트 생성 폴리시(0108)를 변경 할 수 있다(0208). 리퀘스트 생성 폴리시(0108)를 변경하는 경우에는, 예를 들어 타 서비스 리퀘스트 송신 폴리시(0107)의 변경과 마찬가지로, 유저가 우선 입력 데이터 스토리지(0105)에 변경 후의 리퀘스트 생성 폴리시(0108)를 준비하고, 마이크로 서비스 시뮬레이터(0112)로 변경 후의 리퀘스트 생성 폴리시(0108)를 임포트하도록 명령한다. 만일 시뮬레이션 중에, 리퀘스트 생성 폴리시(0108)를 수정할 필요가 없는 경우에는, 이 스텝은 행하지 않아도 된다.
시뮬레이션의 종료 조건은, 임의의 조건이어도 된다. 예를 들어, 종료 조건은, 가상 시스템에 대한 리퀘스트가, 리퀘스트 생성 폴리시(0108)에 기재된 메시지 생성 횟수만큼, 가상 시스템에 투입되어, 리퀘스트에 따른 처리가 실행을 끝마치거나, 혹은 시뮬레이션 중에 유저가 마이크로 서비스 시뮬레이터(0112)에, 시뮬레이션 종료 명령을 보내는 것이다. 전술한 어느 쪽의 조건에 적합한 경우에는, 시뮬레이션이 종료되고(0209), 유저의 이용은 종료로 된다(0210).
도 3은, 시뮬레이션 입력 데이터 작성 툴(0103) 및 마이크로 서비스 시뮬레이터(0112)의 실행에 이용되는 장치의 내부 구성을 나타낸다. 당해 장치는, 시뮬레이션 장치의 일례이며, 계산기여도 된다. 이하, 도 3에 예시된 장치를, 편의상, 「시뮬레이션 장치」라고 칭한다. 또한, 본 실시예에서는, 시뮬레이션 입력 데이터 작성 툴(0103) 및 마이크로 서비스 시뮬레이터(0112)가 상기 장치에서 실행되지만, 시뮬레이션 입력 데이터 작성 툴(0103) 및 마이크로 서비스 시뮬레이터(0112)는, 서로 다른 2 이상의 계산기에서 실행되어도 된다.
시뮬레이션 장치(0301)는, 프로세서부(0302)와 I/O 인터페이스 디바이스부(0303)와 기억부(0304)와 통신 인터페이스 디바이스부(0305)로 구성되고, 그들은 내부의 버스로 서로 접속되어 있다. I/O 인터페이스 디바이스부(0303)와 통신 인터페이스 디바이스부(0305)는, 인터페이스 디바이스부이다. I/O 인터페이스 디바이스부(0303)에, 키보드와 같은 입력 디바이스나 액정 디스플레이와 같은 출력 디바이스와 같은 1 이상의 유저 인터페이스 디바이스가 접속된다. 통신 인터페이스 디바이스부(0305)에, 1 이상의 외부 장치(0306)가, 예를 들어 인터넷과 같은 네트워크 경유로 접속된다. 단, 기억부(0304)에 저장되는 데이터는 장치마다 상이하고, 각각의 장치의 기억부(0304)에는, 그 장치의 기능을 실현하기 위한 프로그램과, 이벤트 로그나 이벤트 로그에 대한 처리를 행한 후의 데이터를 저장하는 기억 영역이 존재해도 된다. 시뮬레이션 입력 데이터 작성 툴(0103) 및 마이크로 서비스 시뮬레이터(0112)는, 기억부(0304)로부터 로드되고 프로세서부(0302)에 의해 실행된다.
도 4는, 시뮬레이션 입력 데이터 작성 툴(0103)에 의해 표시되는 시스템 구성 작성 지원 화면을 나타낸다.
시스템 구성 작성 지원 화면(0401)은, 복수의 UI로서, 서비스 템플릿 화면(0404)(제1 UI의 일례), 시스템 구성 설계 화면(0405)(제2 UI의 일례), 및 서비스 상세 화면(0406)(제3 UI의 일례)을 갖는다. 시스템 구성(0106)이 포함하는 1 이상의 정보 요소는, 시스템 구성 작성 지원 화면(0401) 경유로 입력된 정보 요소이다.
서비스 템플릿 화면(0404)은, 서비스 템플 DB(0102)에 저장되어 있는 하나 또는 복수의 서비스 템플릿 중 원하는 1 이상의 서비스 템플릿의 선택을 유저로부터 접수하는 UI이다. 당해 화면(0404)에는, 예를 들어 4개의 서비스 템플릿에 각각 대응한 4개의 템플릿 오브젝트(0407 내지 0410)가 표시되어 있다.
시스템 구성 설계 화면(0405)은, 서비스 템플릿 화면(0404)으로부터 선택된 1 이상의 서비스 템플릿(템플릿 오브젝트)에 각각 대응한 1 이상의 서비스 오브젝트를 표시하고, 당해 1 이상의 서비스 오브젝트의 의존 관계의 지정을 유저로부터 접수하는 UI이다. 도 4의 예에서는, 5개의 서비스에 각각 대응한 5개의 서비스 오브젝트(0411 내지 0415)가 표시되어 있다. 적어도 하나의 서비스 오브젝트가, 서비스 템플릿 화면(0404)으로부터 선택된 서비스 템플릿에 대응한 서비스 오브젝트여도 된다. 또한, 서비스 템플릿 화면(0404)에는, 어느쪽의 서비스 템플릿을 사용 하는 일 없이 작성된 서비스에 대응하는 서비스 오브젝트가 표시되어도 된다. 시스템 구성 설계 화면(0405)에 있어서, 서비스 간의 의존 관계는, 서비스 오브젝트(노드) 간의 화살표(에지)로 표현 가능하지만, 타종의 표현이 채용되어도 된다. 화살표로 연결된 2개의 서비스 오브젝트에 있어서, 화살표의 시점(원)에 있는 서비스 오브젝트는, 의존원의 서비스에 대응한 오브젝트이며, 화살표의 종점(처)에 있는 서비스 오브젝트는, 의존처의 서비스에 대응한 오브젝트이다.
서비스 상세 화면(0406)은, 시스템 구성 설계 화면(0405)에 전개(표시)된 1 이상의 서비스 오브젝트 중 선택된 서비스 오브젝트(예를 들어 서비스 C의 오브젝트(0413))에 대응한 서비스 템플릿에 대한 1 이상의 값의 입력을 접수하는 UI이다.
서비스 시스템을 구성하는 복수의 서비스의 적어도 하나는, 서비스 상세 화면(0406)을 통해 입력된 1 이상의 값이 설정된 서비스 템플릿에 기초하는 서비스이다. 서비스 템플릿을 이용함으로써, 서비스 시스템의 설계를 효율적으로 행할 수 있다. 적어도 하나의 서비스 템플릿은, 과거에 작성된 서비스 그 자체여도 된다.
도 4에 예시된 시스템 구성 작성 지원 화면(0401)을 이용하여, 유저는, 예를 들어 다음과 같이 하여, 서비스 시스템을 설계할 수 있다. 또한, 당해 화면(0401)에 대한 유저 조작에 응답한 표시는, 시뮬레이션 입력 데이터 작성 툴(0103)에 의해 제어된다.
유저는, 시스템 구성 설계 화면(0405)에서, 시스템 구성(0106)을 기술한다. 시스템 구성(0106)에는, 시스템 내에서 이용하는 서비스의 전부와, 서비스 간의 의존 관계가 표현된다. 서비스 간을 연결하는 화살표는, 어떤 서비스가 다른 서비스에 리퀘스트를 송신하는 것을 의미하고 있다. 예를 들어, 서비스 A의 의존처는 서비스 B 및 서비스 C이기 때문에, 서비스 A는, 서비스 B와 서비스 C에 리퀘스트를 송신하게 된다.
유저가, 시스템 구성 설계 화면(0405) 내의 서비스를 선택하면, 선택한 서비스의 상세가, 서비스 상세 화면(0406)에 표시된다. 서비스의 상세예로서, 서비스가 리퀘스트마다의 처리에서 소비하는 리소스양이 표시된다. 소비하는 리소스의 양을 설정하는 항목에 대응한 UI로서, CPU 수의 입력용 UI(0416)와, 메모리양의 입력용 UI(0417)와, 동시에 다수의 리퀘스트가 도착할 때 리소스양을 동적으로 증가시키는 오토스케일의 대응 유무의 설정용 UI(0418)가 표시된다. 이들 값은, 마이크로 서비스 시뮬레이터(0112)의 입력 데이터로서, 유저를 설정할 수 있도록 한다. 오토스케일에 대응하지 않는 경우에는, 각 서비스에 할당되는 리소스양도 설정할 수 있도록 한다. 서비스 상세 화면(0406)의 리스폰스 타임 변동 항목의 UI(0419)에서는, 유저가 서비스의 리스폰스 타임을 설정할 수 있다. 서비스 상세 화면(0406)의, 처리 동기성 항목의 UI(0420)에서는, 그 서비스가 리퀘스트를 받을 때, 리퀘스트원을 리스폰스 대기 상태에서 기다리게 하거나, 기다리게 하지 않고 비동기적으로 처리를 행할지를, 유저가 설정할 수 있다.
서비스 상세 화면(0406)에 있어서의 리퀘스트의 처리 부하와, 리스폰스 타임 변동과, 처리 동기성의 항목은, 서비스가 처리하는 리퀘스트의 내용마다 개별로 기재하는 것도 가능하도록 한다.
서비스 템플릿 화면(0404)에서는, 시스템 구성 설계 화면(0405) 내에 포함하는 서비스의 서비스 템플릿이 전부 또는 부분적으로 일람 표시된다. 유저가, 서비스 템플릿을, 시스템 구성 설계 화면(0405)에 붙이면, 붙여진 서비스 템플릿은 서비스로서 인식된다. 서비스 템플릿으로 만들어진 서비스는, 서비스 상세 화면(0406)에 값이 설정되어 있으며, 유저는 필요하면 어느 항목의 값을 수정한다. 이에 의해, 유저가 시스템 구성(0106)을 작성하는 시간이 단축된다.
시스템 구성의 설계가 완료된 경우, 유저가 보존 버튼(0403)을 클릭 또는 탭 함으로써, 설계된 시스템 구성을 나타내는 시스템 구성(0106)이, 입력 데이터 리포지터리(0104)와 입력 데이터 스토리지(0105)에 보존된다. 또한, 임포트 버튼(0402)을 클릭함으로써, 입력 데이터 리포지터리(0104)에 보존된 시스템 구성(0106)을, 시스템 구성 설계 화면(0405)에 임포트할 수 있다.
도 4에 예시한 바와 같이, 유저가, 서비스의 선택(작성)과 서비스 간의 의존 관계의 구축을 반복함으로써, 서비스 시스템을 설계할 수 있다. 설계된 서비스 시스템 중 적어도 하나의 서비스는, 유저측(시스템 개발측)과는 상이한 조직이 개발한 서비스일 수 있다. 유저는, 각 서비스 간에서 의존 관계를 갖는 복수의 서비스의 제휴에 의해 하나 또는 복수의 업무를 실현하는 서비스 시스템을 설계한다.
또한, 시뮬레이션 입력 데이터 작성 툴(0103)에서, 각 서비스의 타 서비스 리퀘스트 송신 폴리시(0107)와, 시스템에의 리퀘스트 생성 폴리시(0108)를, 유저가 설정하는 화면이 있어도 되게 한다.
도 5는, 타 서비스 리퀘스트 송신 폴리시(0107)의 일례를 나타낸다. 도 5의 타 서비스 리퀘스트 송신 폴리시(0107)는, JSON(JavaScript(등록상표) Object Notation) 포맷에 따르고 있지만, 포맷은 JSON일 필요는 없다.
0503행째의 기술은, 0502행째부터 0528행째에 기술되어 있는 폴리시의 적용 대상인 서비스를 지정하고 있다. 0504행째의 기술은, 0503행째에 지정된 서비스가, 리퀘스트를 기다리는 서비스의 식별자이다. "{"와 "}"로 둘러싸인 개소는, 변수를 나타내고 있다. 유저는, 변수의 값마다, 서비스에 도달한 리퀘스트의 처리와 전송처를 기술할 수 있다. 0505행째의 기술은, 포트 번호를 나타낸다. 0507행째의 기술은, 서비스에 대한 리퀘스트의 메소드를 나타낸다. 예를 들어, HTTP에 의한 리퀘스트를 기다리는 경우에는, GET, PUT, PUSH, DELETE 중 어느 것이 지정된다. 0509행째와 0510행째의 기술은, 0504행째의 문자열의 변수로서 지정되어 있던 개소의 값을 지정하고 있다. 여기에서의 애스테리스크는, 임의의 문자열을 나타낸다. 특별히 애스테리스크일 필요는 없으며, 엔드 포인트의 기술로서 유효하지 않은 문자 또는 문자열이면 된다. 0511행째부터 0526행째의 기술은, 엔드 포인트가 0504행째와 0509행째와 0510행째의 기술의 조합으로 지정된 리퀘스트에 대한 처리와 전송처를 나타내고 있다.
0512행째부터 0524행째의 기술은, 리퀘스트의 송신처 서비스와, 송신처 서비스에 리스폰스가 장시간 돌아오지 않는 등의 장애가 발생한 경우의 처리를 나타내고 있다. 0513행째의 기술은, 리퀘스트의 송신처 서비스를 나타내고 있다. 0514행째는, 리퀘스트의 메소드를 나타낸다. 0515행째의 기술은, 리퀘스트 송신처의 엔드 포인트를 나타낸다. 0517행째와 0524행째의 기술은, 송신처의 서비스에 장애가 발생했다고 간주하는 지표와 기준을 나타낸다. 도 5의 예에서는, 서비스 C가 서비스 D에 장애가 발생했다고 간주하는 기준으로서, 서비스 D의 리스폰스 타임이 50㎳ 이상이라고 설정되어 있다. 이 밖의 장애 판정 기준으로서, 서비스 C가 서비스 D에 보내서 아직 리스폰스가 돌아오지 않는 리퀘스트 수가, 일정수를 초과한 경우에 장애로 간주하는 등의 장애의 판정 기준도 지정할 수 있도록 한다. 0518행째의 기술은, 리퀘스트 송신처의 서비스에 장애가 발생했다고 간주한 경우의 처리를 지정하고 있다. 도 5의 예에서는, 서비스 D에서 장애가 발생하였다고 간주하면, 다음에 서비스 D에 송신해야 할 리퀘스트는, 서비스 D로 송신하지 않고, 서비스 C에 리퀘스트를 송신한 서비스에, 에러를 나타내는 리스폰스를 돌려준다. 그 조작은, 시스템 전체의 리스폰스 타임이, 서비스 D의 장애에 의해 장시간화하는 것을 방지한다.
유저는, 0517행째부터 0523행째에 상당하는 개소에, 리퀘스트 송신처에서 장애가 발생했을 때 리퀘스트를 보낼 곳의 서비스를 지정할 수 있다. 예를 들어, 시스템을 감시하는 서비스에 경고 메시지를 송신하는 경우에는, 유저는 시스템을 감시하는 서비스를 지정한다.
0522행째의 기술은, 리퀘스트 송신처의 서비스가 장애로부터 회복되었다고 간주하는 기준을 나타내고 있다. 도 5의 예에서는, 시간으로 하고 있으며, 0523행째의 기술에 의해, 시간이 1초 경과하면, 서비스 D가 장애로부터 복구되었다고 간주하는 것을 의도하고 있다.
0503행째에서 지정한 서비스가, 복수의 서비스에 리퀘스트를 보내는 경우, 유저는 0512행째부터 0525행째의 기술을, 배열 형식으로 열거한다. 또한, 0503행째에서 지정한 서비스가, 복수의 리퀘스트 메소드를 접수하는 경우, 유저는 0507행째부터 0528행째의 기술을, 메소드를 키로 한 연상 배열로 열거한다. 또한, 유저는 0502행째부터 0530행째의 기술을, 시스템 구성(0106)에 포함되는 전체 서비스마다 배열 형식으로 열거한다.
도 5의 예에 의하면, 타 서비스 리퀘스트 송신 폴리시(0107)는, 1 이상의 서비스의 각각에 대하여, 하나의 서비스를 예로 들면(도 5의 설명에 있어서 「대상 서비스」), 하기 중 적어도 하나,
·대상 서비스의 ID,
·대상 서비스의 의존처의 서비스(예를 들어, 대상 서비스가 리퀘스트를 기다리는 서비스)의 ID,
·대상 서비스에 도달한 리퀘스트의 통상 시에서의 처리 내용(「통상 시」란, 의뢰처 서비스의 문제 시 이외일 때),
·의뢰처 서비스에 문제가 있다고 하는 조건(예를 들어, 리스폰스 타임 임계값),
·당해 조건이 충족된 경우인 문제 시에서의 처리 내용 및 리퀘스트 송신처 중 적어도 하나
를 포함한다.
도 6은, 리퀘스트 생성 폴리시(0108)의 일례를 나타낸다. 도 6의 리퀘스트 생성 폴리시(0108)는, JSON(JavaScript(등록상표) Object Notation) 포맷에 따르고 있지만, 포맷은 JSON일 필요는 없다.
리퀘스트 생성 폴리시(0108)는, 시뮬레이션 중에 시스템에 대한 리퀘스트를 생성할 때의 폴리시다. 0603행째의 기술은, 리퀘스트의 프로토콜을 나타내고 있다. 0604행째의 기술은, 시스템에 대한 리퀘스트 송신처인 엔드 포인트를 나타내고 있다. 0605행째의 기술은, 엔드 포인트의 포트 번호를 나타내고 있다. 0606행째의 기술은, 시뮬레이션 중에 시스템에 송신되는 리퀘스트의 수를 나타내고 있다. 0617행째와 같이, 리퀘스트 수의 항목에 수치 이외의 문자를 입력한 경우에는, 리퀘스트가 시스템에 영구적으로 계속해서 보내진다. 0607행째부터 0611행째의 기술은, 시스템에 대한 리퀘스트의 송신 레이트를 나타내고 있다. 도 6의 0607행째부터 0611행째의 예에서는, 단위 시간당 평균 100 리퀘스트이며, 분산이 10의 정규 분포에 따르는 확률로 리퀘스트가 송신된다.
시스템에 복수 종류의 리퀘스트를 보내는 경우나, 복수의 서비스에 리퀘스트를 송신하는 경우, 0602행째부터 0612행째의 기술과 동등한 기술을, 복수 기재한다. 도 6의 예에서는, 시뮬레이션 중에, 서비스 A의 80번 포트에, HTTP 프로토콜로, 단위 시간당 평균 100개이면서 또한 분산이 10인 정규 분포에 따르는 송신 레이트로 리퀘스트가 도착하고, 또한, 서비스 B의 18181번 포트에, Thrift 프로토콜로, 단위 시간당 100개의 리퀘스트가 고정 레이트로 도착한다.
도 7은, 마이크로 서비스 시뮬레이터(0112)의 시스템 구성을 나타낸다.
마이크로 서비스 시뮬레이터(0112)는, 시뮬레이션 제어부(0706)와, 입력 파일 로드부(0703)와, 가상 시스템 구축부(0704)와, 리퀘스트 생성부(0707)와 같은 복수의 모듈(기능)을 갖는다.
시뮬레이션 제어부(0706)는, 유저로부터의 명령에 따라서, 시뮬레이션 환경의 구축, 시뮬레이션의 개시, 시뮬레이션의 일시 정지, 시뮬레이션의 종료, 특정한 서비스에 대한 외란의 입력을 행한다. 또한, 유저로부터의 명령은, 외란 입력 콘솔(0110), 폴리시 입력 콘솔(0113), 및 그 밖의 도시하지 않은 입력 콘솔 중 적어도 하나의 입력 콘솔 경유로 수신할 수 있다.
입력 파일 로드부(0703)는, 시뮬레이션 제어부(0706)로부터의 지시에 따라서, 입력 데이터 스토리지(0105) 내에 존재하는 입력 파일(입력 데이터 세트의 일례)을 판독하고, 가상 시스템 구축부(0704)에 전송한다.
가상 시스템 구축부(0704)는, 입력 파일 로드부(0703)로부터 수취한 입력 파일을 기초로, 시뮬레이션 대상인 서비스 시스템을 마이크로 서비스 시뮬레이터(0112) 내에서 가상적으로 구축한다. 그 때, 가상 시스템 구축부(0704)는, 시스템 구성에 기초하여, 서비스 시스템에 포함되는 각 서비스의 인스턴스를 생성한다. 즉, 가상 시스템 구축부(0704)가, 복수의 서비스에 각각 대응한 복수의 가상 서비스(0708)로 구성된 가상적인 서비스 시스템인 가상 시스템(0700)을 구축한다. 따라서, 가상 시스템(0700)에 있어서, 각 가상 서비스 간의 의존 관계는, 서비스 시스템에 있어서의 각 서비스 간의 의존 관계와 동일하다. 각 가상 서비스(0708)는, 대응하는 서비스가 가상화된 서비스이며, 구체적으로는, 예를 들어 대응하는 서비스의 인스턴스에 상당한다.
시뮬레이션 제어부(0706)는, 유저로부터의 시뮬레이션의 제어를 접수한다. 시뮬레이션 제어부(0706)가 접수하는 제어는, 시뮬레이션 내에서의 가상 시스템(0700)의 구축과, 시뮬레이션의 개시와, 시뮬레이션의 일시 정지와, 시뮬레이션의 종료와, 특정한 서비스에 대한 의도적인 외란 발생 중 어느 것이다.
리퀘스트 생성부(0707)는, 시뮬레이션 중에, 가상 시스템(0700)에 입력하는 리퀘스트를 생성한다. 가상 시스템 구축부(0704)에 의해 생성된 가상 서비스(0708)는, 서비스 제어 수신부(0709)와, 서비스 처리부(0710)와, 타 서비스 리퀘스트부(0711)를 포함한다. 이하, 하나의 가상 서비스(0708)를 예로 든다(도 7의 설명에 있어서 「대상 가상 서비스(0708)」).
서비스 제어 수신부(0709)는, 시뮬레이션 제어부(0706)로부터 대상 가상 서비스(0708)에 대한 제어를 접수한다. 예를 들어, 유저가 시뮬레이션을 일시 정지시키는 경우에는, 유저가 시뮬레이션 제어부(0706)에 대해서 일시 정지를 명령하고, 시뮬레이션 제어부(0706)가 각 가상 서비스(0708)의 서비스 제어 수신부(0709)에, 일시 정지 명령을 송신한다. 서비스 처리부(0710)는, 대상 가상 서비스(0708)가 처리를 행하고 있는 동안, 대상 가상 서비스(0708)의 처리에 필요한 리소스양을 계속해서 소비한다. 대상 가상 서비스(0708)의 처리 시간과 처리 중에 소비하는 리소스양은, 시스템 구성(0106) 내에서 지정된 값에 기초한다. 타 서비스 리퀘스트부(0711)는, 서비스 처리부(0710)에서 처리가 끝난 후에, 다른 가상 서비스(0708)에 리퀘스트를 송신한다. 리퀘스트 송신처는, 타 서비스 리퀘스트 송신 폴리시(0107)에서 지정된 룰에 따른다. 즉, 리퀘스트 송신처는, 원칙적으로 대상 가상 서비스(0708)의 의존처의 가상 서비스(0708)이지만, 의존처의 가상 서비스(0708)에 문제가 발생한 경우에는, 의존처의 가상 서비스(0708)와는 다른 가상 서비스(0708)로 될 수 있다. 바꿔 말하면, 대상 가상 서비스(0708)에 있어서, 통상의 리퀘스트 송신처는, 서비스 구성(0106)이 나타내는 의존 관계에 따르는 의존처의 가상 서비스(0708)이지만, 의존처의 가상 서비스(0708)에 문제가 발생한 경우의 리퀘스트 송신처는, 타 서비스 리퀘스트 송신 폴리시(0107)에 따르는 가상 서비스(0708)로 된다.
각 서비스는, 전형적으로는 애플리케이션이며, 리퀘스트를 접수하는 입력 인터페이스의 일례로서의 API(Application Programming Interface)나, 다른 서비스의 입력 API에 대한 리퀘스트를 송신하는 출력 인터페이스의 일례로서의 API를 갖는다. 대상 가상 서비스(0708)에 있어서, 서비스 처리부(0710)는, 대상 가상 서비스(0708)에 대응한 서비스의 입력 API에 대응한 부분이며, 서비스 구성(0106)에 기초하는 값이 설정됨으로써 실현된 부분이다. 대상 가상 서비스(0708)에 있어서, 타 서비스 리퀘스트부(0711)는, 대상 가상 서비스(0708)에 대응한 서비스의 출력API에 대응한 부분이며, 타 서비스 리퀘스트 송신 폴리시(0107)에 기초하는 값이 설정됨으로써 실현된 부분이다.
이상과 같이, 각 가상 서비스(0708)는, 당해 가상 서비스(0708)가 갖는 출력 인터페이스는, 타 서비스 리퀘스트 송신 폴리시(0107)에 기초하는 설정이 된 출력 인터페이스로서의 모듈인 타 서비스 리퀘스트부(0711)이다. 이에 의해, 의존처의 서비스에서 문제가 발생한 경우에 리퀘스트 송신처를 다른 서비스로 전환하는 것을 시뮬레이션에 있어서 실행할 수 있다. 또한, 의존처의 가상 서비스(0708)가 존재하지 않는 가상 서비스(0708)에는, 타 서비스 리퀘스트부(0711)가 마련되지 않아도 된다.
또한, 각 가상 서비스(0708)는, 입력 인터페이스로서 리퀘스트를 접수하고 당해 리퀘스트에 따르는 처리를 실행하는 서비스 처리부(0710)에 추가하여, 당해 가상 서비스(0708)에 있어서의 서비스 처리부(0710)(및 타 서비스 리퀘스트부(0711))를 제어하는 서비스 제어 수신부(0709)를 갖는다. 이에 의해, 서비스 처리부(0710)(및 타 서비스 리퀘스트부(0711)) 그 자체에 특별한 설정을 하는 일 없이, 서비스 처리부(0710)(및 타 서비스 리퀘스트부(0711))를 제어할 수 있다. 구체적으로는, 예를 들어 시뮬레이션의 실행 중이며, 가상 시스템(0700)의 구축 후에, 가상 시스템(0700)의 밖에 있는 시뮬레이션 제어부(0706)가, 타 서비스 리퀘스트 송신 폴리시(0107)의 변경 후의 폴리시(0107)를 접수하였다고 하자(본 실시예에 있어서, 유저는, 시뮬레이션 중에 표시되는 시스템 거동을 보아, 적절히 타 서비스 리퀘스트 송신 폴리시(0107) 및 리퀘스트 생성 폴리시(0108) 중 적어도 하나를 변경 가능). 이 경우, 당해 변경 후의 폴리시(0107)에 따르는 변경 대상의 타 서비스 리퀘스트부(0711)를 갖는 가상 서비스(0708)(예를 들어, 변경 후의 폴리시(0107)에서 지정된 서비스에 대응하는 가상 서비스(0708))에 있어서의 서비스 제어 수신부(0709)에, 당해 변경 후의 폴리시(0107)에 따르는 설정의 지시를 송신한다. 당해 지시를 받은 서비스 제어 수신부(0709)는, 당해 서비스 제어 수신부(0709)를 갖는 가상 서비스(0708) 내의 서비스 처리부(0710)를 일시 정지시켜, 당해 일시 정지 중에, 당해 가상 서비스(0708) 내의 타 서비스 리퀘스트부(0711)에 대해서, 당해 지시에 따르는 설정을 행한다. 이와 같이 하여, 시뮬레이션을 멈추는 일 없이, 변경 후의 폴리시(0107)를 반영할 수 있다.
또한, 본 실시예에서는, 서비스 처리부(0710)가, 능동적으로 규정된 처리를 실행하고 적절히 리퀘스트 송신을 타 서비스 리퀘스트부(0711)에 지시하는 것이 아니라, 리퀘스트를 외부로부터 수신한 것에 응답하여 처리를 실행하게 되어 있다. 구체적으로는, 가상 시스템(0700)의 외부에, 엔드 유저로서 리퀘스트를 송신하는 리퀘스트 생성부(0707)가 마련되어 있다. 리퀘스트 생성부(0707)는, 리퀘스트 생성 폴리시(0108)에 따르는 내용의 리퀘스트를, 당해 폴리시(0108)에 따르는 송신 레이트로 엔드 유저로서 가상 시스템(0700)에 송신하게 되어 있다. 시뮬레이션의 실행 중이며, 가상 시스템(0700)의 구축 후에, 가상 시스템(0700)의 밖에 있는 리퀘스트 생성부(0707)가, 시뮬레이션 제어부(0706) 경유로, 리퀘스트 생성 폴리시(0108)의 변경 후의 폴리시(0108)를 접수하였다고 하자. 이 경우, 리퀘스트 생성부(0707)가, 당해 변경 후의 폴리시(0108)에 따르는 내용의 리퀘스트를, 당해 변경 후의 폴리시(0108)에 따르는 송신 레이트로 엔드 유저로서 가상 시스템(0700)에 송신한다.
도 8은, 시뮬레이션 환경 구축의 처리 시퀀스를 나타낸다.
시뮬레이션 환경의 구축은, 시뮬레이션 개시 전에 실행된다. 유저가, 시뮬레이션 제어부(0706)에, 시뮬레이션 환경의 구축을 명령하면(0801), 시뮬레이션 제어부(0706)는, 입력 파일 로드부(0703)에, 입력 파일의 로드 명령을 송신한다(0802). 입력 파일 로드부(0703)는, 당해 명령에 응답하여, 입력 데이터 스토리지(0105)를 참조하고(0803), 입력 파일(입력 데이터)을 취득(0804)하여 수취한다(0805).
그 후, 입력 파일 로드부(0703)는, 가상 시스템 구축부(0704)에, 시스템 구성(0106)과 타 서비스 리퀘스트 송신 폴리시(0107)를 전송한다(0806). 가상 시스템 구축부(0704)는, 시스템 구성(0106)과 타 서비스 리퀘스트 송신 폴리시(0107)에 따라서, 가상 시스템(0700)을 구축하는, 예를 들어 시스템 구성(0106)에 포함되는 서비스의 인스턴스를 시뮬레이션 환경 내에 생성한다(0807). 또한, 입력 파일 로드부(0703)는, 리퀘스트 생성부(0707)에 리퀘스트 생성 폴리시(0108)를 송신한다(0808). 리퀘스트 생성부(0707)는, 리퀘스트 생성 폴리시(0108)에 따라서, 서비스 시스템(가상 시스템(0700))으로 입력하는 리퀘스트의 내용과, 리퀘스트의 송신처인 서비스(당해 서비스에 대응한 가상 서비스(0708))와, 리퀘스트 송신 레이트를 설정한다(0809).
리퀘스트 생성 폴리시(0108)와, 타 서비스 리퀘스트 송신 폴리시(0107)는, 상술한 바와 같이, 시뮬레이션 중이어도, 시뮬레이션을 정지시키지 않고 변경하는 것이 가능하다.
도 9는, 시뮬레이션 중의 폴리시 변경의 처리 시퀀스를 나타낸다.
시뮬레이션이 개시(0901)된 후, 유저가 새로운 리퀘스트 생성 폴리시(0108), 또는 타 서비스 리퀘스트 송신 폴리시(0107)를, 입력 데이터 스토리지(0105)에 준비한다.
유저가, 시뮬레이션 제어부(0706)에, 리퀘스트 생성 폴리시(0108)의 재로딩을 명령하면(0902), 시뮬레이션 제어부(0706)는, 입력 파일 로드부(0703)에, 새로운 리퀘스트 생성 폴리시(0108)의 취득을 명령한다(0903). 그 후, 입력 파일 로드부(0703)는, 입력 데이터 스토리지(0105)에 리퀘스트 생성 폴리시(0108)를 참조한다(0904). 입력 데이터 스토리지(0105)는, 해당하는 리퀘스트 생성 폴리시(0108)를 취득하고(0905), 입력 파일 로드부(0703)에 당해 폴리시(0108)를 송신한다(0906). 입력 파일 로드부(0703)는, 리퀘스트 생성부(0707)에 리퀘스트 생성 폴리시(0108)를 전송한다(0907). 리퀘스트 생성부(0707)는, 취득한 새로운 리퀘스트 생성 폴리시를 반영하고(0908), 새로운 리퀘스트 생성 폴리시(0108)에 기초하여, 서비스 시스템(가상 시스템(0700))에 리퀘스트를 송신한다.
또한, 유저가, 타 서비스 리퀘스트 송신 폴리시(0107)의 재로딩을 시뮬레이션 제어부(0706)에 명령하면(0909), 시뮬레이션 제어부(0706)는, 입력 파일 로드부(0703)에, 새로운 타 서비스 리퀘스트 송신 폴리시(0107)의 취득을 명령한다(0910). 그 후, 입력 파일 로드부(0703)는, 입력 데이터 스토리지(0105)에 타 서비스 리퀘스트 송신 폴리시(0107)를 참조한다(0911). 입력 데이터 스토리지(0105)는, 해당하는 타 서비스 리퀘스트 송신 폴리시(0107)를 취득하고(0912), 입력 파일 로드부(0703)에 당해 폴리시(0107)를 송신한다(0913). 입력 파일 로드부(0703)는, 타 서비스 리퀘스트 송신 폴리시(0107)에 따르는 수정이 필요한 가상 서비스(0708)의 서비스 제어 수신부(0709)에, 새로운 타 서비스 리퀘스트 송신 폴리시(0107)(또는 그중 외부 부분)를 송신한다(0914). 서비스 제어 수신부(0709)는, 자신의 서비스 내의 타 서비스 리퀘스트부(0711)에, 새로운 타 서비스 리퀘스트 송신 폴리시(0107)를 전송한다(0915). 그 후, 타 서비스 리퀘스트부(0711)는, 수취한 타 서비스 리퀘스트 송신 폴리시(0107)를, 자신의 리퀘스트 송신의 폴리시로서 반영한다(0916). 또한, 0914의 스텝에 있어서, 새로운 타 서비스 리퀘스트 송신 폴리시(0107)의 송신처를, 타 서비스 리퀘스트부(0711)로 하고, 서비스 제어 수신부(0709)가 타 서비스 리퀘스트 송신 폴리시를 중계하지 않아도 되도록 한다.
도 10은, 시뮬레이션 실행 중에 있어서의, 시스템에 대한 리퀘스트에 대한 처리 시퀀스를 나타낸다.
유저가, 시뮬레이션 제어부(0706)에 시뮬레이션의 개시를 명령하면(1001), 시뮬레이션 제어부(0706)는, 리퀘스트 생성부(0707)에 대해서 리퀘스트의 생성을 지시한다(1002). 리퀘스트 생성부(0707)는, 리퀘스트 생성 폴리시(0108)에 따라서 리퀘스트를 생성하고(1003), 가상 서비스(0708) 내의 서비스 처리부(0710)에 당해 리퀘스트를 전송한다(1004).
서비스 처리부(0710)에 리퀘스트가 도착하면, 서비스 처리부(0710)는, 서비스가 소비하는 리소스양을, 1회의 리퀘스트에 대한 서비스의 처리에 필요한 리소스양만큼 증가시켜(1005), 처리에 요하는 시간만큼 처리를 대기한다(1006). 또한, 「1회의 리퀘스트에 대한 서비스의 처리에 필요한 리소스양」 및 「처리에 요하는 시간」은, 서비스 구성(0106)(또는 기타 입력 데이터 세트)에 정의되어 있으며, 서비스 처리부(0710)에 설정되어 있도록 한다. 처리에 요하는 시간이 경과하면, 서비스 처리부(0710)는, 1회의 리퀘스트에 대한 서비스의 처리에 필요한 리소스양만큼 감소시킨다(1007). 가상 서비스(0708)가 다른 가상 서비스(0708)에 리퀘스트를 보내는 경우에는, 서비스 처리부(0710)가, 타 서비스 리퀘스트부(0711)에 리퀘스트를 송신한다(1008). 타 서비스 리퀘스트부(0711)는, 다른 가상 서비스(0708)(전형적으로는 의존처의 가상 서비스(0708))가 규정된 문제 조건에 적합한지 여부에 따라서(예를 들어, 리스폰스 타임, 장애 상황, 또는 리스폰스가 돌아가지 않는 송신 완료 리퀘스트 수와 같은 상황이, 타 서비스 리퀘스트 송신 폴리시(0107)에 규정된 조건을 충족하는지 여부에 따라서), 리퀘스트 송신처의 가상 서비스(0708)를 결정한다(1009). 즉, 리퀘스트 송신처가, 의존처의 가상 서비스(0708)인 채로 될지, 혹은 상이한 가상 서비스(0708)로 될지가 결정된다. 그리고, 타 서비스 리퀘스트부(0711)는, 결정한 리퀘스트 송신처 가상 서비스(0708)의 서비스 처리부(0710)에, 리퀘스트를 송신한다(1010).
타 서비스 리퀘스트부(0711)는, 다른 가상 서비스(0708)로부터 리스폰스를 수신하면(1011), 당해 다른 가상 서비스(0708)의 리스폰스 타임을 기억한다(1012). 기억한, 다른 가상 서비스(0708)의 리스폰스 타임은, 서비스 처리부(0710)로부터도 참조할 수 있도록 한다. 다른 가상 서비스(0708)의 리스폰스 타임을 기억함으로써, 서비스 처리부(0710)는, 리퀘스트 송신처의 가상 서비스(0708)의 리스폰스 타임에 따라서 가상 서비스(0708)의 처리 내용을 변경할 수 있다. 또한, 타 서비스 리퀘스트부(0711)는, 출력된 로그에 따라서, 송신처의 가상 서비스(0708)를 변경할 수 있다. 리스폰스를 자신의 가상 서비스(0708)의 서비스 처리부(0710)로 돌려준다(1013). 그 후, 서비스 처리부(0710)는, 다른 가상 서비스(0708)에 대한 리퀘스트에 있어서의 리스폰스 타임을 로그로서 출력한다(1014). 그 후, 서비스 처리부(0710)는, 리퀘스트 생성부(0707)에 리스폰스를 돌려준다(1015).
도 11은, 시뮬레이션 중에, 유저가 마이크로 서비스 시뮬레이터(0112)에 외란을 입력할 때의 처리 시퀀스를 나타낸다. 시뮬레이션에 있어서, 의존처의 가상 서비스(0708)의 문제는, 타 서비스 리퀘스트 송신 폴리시(0107)와 외란 발생 시나리오(0109) 중 적어도 하나에 따라서 발생하게 된다.
유저가, 시뮬레이션 중에, 외란 입력 콘솔(0110)을 사용하여, 외란(외란 발생 시나리오(0109))을 입력한다(1101). 1101의 스텝에 있어서, 유저는, 외란을 발생시키는 서비스와, 외란의 내용을 지정한다. 외란의 내용예로서, 서비스의 정지 또는, 서비스의 리스폰스 타임의 증대를 지정할 수 있도록 한다. 외란 입력 콘솔(0110)은, 시뮬레이션 제어부(0706)에, 유저가 입력한 외란을 시뮬레이션 내에서 발생시키도록 지시를 보낸다(1102). 시뮬레이션 제어부(0706)는, 유저에 지정된 서비스에 대응하는 가상 서비스(0708)가 시뮬레이션 중에서 가동 중인 것을 확인하고, 당해 가상 서비스(0708)의 서비스 제어 수신부(0709)에 외란의 발생 지시를 송신한다(1103). 서비스 제어 수신부(0709)가 외란 발생의 지시를 받으면, 당해 서비스 제어 수신부(0709)는, 서비스 처리부(0710)에, 유저에 지정된 외란의 내용에 따른, 처리의 변경을 지시한다(1104). 예를 들어, 유저가 서비스의 정지를 지정 한 경우에는, 서비스 처리부(0710)는, 다른 서비스로부터의 리퀘스트를 접수하지 않고, 또한 실행 중의 처리는, 처리의 리퀘스트원에는 리스폰스를 돌려주지 않고, 처리를 종료한다. 또한, 유저가 서비스의 리스폰스 타임의 증가를 지정한 경우에는, 서비스 처리부(0710)는, 서비스 처리부(0710) 내에서 설정되어 있는 리스폰스 타임을, 유저의 지정량만큼 증가시킨다.
도 12는, 외란 발생 시나리오(0109)의 일례를 나타낸다.
1202행째부터 1209행째까지의 기술은, 단일의 서비스에 대한 단일의 외란 사상을 나타내고 있다. 복수의 외란을 설정하는 경우에는, 1210행째부터 1218행째 과 같이, 배열 형식으로 모든 외란을 열거한다.
1203행째의 기술은, 시뮬레이션 개시 후로부터 외란이 발생할 때까지의 시간 또는 시각을 나타낸다. 1204행째의 기술은, 외란의 사상이 종료하는 시각 또는 외란의 계속 시간을 나타낸다. 1205행째의 기술은, 외란이 발생하는 서비스를 나타내고 있다. 1206행째의 기술은, 외란의 내용을 나타내고 있다. 도 12의 1206행째는, 예로서, 서비스가 정지한 것을 나타내고 있으며, 1214행째는, 서비스의 리스폰스 타임이 장시간화한 것을 나타내고 있다. 1207행째부터 1208행째까지의 기술은, 발생하는 외란의 보충 정보를 나타낸다. 예로서, 1215행째부터 1217행째에서는, 리스폰스 타임이 통상의 3배가 되는 것을 나타내고 있다.
외란 발생 시나리오(0109)는, 시뮬레이션 개시 전에, 마이크로 서비스 시뮬레이터(0112)에 입력되고, 시뮬레이션 개시 후에 마이크로 서비스 시뮬레이터(0112)가 외란 발생 시나리오(0109)를 따라서 시스템 내의 서비스에 외란을 발생시킬 수 있다. 유저는, 외란 입력 콘솔, 또는 시뮬레이션 입력 데이터 작성 툴, 또는 임의의 텍스트 에디터를 사용하여, 외란 발생 시나리오를 작성할 수 있도록 한다.
이상, 본 발명의 일 실시예를 설명하였지만, 이들은 본 발명의 설명을 위한 예시이지, 본 발명의 범위를 이 실시예만으로 한정하는 취지는 아니다. 본 발명은, 다른 다양한 형태에서도 실행하는 것이 가능하다.
0112: 마이크로 서비스 시뮬레이터
0105: 입력 데이터 스토리지
0106: 시스템 구성
0107: 타 서비스 리퀘스트 송신 폴리시
0108: 리퀘스트 생성 폴리시
0109: 외란 발생 시나리오
0103: 시뮬레이션 입력 데이터 작성 툴
0110: 외란 입력 콘솔
0706: 시뮬레이션 제어부
0703: 입력 파일 로드부
0113: 폴리시 입력 콘솔

Claims (12)

  1. (A) 하기의 (a1)과 (a2)와 (a3)의 정보를 입력하고,
    (a1) 복수의 서비스로 구성되고 서비스 간에서 리퀘스트가 송수신됨으로써 당해 복수의 서비스가 제휴하여 엔드 유저로부터의 리퀘스트에 따르는 처리를 실행하는 서비스 시스템에 있어서의 각 서비스 간의 의존 관계를 기술한 시스템 구성,
    (a2) 상기 복수의 서비스 중 1 이상의 서비스의 각각에 대하여 하기의 (a21) 및 (a22)를 기술한 타 서비스 리퀘스트 송신 폴리시,
    (a21) 당해 서비스의 의존처이기 때문에 리퀘스트 송신처로 되는 서비스에 있어서의 장애 유무와 처리 속도 중 적어도 하나인 처리 상황에 관한 조건,
    (a22) 당해 조건이 충족되었다고 한 경우의 당해 서비스의 변경 후의 처리 내용과 변경 후의 리퀘스트 송신처 중 적어도 하나인 처리 변경,
    (a3) 상기 서비스 시스템에 상기 엔드 유저로서 송신하는 리퀘스트의 내용과 당해 리퀘스트의 송신 레이트를 기술한 리퀘스트 생성 폴리시,
    (B) 상기 리퀘스트 생성 폴리시에 기초하는 리퀘스트가 상기 리퀘스트 생성 폴리시에 기초하는 송신 레이트로 도착하였다고 한 경우의 상기 서비스 시스템의 거동인 시스템 거동의 시뮬레이션을, 상기 시스템 구성 및 상기 타 서비스 리퀘스트 송신 폴리시에 기초하여 실행하고,
    (C) 당해 시뮬레이션의 실행 결과로서의 상기 시스템 거동을 나타내는 정보인 시뮬레이션 결과 정보를 출력하는
    것을 컴퓨터에 실행시키는 것을 특징으로 하는 시뮬레이터.
  2. 제1항에 있어서,
    (B)의 시뮬레이션의 실행 중에, 상기 서비스 시스템에 포함되는 상기 1 이상의 서비스의 각각에 대하여, 상기 타 서비스 리퀘스트 송신 폴리시에 기초하여, 당해 서비스의 의존처의 서비스의 처리 상황을 변경하고, 그것에 수반하여, 당해 서비스의 처리 내용 및 리퀘스트 송신처 중 적어도 하나를 변경하고,
    (C)에 있어서, 상기 시뮬레이션 결과 정보로서, 상기 1 이상의 서비스의 각각에 대한 의존처의 서비스의 처리 상황의 변경 전후의 시스템 거동을 나타내는 정보를 포함한 정보를 출력하는
    것을 상기 컴퓨터에 실행시키는 것을 특징으로 하는 시뮬레이터.
  3. 제1항에 있어서,
    (B)의 시뮬레이션의 개시 전 또는 실행 중에, 상기 서비스 시스템에 포함되는 적어도 하나의 서비스 ID와, 당해 적어도 하나의 서비스에 대하여 지정 시점에서의 의도적인 처리 정지, 처리 속도 향상 또는 처리 속도 저하인 외란을 기술한 정보인 외란 발생 시나리오를 입력하고,
    (B)의 시뮬레이션에 있어서, 상기 외란 발생 시나리오에 따라서, 상기 적어도 하나의 서비스에 대하여 외란을 발생시키고,
    (C)에 있어서, 상기 시뮬레이션 결과 정보로서, 상기 적어도 하나의 서비스에 대하여 외란 발생의 전후의 시스템 거동을 나타내는 정보를 포함한 정보를 출력하는
    것을 상기 컴퓨터에 실행시키는 것을 특징으로 하는 시뮬레이터.
  4. 제1항에 있어서,
    상기 시스템 구성, 상기 타 서비스 리퀘스트 송신 폴리시, 및 상기 리퀘스트 생성 폴리시 중 적어도 하나가 포함하는 정보 요소는, 상기 시스템 구성, 상기 타 서비스 리퀘스트 송신 폴리시, 및 상기 리퀘스트 생성 폴리시 중 적어도 하나에 포함하는 정보 요소의 입력을 접수하는 1 이상의 UI(User Interface) 경유로 입력된 정보 요소인
    것을 특징으로 하는 시뮬레이터.
  5. 제1항에 있어서,
    (B)의 시뮬레이션의 실행 중에,
    상기 타 서비스 리퀘스트 송신 폴리시 및 상기 리퀘스트 생성 폴리시 중 적어도 하나의 변경 후의 폴리시를 접수하고,
    당해 변경 후의 폴리시를, 상기 시뮬레이션을 정지시키지 않고 반영하고,
    당해 반영 후의 폴리시에 따라서, 당해 시뮬레이션을 계속하는
    것을 상기 컴퓨터에 실행시키는 것을 특징으로 하는 시뮬레이터.
  6. 제1항에 있어서,
    (B)의 시뮬레이션은, 상기 시스템 구성 및 상기 타 서비스 리퀘스트 송신 폴리시에 기초하여, 상기 서비스 시스템이 가상화된 시스템인 가상 시스템을 구축하는 것을 포함하고,
    상기 가상 시스템은, 상기 복수의 서비스가 가상화된 복수의 서비스인 복수의 가상 서비스로 구성되며,
    상기 1 이상의 서비스의 각각은, 출력 인터페이스를 갖고,
    상기 복수의 가상 서비스 중, 상기 1 이상의 서비스에 각각 대응하는 1 이상의 가상 서비스의 각각에 대하여, 당해 가상 서비스가 갖는 출력 인터페이스는, 상기 타 서비스 리퀘스트 송신 폴리시에 기초하는 설정이 된 출력 인터페이스로서의 모듈인 타 서비스 리퀘스트부
    인 것을 특징으로 하는 시뮬레이터.
  7. 제6항에 있어서,
    상기 1 이상의 서비스의 각각은, 입력 인터페이스를 갖고,
    상기 1 이상의 서비스에 각각 대응한 1 이상의 가상 서비스의 각각은,
    입력 인터페이스로서 리퀘스트를 접수하고 당해 리퀘스트에 따르는 처리를 실행하는 모듈인 서비스 처리부와,
    당해 가상 서비스에 있어서의 상기 서비스 처리부 및 상기 타 서비스 리퀘스트부를 제어하는 모듈인 서비스 제어 수신부
    를 더 갖는 것을 특징으로 하는 시뮬레이터.
  8. 제7항에 있어서,
    (B)의 시뮬레이션의 실행 중이며, 상기 가상 시스템의 구축 후에,
    상기 타 서비스 리퀘스트 송신 폴리시의 변경 후의 폴리시를 접수하고,
    당해 변경 후의 폴리시에 따르는 변경 대상의 타 서비스 리퀘스트부를 갖는 가상 서비스에 있어서의 서비스 제어 수신부에, 당해 변경 후의 폴리시에 따르는 설정의 지시를 송신하는
    것을 상기 컴퓨터에 실행시키고,
    당해 지시를 받은 서비스 제어 수신부는,
    당해 서비스 제어 수신부를 갖는 가상 서비스 내의 서비스 처리부를 일시정지시키고,
    당해 일시 정지 중에, 당해 가상 서비스 내의 타 서비스 리퀘스트부에 대해서, 당해 지시에 따르는 설정을 행하는
    것을 특징으로 하는 시뮬레이터.
  9. 제1항에 있어서,
    (B)의 시뮬레이션에 있어서,
    상기 시스템 구성 및 상기 타 서비스 리퀘스트 송신 폴리시에 기초하여, 상기 서비스 시스템이 가상화된 시스템인 가상 시스템을 구축하고,
    상기 리퀘스트 생성 폴리시에 따르는 내용의 리퀘스트를, 상기 리퀘스트 생성 폴리시에 따르는 송신 레이트로 상기 엔드 유저로서 상기 가상 시스템에 송신하고,
    (B)의 시뮬레이션의 실행 중이며, 상기 가상 시스템의 구축 후에,
    상기 리퀘스트 생성 폴리시의 변경 후의 폴리시를 접수하고,
    당해 변경 후의 폴리시에 따르는 내용의 리퀘스트를, 당해 변경 후의 폴리시에 따르는 송신 레이트로 상기 엔드 유저로서 상기 가상 시스템에 송신하는
    것을 상기 컴퓨터에 실행시키는 것을 특징으로 하는 시뮬레이터.
  10. 제1항에 있어서,
    상기 시스템 구성이 포함하는 1 이상의 정보 요소는, 상기 시스템 구성에 포함하는 정보 요소의 입력을 접수하는 1 이상의 UI(User Interface) 경유로 입력된 정보 요소이며,
    상기 1 이상의 UI는,
    하나 또는 복수의 서비스 템플릿으로부터 1 이상의 서비스 템플릿의 선택을 접수하는 제1 UI와,
    상기 제1 UI로부터 선택된 1 이상의 서비스 템플릿에 각각 대응한 1 이상의 오브젝트를 표시하고 당해 1 이상의 오브젝트의 의존 관계의 지정을 접수하는 제2 UI와,
    당해 1 이상의 오브젝트 중 선택된 오브젝트에 대응한 서비스 템플릿에 대한 1 이상의 값의 입력을 접수하는 제3 UI
    를 포함하고,
    상기 복수의 서비스 중 적어도 하나는, 상기 제3 UI를 통해 입력된 1 이상의 값이 설정된 서비스 템플릿에 기초하는 서비스인
    것을 특징으로 하는 시뮬레이터.
  11. 하기의 (a1)과 (a2)와 (a3)의 정보,
    (a1) 복수의 서비스로 구성되고 서비스 간에서 리퀘스트가 송수신됨으로써 당해 복수의 서비스가 제휴하여 엔드 유저로부터의 리퀘스트에 따르는 처리를 실행하는 서비스 시스템에 있어서의 각 서비스 간의 의존 관계를 기술한 시스템 구성,
    (a2) 상기 복수의 서비스 중 1 이상의 서비스의 각각에 대하여 하기의 (a21) 및 (a22)를 기술한 타 서비스 리퀘스트 송신 폴리시,
    (a21) 당해 서비스의 의존처이기 때문에 리퀘스트 송신처로 되는 서비스에 있어서의 장애 유무와 처리 속도 중 적어도 하나인 처리 상황에 관한 조건,
    (a22) 당해 조건이 충족되었다고 한 경우의 당해 서비스의 변경 후의 처리 내용과 변경 후의 리퀘스트 송신처 중 적어도 하나인 처리 변경,
    (a3) 상기 서비스 시스템에 상기 엔드 유저로서 송신하는 리퀘스트의 내용과 당해 리퀘스트의 송신 레이트를 기술한 리퀘스트 생성 폴리시
    을 저장한 기억부와,
    (A) 상기 시스템 구성, 상기 타 서비스 리퀘스트 송신 폴리시, 및 상기 리퀘스트 생성 폴리시를 입력하고,
    (B) 상기 리퀘스트 생성 폴리시에 기초하는 리퀘스트가 상기 리퀘스트 생성 폴리시에 기초하는 송신 레이트로 도착했다고 한 경우의 상기 서비스 시스템의 거동인 시스템 거동의 시뮬레이션을, 상기 시스템 구성 및 상기 타 서비스 리퀘스트 송신 폴리시에 기초하여 실행하고,
    (C) 당해 시뮬레이션의 실행 결과로서의 상기 시스템 거동을 나타내는 정보인 시뮬레이션 결과 정보를 출력하는
    처리를 실행하는 시뮬레이션부
    를 구비하는 시뮬레이션 장치.
  12. (A) 하기의 (a1)과 (a2)와 (a3)의 정보를 입력하고,
    (a1) 복수의 서비스로 구성되고 서비스 간에서 리퀘스트가 송수신됨으로써 당해 복수의 서비스가 제휴하여 엔드 유저로부터의 리퀘스트에 따르는 처리를 실행하는 서비스 시스템에 있어서의 각 서비스 간의 의존 관계를 기술한 시스템 구성,
    (a2) 상기 복수의 서비스 중 1 이상의 서비스의 각각에 대하여 하기의 (a21) 및 (a22)를 기술한 타 서비스 리퀘스트 송신 폴리시,
    (a21) 당해 서비스의 의존처이기 때문에 리퀘스트 송신처로 되는 서비스에 있어서의 장애 유무와 처리 속도 중 적어도 하나인 처리 상황에 관한 조건,
    (a22) 당해 조건이 충족되었다고 한 경우의 당해 서비스의 변경 후의 처리 내용과 변경 후의 리퀘스트 송신처 중 적어도 하나인 처리 변경,
    (a3) 상기 서비스 시스템에 상기 엔드 유저로서 송신하는 리퀘스트의 내용과 당해 리퀘스트의 송신 레이트를 기술한 리퀘스트 생성 폴리시,
    (B) 상기 리퀘스트 생성 폴리시에 기초하는 리퀘스트가 상기 리퀘스트 생성 폴리시에 기초하는 송신 레이트로 도착했다고 한 경우의 상기 서비스 시스템의 거동인 시스템 거동의 시뮬레이션을, 상기 시스템 구성 및 상기 타 서비스 리퀘스트 송신 폴리시에 기초하여 실행하고,
    (C) 당해 시뮬레이션의 실행 결과로서의 상기 시스템 거동을 나타내는 정보인 시뮬레이션 결과 정보를 출력하는
    시뮬레이션 방법.
KR1020207004959A 2018-03-01 2018-12-28 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법 KR102339747B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018037006A JP6785810B2 (ja) 2018-03-01 2018-03-01 シミュレーター、シミュレーション装置、および、シミュレーション方法
JPJP-P-2018-037006 2018-03-01
PCT/JP2018/048451 WO2019167421A1 (ja) 2018-03-01 2018-12-28 シミュレーター、シミュレーション装置、および、シミュレーション方法

Publications (2)

Publication Number Publication Date
KR20200029574A true KR20200029574A (ko) 2020-03-18
KR102339747B1 KR102339747B1 (ko) 2021-12-16

Family

ID=67804923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207004959A KR102339747B1 (ko) 2018-03-01 2018-12-28 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법

Country Status (3)

Country Link
JP (1) JP6785810B2 (ko)
KR (1) KR102339747B1 (ko)
WO (1) WO2019167421A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110740172B (zh) * 2019-09-29 2022-04-29 北京淇瑀信息科技有限公司 一种基于微服务架构的路由管理方法、装置和系统
US11175947B2 (en) 2019-12-03 2021-11-16 International Business Machines Corporation Microservices change management and analytics
JP7428855B2 (ja) * 2020-03-17 2024-02-07 Lineヤフー株式会社 動画解析システム、動画解析装置、動画解析方法、およびプログラム
JP7334702B2 (ja) 2020-10-02 2023-08-29 トヨタ自動車株式会社 サービス管理装置
JP7380504B2 (ja) 2020-10-02 2023-11-15 トヨタ自動車株式会社 サービス管理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004536406A (ja) * 2001-07-16 2004-12-02 ビーイーエイ システムズ, インコーポレイテッド セッション複製及びフェイルオーバーのための方法及び装置
JP2005196601A (ja) 2004-01-09 2005-07-21 Hitachi Ltd 自律管理システム向けポリシシミュレータ
KR100609710B1 (ko) * 2004-11-25 2006-08-08 한국전자통신연구원 이상 트래픽 분석을 위한 네트워크 시뮬레이션 장치 및 그방법
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4876032B2 (ja) * 2007-06-26 2012-02-15 株式会社日立製作所 Soaアーキテクチャのシステム設計支援方法およびsoaアーキテクチャのシステム設計支援装置
JP5617914B2 (ja) * 2010-02-23 2014-11-05 日本電気株式会社 スループット維持支援システム、装置、方法、及びプログラム
JP6220482B2 (ja) * 2015-09-30 2017-10-25 株式会社日立製作所 Vm配置管理システム、及び、vm配置管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004536406A (ja) * 2001-07-16 2004-12-02 ビーイーエイ システムズ, インコーポレイテッド セッション複製及びフェイルオーバーのための方法及び装置
JP2005196601A (ja) 2004-01-09 2005-07-21 Hitachi Ltd 自律管理システム向けポリシシミュレータ
KR100609710B1 (ko) * 2004-11-25 2006-08-08 한국전자통신연구원 이상 트래픽 분석을 위한 네트워크 시뮬레이션 장치 및 그방법
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법

Also Published As

Publication number Publication date
WO2019167421A1 (ja) 2019-09-06
JP6785810B2 (ja) 2020-11-18
JP2019153017A (ja) 2019-09-12
KR102339747B1 (ko) 2021-12-16

Similar Documents

Publication Publication Date Title
KR102339747B1 (ko) 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법
US10305747B2 (en) Container-based multi-tenant computing infrastructure
US11556321B2 (en) Deploying microservices across a service infrastructure
US10373072B2 (en) Cognitive-based dynamic tuning
US11030002B2 (en) Optimizing simultaneous startup or modification of inter-dependent machines with specified priorities
JP2021509498A (ja) コンピューティング・デバイス
US20170220385A1 (en) Cross-platform workload processing
CN116648692A (zh) 迁移复杂的传统应用
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
US10643150B2 (en) Parameter version vectors used for deterministic replay of distributed execution of workload computations
US20180150333A1 (en) Bandwidth aware resource optimization
CN113377665A (zh) 基于容器技术的测试方法、装置、电子设备及存储介质
CN111625949A (zh) 一种仿真引擎系统、仿真处理方法、设备和介质
CN112703485A (zh) 使用机器学习方法支持对分布式系统内的计算环境的修改的实验评估
US20210011947A1 (en) Graphical rendering of automata status
US9674060B2 (en) Dynamic and selective management of integration points using performance metrics
US9626226B2 (en) Cross-platform workload processing
CN113472638B (zh) 边缘网关控制方法及系统、装置、电子设备、存储介质
US11687399B2 (en) Multi-controller declarative fault management and coordination for microservices
US11762707B2 (en) Service load independent resource usage detection and scaling for container-based system
CN113641688B (zh) 节点更新方法、相关装置及计算机程序产品
US11151121B2 (en) Selective diagnostics for computing systems
CN114298313A (zh) 一种人工智能计算机视觉推理方法
CN115222041B (zh) 用于模型训练的图生成方法、装置、电子设备及存储介质
US11074122B2 (en) Graceful degradation of user interface components in response to errors

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right