서비스 가상화

Service virtualization

소프트웨어 엔지니어링에서 서비스 가상화 또는 서비스 가상화는 API 기반 애플리케이션, 클라우드 기반 애플리케이션 및 서비스 지향 아키텍처와 같은 이기종 구성 요소 기반 애플리케이션에서 특정 구성 요소의 동작을 에뮬레이트하는 방법이다.소프트웨어 개발QA/테스트 팀이 테스트 대상 애플리케이션(AUT)을 연습하는 데 필요하지만 개발 및 테스트 목적으로 사용할 수 없거나 접근이 어려운 종속 시스템 구성요소에 액세스할 수 있도록 하는 데 사용된다.종속된 구성요소의 동작이 "가상화"되면 실제 실시간 구성요소에 접근하지 않고도 테스트와 개발을 진행할 수 있다.서비스 가상화는 벤더, 업계 분석가, 업계 출판물에 의해 조롱과 다른 것으로 인식되고 있다.[1][2]API 시뮬레이션 도구 비교를 보려면 여기를 참조하십시오.

개요

서비스 가상화는 개발 및 테스트 팀에 대한 종속성 제약을 제거하기 위해 소프트웨어 구성요소의 동작을 모방한다.그러한 제약조건은 시험 대상 애플리케이션에 연결된 구성요소가 다음과 같은 경우에 복잡하고 상호의존적인 환경에서 발생한다.

  • 아직 완료되지 않음
  • 여전히 진화 중
  • 타사 또는 파트너에 의해 제어
  • 제한된 용량 또는 불편한 시간에만 테스트 가능
  • 테스트 환경에서 프로비저닝 또는 구성이 어려움
  • 다양한 테스트 데이터 설정 및 기타 요구사항이 있는 여러 팀의 동시 액세스에 필요
  • 부하 및 성능 테스트에 제한적이거나 비용이 많이 소요됨

"서비스 가상화"라는 용어는 웹 서비스 가상화에 대한 이 기술의 초기 초점을 반영하지만, 서비스 가상화는 서비스, 데이터베이스, 메인프레임, ESB 및 공통 메시징 프로토콜을 사용하여 통신하는 기타 구성요소 등 복합 애플리케이션의 모든 측면에 걸쳐 확장된다.[3][4][5]다른 유사한 도구들은 와이어 테스트 복식 API 시뮬레이터, API 조롱 도구라고 불린다.

서비스 가상화는 개발자나 테스터가 엔드투엔드 트랜잭션을 완료하기 위해 실행해야 하는 특정 종속 구성요소의 동작만 모방한다.전체 시스템을 가상화하기보다는 개발 및 테스트 작업의 실행에 중요한 종속 동작의 특정 조각만 가상화한다.이는 개발자나 테스터가 실제 서비스가 완료되고 쉽게 이용할 수 있을 때까지 기다릴 필요 없이 필요한 것을 얻을 수 있도록 애플리케이션 로직을 충분히 제공한다.예를 들어 전체 데이터베이스를 가상화하는 대신(그리고 모든 테스트 세션에 대한 데이터베이스 설정뿐만 아니라 모든 관련 테스트 데이터 관리 수행), 애플리케이션이 데이터베이스와 상호 작용하는 방식을 모니터링한 다음 관련 데이터베이스 동작(데이터베이스에 전달된 SQL 쿼리, 해당 resu)을 에뮬레이트하십시오.반환되는 등.[6][7]

적용

서비스 가상화는 테스트 중인 애플리케이션을 실행하기 위해 필요하지만 개발 및 테스트 목적으로 접근하기 어렵거나 불가능한 실제 구성요소의 동작을 시뮬레이션하는 "가상 자산"을 만들고 구축하는 것을 포함한다.

가상 자산은 요청을 수신하고 적절한 성능(적절한 성능)으로 적절한 응답을 반환함으로써 종속 구성요소를 의미한다.데이터베이스의 경우, 여기에는 SQL 문을 청취한 다음 데이터 원본 행을 반환하는 작업이 포함될 수 있다.웹 서비스의 경우 HTTP, JMS 또는 MQ를 통해 XML 메시지를 청취한 후 다른 XML 메시지를 반환하는 작업이 포함될 수 있다.가상자산의 기능성과 성능은 종속 구성요소의 실제 기능/성능을 반영하거나 예외 조건(극한 부하 또는 오류 조건 등)을 시뮬레이션하여 시험 대상 애플리케이션이 그러한 상황에서 어떻게 반응하는지 결정할 수 있다.

가상 자산은 일반적으로 다음을 통해 생성된다.

  • 테스트 대상 애플리케이션(AUT)에서 시스템이 작동될 때 구성 요소 간 실시간 통신 기록
  • 구성요소 간 과거 통신을 나타내는 로그 제공
  • 서비스 인터페이스 사양 분석(예: WSDL)
  • 다양한 인터페이스 컨트롤 및 데이터 원본 값을 사용하여 수동으로 동작 정의

그런 다음 특정 데이터, 기능 및 응답 시간을 나타내도록 추가로 구성된다.

가상 자산은 로컬 또는 클라우드(공용 또는 프라이빗)에 구축된다.개발/테스트 환경을 종속 구성요소 대신 가상 자산을 사용하도록 구성한 경우, 개발자 또는 테스터는 종속 구성요소가 완료되거나 쉽게 액세스할 수 있을 때까지 기다릴 필요 없이 작업 중인 애플리케이션을 실행할 수 있다.[3][4][7]

업계 분석가들은 서비스 가상화가 "에 가장 적합하다고 보고함IT는 '의존적인 소프트웨어'로 인해 통합 테스트를 '스키핑'한 경험이 풍부하고, 테스트 하니스가 상당히 정교하다.[8]

스터브 및 조롱 관련

이 기사의 소개에 요약된 시험 환경 접근 제약에 대해 작업하기 위한 대안적인 접근방식은 팀원들이 종속 자원을 대체하는 방법 스텁 또는 모의 객체를 개발하는 것이다.이러한 접근방식의 단점은 2000년대 초반 서비스 지향 아키텍처의 부상과 함께 명백해졌다.[9]수많은 종속 서비스에 의존하는 복합 응용프로그램의 확산과 2001년 애자일 매니페스토 발행 이후 애자일 소프트웨어 개발이 증가함에 따라 개발자나 테스터는 개발을 완료하는 데 필요한 스텁 또는 모의 실험의 수, 범위, 복잡성을 수동으로 개발하기가 점점 더 어려워졌다.d 현대적 기업 응용프로그램 개발을 위한 테스트 작업.[10]

스텁(stubbing)에서 서비스 가상화로 진화한 첫 번째 단계는 2002년 이후 SOA 테스트 툴에 패키징된 기술이었다.[11]서비스 가상화의 초기 구현은 복합 애플리케이션을 보다 효율적으로 테스트할 수 있도록 단순한 스텁 형태의 에뮬레이션을 개발하는 프로세스를 자동화하도록 설계되었다.[12]엔터프라이즈 시스템이 점점 더 복잡해지고 분산됨에 따라 소프트웨어 도구 공급업체들은 스텁(stubbing)에서 보다 환경 중심적인 가상화로 초점을 전환했다.[2]스텁은 스텁의 수동 개발과 관리를 통해 여전히 완성될 수 있지만, "서비스 가상화"로 알려진 것은 "서비스 가상화"라고 알려진 것을 "서비스 가상화"의 개발 및 구현을 위한 플랫폼으로 사용 가능한 상용(COTS) 서비스 가상화 기술 중 하나를 사용하여 완성된다.[10]

민첩성 및 DevOps

애자일 소프트웨어 개발DevOps의 인기는[13] 이러한 방식으로 작동하는 커뮤니티에 서비스 가상화를 제공하기 위한 새로운 툴셋에 대한 수요를 창출했다.[14]메인프레임모노리스 개발에서 보다 분산된 마이크로 서비스 기반 아키텍처로의 지속적인 제공 및 이동과 같은 관행은 서비스 가상화의 기능에 잘 적합하다.민첩성 및 DevOps 팀은 누적된 팽창이 적고 번거로운 라이센싱 제한이 없는 경량 툴로 작업하는 것을 선호한다.[15]

참고 항목

참조

  1. ^ 2013년 4월 22일 Jonathan Allen, eBizQ에 의한 조롱의 대안으로 서비스 가상화
  2. ^ a b James Day, Medium 6월 18일 기준 서비스 가상화란?
  3. ^ a b 2011년 12월, 클라우드 컴퓨팅 저널 Liz McMillan의 테스트 환경 관리
  4. ^ a b 클라우드 컴퓨팅 저널 Elizabeth White의 애플리케이션 행동 가상화, 2011년 12월
  5. ^ STA 매거진 Wayne Ariola의 개발 및 테스트를 위한 데이터베이스 가상화, 2012년 3월
  6. ^ John Michelsen, WebServices.org, 2007년 8월 Wayback Machine보관SOA가상화 소개
  7. ^ a b 가상화 저널, 2011년 7월 12일 Wayne Ariola의 차세대 테스트 환경 관리
  8. ^ Parasoft 및 "서비스 가상화" 테스트: Wayne Kernochan의 좋은 아이디어, 소프트웨어 IT 분석가의 의견, 2013년 2월 22일
  9. ^ Ed Morris 외, 소프트웨어 엔지니어링 연구소, 2010년 3월 서비스 지향 환경에서의 테스트
  10. ^ a b 서비스 가상화는 조직이 2014년 3월 31일 Ovum, Chandranshu Singh의 테스트를 통해 비즈니스 가치를 실현하는 데 도움이 됨
  11. ^ 2002년 5월 1일 Tesa Lanowitz GartnerParasoft의 웹 서비스 테스트개발 지원
  12. ^ 2007년 11월 28일 SearchSOA의 Rich Seeley를 통해 SOA 가상화가 실현됨
  13. ^ 신속한 변화를 위한 & DevOps Google 동향
  14. ^ 차세대 서비스 가상화 포럼, 2017년 9월 13일
  15. ^ Thought Works Technology Radar: 대기업 솔루션