가상화는 프로비저닝이 비즈니스 요구사항에 즉시 부합할 수 있도록 시스템 자원을 공유하기 위해 시스템의 기능을 향상시키기 위한 현대적인 접근방식이다. 가상화는 하나의 실제 자원을 분리된 많은 상대적으로 더 작은 자원으로 작동하거나, 많은 더 작은 자원을 하나의 더 큰 자원으로 작동하도록 함께 종합하게 만드는 데 사용된다. 기존 소프트웨어 개발에서 복잡한 시스템은 모든 요구사항들이 시작하면서 한 번에 수집되는 순차적이고 단계를 고려한 방식으로 빌드된다. 이해 당사자 요구사항은 변화하는 마케팅 전략 및/또는 기술 조건으로 인해 변경될 수 있는 만큼 이러한 요구사항을 포함하는 것은 어렵다. 애자일 개발은 소프트웨어 개발에 이러한 기능을 제공한다. 이 기사는 제품 개발에서 시장 요구사항을 채택하기 위해 애자일 제품 개발에 사용될 수 있는 다른 가상화 기술을 논의한다.
가상화는 운영 체제에 독립적인 별도의 가상 머신으로 하드웨어, 소프트웨어, 시간 공유 및 기타 시스템 자원을 논리적으로 구분하는 접근방식이다. 이를 달리 정의하면, 가상화를 통해 사용자는 기존 운영 체제에서 여러 애플리케이션을 실행할 수 있다. 가상화의 개념은 여러 태스크와 애플리케이션을 수행하는 동시에 비용을 줄이기 위해 메인프레임 하드웨어를 가상 머신으로 논리적으로 파티셔닝하여 메인프레임 하드웨어를 완전히 활용하기 위해 1960년대에 IBM이 처음 소개했다.
분배 영역에서 가상화는 하나의 실제 자원이 많은 분리된 더 작은 자원으로 작동하거나, 많은 더 작은 자원들이 애플리케이션 요구사항을 기반으로 하나의 더 큰 자원으로 작동하도록 함께 종합하도록 만드는 데 사용된다. 일반 사용자의 관점에서 자원은 백엔드에서 사용되는 가상화 기술의 유형에 관계없이 하나의 실제 자원처럼 보인다. 가상화는 서버, 스토리지, 네트워크, 입력/출력 및 자원의 효율적인 활용을 위한 애플리케이션 개발과 같은 소프트웨어 개발 라이프사이클의 서로 다른 단계들에서 채택될 수 있다.
서버 가상화는 개별 실제 서버, 프로세서 및 운영 체제와 같은 서버 자원을 일반 사용자에게 숨기는 프로세스이다. 서버 가상화는 하나의 실제 서버를 가상 사설 서버, 게스트, 인스턴스, 컨테이너 또는 에뮬레이션이라고 하는 여러 개의 분리된 가상 환경으로 구분하는 데 도움을 준다. 서버에 사용 가능한 대중적인 가상화 기술은 다음과 같다.
-
하드웨어 가상화
이는 전체 하드웨어 환경을 에뮬레이트하여 가상 머신을 작성하는 가상화 소프트웨어(하이퍼바이저라고 함)로 구성되고, 호스트 컴퓨터에서 여러 운영 체제를 병렬로 실행하도록 허용한다. 하이퍼바이저는 아래 그림 1과 같이 게스트 운영 체제의 실행을 모니터하고, 시스템 호출을 캐치하며 하이퍼바이저로 제공되는 데이터 구조를 조작하도록 경로 재지정한다.
그림 1. 하드웨어 가상화 예제
이러한 방법으로 여러 운영 체제(동일한 운영 체제의 여러 인스턴스 포함)는 동일한 하드웨어 자원을 공유할 수 있다. 1970년대 초반에 IBM은 CPU, 직접 액세스 스토리지 디바이스 및 게스트 운영 체제 전반에 걸친 메모리와 같은 시스템 자원을 지정하고 모니터하기 위해 하드웨어에서 실행하는 PR/SM 하이퍼바이저(유형 1 하이퍼바이저)를 도입했다. 이 모델에서 게스트 운영 체제는 하이퍼바이저 위의 또 다른 계층에서 실행한다.
-
파라(Para) 가상화
하드웨어 가상화에서 하이퍼바이저는 내재된 컴퓨터 시스템의 가상화 추상을 게스트 운영 체제에 제공한다. 따라서 게스트 운영 체제는 하이퍼바이저에서 수정되지 않은 채로 실행한다. 파라 가상화에서처럼 하이퍼바이저는 아래 그림 2와 같이 하드웨어에 상주한다. 상호 협업으로 성능과 더 나은 효율성을 개선하기 위한 하이퍼바이저와 게스트 운영 체제 사이에 통신 메커니즘이 있다.
게스트 운영 체제는 가상 머신 모니터(VMW)로 제공되는 API를 사용하여 내재된 하드웨어에서 특정 자원에 직접 액세스하기 위해 하이퍼바이저와 통신한다. VMware는 2005년에 가상 머신 인터페이스(VMI)라는 파라 가상화 인터페이스를 제공하여, zSeries에서 IBM VM 운영 체제가 1972년 이후로 유사한 개념을 사용한 것처럼 하이퍼바이저와 게스트 운영 체제 사이에 통신 메커니즘을 제공했다.
그림 2. 파라 가상화 예제
-
가상화 참가자
가상화 참가자는 호스트 운영 체제에서 실행하고 완료된 하드웨어 가상화를 해당 게스트 운영 체제에 제공한다. 이러한 참가자들은 네트워크 어댑터, 하드 디스크, USB 드라이버, 비디오 어댑터 및 다른 일련/병렬 디바이스와 같은 호스트 운영 체제로 연결된 다른 하드웨어를 가상화하여, 실행하기 위해 다른 게스트 운영 체제에 사용 가능하게 만든다(그림 3에 표시됨).
그림 3. 가상화 참가자 예제
이 모델에서 가상화 참가자는 전통적인 운영 체제 환경에서 실행하므로 이러한 참가자들의 위에 실행하는 게스트 운영 체제는 하드웨어 위의 세 번째 레벨이다. 가상화 참가자의 일부는 컨텍스트를 저장하거나 게스트 운영 체제에서 실행하는 태스크를 일시중단하는 기능을 제공한다. 게스트조차도 다른 실제 시스템으로 이동하고 일시중단의 시점에 정확히 실행을 재개한다. VMware 및 Citrix는 가상화 참가자의 예제이다.
-
운영 체제 레벨 가상화
이 모델에서 호스트는 핵심으로서 단일 OS 커널을 실행하고 운영 체제 기능을 각 게스트 운영 체제로 내보낸다. 게스트는 호스트와 동일한 운영 체제를 사용해야 한다(아래 그림 4에 표시됨). 일부 호스트 운영 체제는 게스트와 동일한 운영 체제의 다른 분배를 허용한다. 이 메소드에서 운영 체제의 커널은 여러 격리된 사용자 공간 인스턴스를 허용한다. 이러한 각 인스턴스는 일반 사용자의 시각에서는 실제 서버와 같이 느낄 수도 있다.
그림 4. 운영 체제 레벨 가상화 예제
이러한 각 인스턴스는 격리되고 커널은 자원 관리 기능을 자주 제공하여 각 인스턴스에 대해 자원을 제한한다. 호스트 운영 체제에서 바이너리와 라이브러리는 호스트 운영 체제 전반에 걸쳐 공유될 수 있다. 따라서, 이 모델은 사용자에게 유연성을 더 제공하여 호스트 시스템에서 동시에 여러 게스트의 수를 작성한다. AIX V6.1 워크로드 파티션(WPAR), Solaris 10 컨테이너 및 HP-UX 11i vPars와 같은 다른 운영 체제 가상화 기술을 사용할 수 있다.
AIX 6.1은 애플리케이션 격리된 환경과 애플리케이션의 자원 제어를 제공하는 WPAR 기능을 제공한다. 호스트 운영 체제는 특정 WPAR에서 실행하는 프로세스를 모니터할 수 있다. 공유 시스템 WPAR 구성을 사용하면 각 WPAR에서 소프트웨어를 설치할 필요가 없다. 호스트 운영 체제에 설치된 소프트웨어는 작성한 모든 WPARS에서 공유된다. 사설 WPAR 구성에서 사용자는 특정 WPAR에 필수 소프트웨어를 설치할 수 있다. 애플리케이션 WPAR은 전용 자원으로 애플리케이션을 실행하도록 작성될 수 있다.
네트워크 가상화는 하드웨어 및 소프트웨어 네트워크 자원 및 네트워크 기능을 하나의 소프트웨어 기반 관리 엔티티 —가상 네트워크로 결합하는 프로세스이다. 네트워크 가상화를 통해 하나의 케이블이나 디바이스를 만질 필요도 없이 네트워크는 그때 그때 봐가며 다시 구성될 수 있다. 대신에, 가상화 가능한 네트워크 디바이스는 원격으로 관리되며 논리적으로 다시 구성될 수 있다. 다른 네트워크 가상화는 하드웨어 레벨에서 네트워크 인터페이스 카드(NIC) 및 네트워크 레벨에서 가상 LAN(VLANs)을 포함한다.
스토리지 가상화는 정보의 논리적 및 실제적 위치를 구별하며, 이는 실제 인프라의 변경에 관계없이 정보를 비즈니스 애플리케이션에 더 즉시 사용 가능하게 만드는 데 유용하다.
그림 5. 스토리지 가상화 예제
가상화는 여러 실제 스토리지 디바이스의 풀링을 제공하여 하나의 논리적 스토리지 디바이스로 나타나게 하고 아래 그림 5와 같이 스스로 실제 위치로 요청을 맵핑하는 프로세스도 처리한다. 맵핑은 구현의 다음 유형에 따라 다르다.
- 호스트 기반 가상화
호스트 기반 가상화에서 실제 디바이스 드라이버 계층 위의 소프트웨어 계층은 입출력 요청을 처리하고 특정한 실제 디바이스로 요청을 경로 재지정한다. 이는 또한 여러 벤더로부터 디스크 서브시스템을 하나의 지점에서 관리될 수 있는 하나의 용량 저장소로 결합하는 기능도 제공한다. 특정 디바이스로 액세스는 이와 관련된 기존의 실제 디바이스 드라이버가 처리한다. 비록 이는 간단하고 어느 실제 디바이스 스토리지 유형이나 지원하지만, 시스템에 걸쳐 데이터 마이그레이션/복제 및 조직에 걸쳐 호스트 인스턴스 동기화는 가능하지 않다. IBM SAN Volume Controller 및 FalconStor Software NSS Virtual Appliance는 이러한 가상화 유형의 예제이다.
-
스토리지 디바이스 기반 가상화
스토리지 디바이스 기반 가상화는 하나의 배열에서 여러 실제 디스크를 결합하고 요구사항에 따라 다른 크기의 여러 볼륨으로 이를 구분하는 기능을 제공한다. 이 기술에서 기본 스토리지 컨트롤러는 동일한 또는 다른 벤더의 다른 스토리지 컨트롤러에 가상화 서비스를 제공한다. 이는 스토리지 가상화의 데이터 마이그레이션과 복제와 같은 대부분의 혜택을 제공하지만, 스토리지 활용은 연결된 컨트롤러에 대해서만 최적화될 수 있으므로 연결된 컨트롤러에서만 복제/데이터 마이그레이션을 가능하게 만든다.
-
네트워크 기반 가상화
네트워크 기반 가상화는 여러 클라이언트에 데이터 액세스를 제공하는 컴퓨터 네트워크로 연결된 파일 레벨 컴퓨터 데이터 스토리지 서버이다. 이는 키보드나 표시장치 없이 네트워크에서 스토리지에 대한 전용 단위이며, 네트워크에 대해 제어되고 구성된다. 이는 하나 이상의 하드 디스크를 포함하며, 종종 논리적이고 중복된 스토리지 컨테이너 또는 RAID 배열(저렴하고 독립적인 디스크의 중복 배열)로 배열된다. 이는 가상화의 가장 일반적으로 사용되는 형태이다. 이는 연결된 모든 가상화된 스토리지에 대한 하나의 관리 인터페이스를 제공하고 이기종 디바이스에 걸친 데이터 복제 또한 가능하다.
이는 실제 연결로부터 상위 계층 프로토콜을 추상화하여 I/O 엔터프라이즈 환경을 간소화하는 방법론이다. 이를 통해 하나의 실제 어댑터 카드가 여러 가상 네트워크 인터페이스 카드(vNICs)와 가상 호스트 버스 어댑터(vHBAs)로서 네트워킹 자원(LANs 및 SANs)에 나타날 수 있다. 실제적인 관점에서 가상 I/O는 서버 복수 I/O 케이블을 모든 네트워크 및 스토리지 연결에 대한 공유된 전송을 제공하는 하나의 케이블로 바꾼다. 서버 I/O는 성공적이고 효율적인 서버 배치로 중요한 컴포넌트이며, 특히 가상화된 서버로 여러 애플리케이션을 수용하는 용도인 경우 그렇다. 가상화된 서버는 더 많은 네트워크와 스토리지로 더 많은 네트워크 대역폭과 연결을 요구한다. 가상화된 환경에서 I/O 성능 문제는 많은 가상 머신(VMs)을 하나의 서버에서 실행하여 나타난다.
실제 연결로부터 상위 계층 프로토콜을 추상화하여, I/O 가상화는 기존 NIC 및 HBA 카드 아키텍처와 비교하면 더 높은 유연성, 더 높은 활용도 및 더 신속한 프로비저닝을 제공한다. 가상 I/O 기술은 엄청나게 확대되고 수축될 수 있으며, 구성 변경이 하드웨어보다는 소프트웨어에서 구현되므로 각 서버로 여러 네트워크 및 스토리지 연결을 여러 트래픽 유형을 운반하는 하나의 케이블로 일반적으로 바꿀 수 있다. 가상 I/O는 비용을 낮추고 카드, 케이블 및 스위치 포트를 더 적게 사용하여 간소화된 서버 관리를 사용하는 동시에 여전히 전체 네트워크 I/O 성능을 달성한다.
클라이언트 가상화를 통해 사용자의 전체 PC 환경은 원격 액세스 디바이스로 그래픽 표시장치 출력을 사용하여 데이터 센터의 공유 서버 또는 전용 블레이드 클라이언트에서 실행한다. 클라이언트 가상화의 장점은 더 높은 수준의 데이터 보안, 더 간편한 관리성을 제공하고, 일반 사용자 중단시간을 줄이며 비즈니스 연결성을 보장한다는 점이다.
-
애플리케이션 가상화
애플리케이션 가상화는 프로그램 표시장치와 프로그램 실행을 분리하는 것을 말한다. 다시 말해서, 프로그램은 서버에서 실행하지만, 그래픽 출력은 원격 클라이언트 디바이스로 전송된다. 일반 사용자는 프로그램의 전체 그래픽 표시장치를 확인하고 입력 디바이스를 사용하여 상호작용할 수 있다.
-
데스크탑 가상화
데스크탑 가상화에서 사용자의 전체 PC는 클라이언트 디바이스로 그래픽 표시장치 출력을 사용하여 중앙 서버에서 실행한다. 데스크탑 가상화는 종종 일반 사용자 표시장치와 상호작용을 위해 저렴한 클라이언트 디바이스를 사용한다. 알려진 대로 이러한 씬 클라이언트(thin client)는 컴퓨팅 성능이 낮고 로컬 디스크 스토리지가 없는 저비용의 디바이스가 될 수 있다. 이는 직원 일반 사용자 디바이스당 비용을 급격하게 줄일 수 있다.
가상화의 장점은 많지만 그 중 중요한 것은 다음과 같다.
- 서버의 하드웨어가 최고 처리 용량으로 사용될 수 있다.
- 데이터 센터가 하나의 실제 서버에서 여러 게스트 시스템을 호스트하는 기능을 제공하여 여러 개의 서버를 수용할 수 있다.
- 에너지 비용은 가상화가 실제 서버의 총 수를 줄이는 만큼 줄어든다. 이는 회사의 전체 에너지 비용을 엄청나게 줄일 수 있다.
- IT 운영 비용은 유연한 인프라와 적은 노동력으로 줄어든다.
- 자원이 해당 비즈니스로 더 짧은 시간에 신속하게 할당되므로 가상화로 서비스의 품질이 개선된다.
- 가상 머신이 어느 상황에서나 수 초 또는 수 분 내에 다른 서버로 간편하게 변환될 수 있으므로 재해 복구가 달성된다.
- 클라이언트 가상화를 통해 클라이언트 소프트웨어 이미지가 중앙 집중화된 서버에서 유지보수되므로 업데이트가 편리해지고, 페치가 정기적으로 적용된다.
- 가상화를 통해 회사는 에너지, 시스템, 냉각 메커니즘 및 사용하는 총 시스템 수를 90퍼센트까지 절감할 수 있으므로 소프트웨어 개발이 친환경적이 될 수 있다.
이 섹션에서는 기존의 폭포수형 모델과 애자일 프로세스의 혜택을 더 강조한 애자일 소프트웨어 개발 모델을 논의한다.
폭포수형 또는 기존 소프트웨어 개발의 저변에 깔려있는 기본적이고 기초적인 개념은 복잡한 소프트웨어 시스템이 전체 요구사항을 시작부터 한 번에 모두 수집할 수 있는 순차적이고 단계를 고려한 방식으로 빌드될 수 있다는 것이다.
전체 설계는 다음 단계의 일부분으로 완료된다. 결과적으로 전체적인 마스터 설계는 프로덕션 품질 소프트웨어로 구현된다. 폭포수형의 가장 어려운 장애요인은 모든 프로젝트 요구사항들을 프로젝트의 시작부터 정확하고 적절하게 모을 수 있다는 기본적인 가정이며, 이로 인해 작업 제품이 종종 잘못 위치 지정되거나 오해되기도 한다.
이 접근방식은 이해 당사자 요구사항이 변화하는 마케팅 전략 및/또는 기술 조건으로 인해 변경될 수 있는 만큼 이러한 요구사항으로 다시 돌아가서 논의하지 않고 복잡한 시스템이 하나의 루프에서 빌드될 수 있다는 것을 타당하다고 인정한다.
애자일 개발 프로세스의 단계는 아래 그림 6에 표시된다. 해당 프로세스는 프로젝트 승인으로 시작하고 사전 반복 계획으로 계속한다. 그 다음에 반복 계획, 실행 및 랩업(wrap-up)을 보유하며, 이는 프로젝트의 요구사항에 따라 계속 반복될 수 있다(사후 반복 계획과 마지막으로 릴리스가 이어짐).
그림 6. 애자일 개발 프로세스
애자일 소프트웨어 개발 메소드는 생산성을 보증하고 프로세스와 문서 오버헤드 및 아티팩트에 대해 평가한다. 애자일 메소드는 신속한 스프린트(sprint), 소규모의 잦은 릴리스, 계속적인 통합, 개발 프로세스에서 직접 사용자 참여로 활용 가능한 진화하는 요구사항들을 강조한다(아래 그림 7에 표시됨). 애자일이 정립되고 시도되며 테스트된 고전적인 폭포수형 소프트웨어 개발에서부터 출발했다는 일반적인 주장은 정확하지 않다. 비록 폭포수형이 보통 "전통적이고 오래된 것"이라고 하지만, 이는 소프트웨어 엔지니어링이 다른 엔지니어링 원칙과 비교하여 초창기일 때 1970년대에 Winston W. Royce(1929–1995)의 논문에서 처음 선을 보였다.
애자일 소프트웨어 개발의 철학적 기초는 네 가지의 애자일 연합 가치로 형성된다. 가치는 다음과 같다.
- 프로세스와 도구에 대한 개인과 상호작용
어느 조직이나 가장 중요한 부분은 사람들이다. 조직은 해당 직원들만큼 영리하고 생산적이다. 최고의 도구와 프로세스는 이를 운영하는 사람들이 능숙하지 않으면 도움이 되지 않는다. Belbin의 팀 모델은 개인의 필요를 이해하는 것이 어떻게 매우 생산적인 조직으로 나타날 수 있는지에 대한 올바른 예제이다. 이는 Meredith Belbin 박사가 9개의 발견된 팀 역할에 대한 환경 설정을 측정하기 위해 Henley Management College에서 무수한 팀을 조사하면서 고안했다.
- 포괄적인 문서에 대해 작업하는 소프트웨어.
소프트웨어 개발 라이프사이클의 궁극적인 목표는 문서가 아니라 소프트웨어 또는 작업 제품을 개발하는 것이다. 그렇지 않으면, 이는 문서 개발 라이프사이클 또는 문서 조직이라고 불릴 것이다. 문서를 준비하는 것은 중요하고 그 자체적인 위치가 있지만, 이는 간소화되어야 한다. 위의 특정한 사항은 이중적 또는 양분법적으로 분명히 이해되어야 한다.
- 계약 협상에 대한 고객 협업.
변함없는 이해 당사자 피드백은 매우 중요하고 애자일 개발 사이클의 기초적인 부분이다. 많은 경우에 고객들은 비즈니스 필요, 시장 전략 및 기타 등등의 변경을 이유로 시작 부분에서 요청한 것을 찾거나 요청하지 않는다. 따라서, 계속 이들이 관여하도록 유지하고 제품을 개발하면서 지속적인 피드백을 받는 것이 중요하며 필수적이다. 이전에 언급한 것처럼 왼쪽의 용어가 오른쪽의 표현에 대한 대체품이 아니다. 이러한 용어의 이중성은 고려되어야 하고 결과적으로 따라야 한다.
- 계획을 따르는 것에 대해 변경에 응답하기.
변경에 응답하는 것은 당장 필요하다. 시장이 변경하고, 비즈니스 필요가 변경하고 기술이 변경하고, 심지어 이해 당사자가 개발되는 시스템을 이해하는 방법도 변경한다. 따라서 우리의 소프트웨어는 이러한 변경도 반영해야 한다. 계획은 이벤트의 과정과 그 본질에 강력하게 영향을 주지만, 이는 실재하고 유연하며 변경을 통합하기 위해 영향을 잘 받을 수 있어야 한다.
위의 네 가지 가치의 두 부분을 확인한다. 첫 부분은 애자일 선언을 표현하고 두 번째 부분은 기존 폭포수형 가치를 표현한다. 기존 가치를 평가해야 한다고 하더라도 애자일 가치를 조금 더 높게 평가해야 한다는 점을 매우 분명히 이해해야 한다. 기존의 것을 삭제하지 말아야 하지만, 지나치게 많이 사용하여 극단적으로 이행하지도 말아야 한다.
그림 7. 하위 레벨에서 애자일 개발 프로세스
소프트웨어 개발에 가장 일반적으로 사용되는 애자일 소프트웨어 개발 방법론은 다음과 같다.
-
극한 프로그래밍(XP)
이는 애자일 소프트웨어 개발 방법론이며, 변화하는 고객, 비즈니스, 시장 요구사항에 소프트웨어 품질 및 애자일성(agilty)을 개선하는 것이 목표이다. 일부 중요한 XP 규칙 및 개념은 "쌍 프로그래밍"(필자는 "쌍 테스팅"이라는 새 용어를 제작했음), "효율적인 사용자 스토리를 시작하게 하기", "프로젝트 속도 측정하기" 및 "지속적인 통합"은 언급할 가치가 있다.
- 스크럼(Scrum)
스크럼은 프로젝트 관리 및 개발을 위한 반복적인 증가하는 모델이다. 몇 가지 스크럼 개념은 제품 백로그, 스프린트 백로그, 제품 소멸 차트 및 Scrum Master이다.
가상화는 활력에 더 신속하게 응답하고 비즈니스 변화에 더 효율적으로 응답하며 IT 자산 활용을 개선하는 동적 목표를 모두 지원한다. 효율적인 가상화는 로컬 및 원격 자원을 연결하고 통합하며 궁극적으로 일반적인 인터페이스와 자원 저장소 배후의 다양한 구현을 함께 묶는다.
가상화 및 애자일 기술을 통합하는 것은, 필요한 경우 데이터와 컴퓨팅 성능이 IT 인프라를 통해 자동으로 이동될 수 있는 유틸리티 컴퓨팅을 향한 첫 단계이다. 서버와 데스크탑 용량과 같이 IT 자원의 가상화는 변동성을 위한 시장의 요구를 충족할 것이다. 효율적인 가상화가 서버, 스토리지, 네트워크 및 기타 기능을 더 모듈형적이므로 더 재사용 가능하게 만드는 자산 활용을 개선할 수 있다는 것은 잘 알려져 있다. 이는 또한 필요한 경우 컴퓨터를 사용한 성능을 배치하여 시스템 처리량 및 신뢰성을 개선하고, 또한 그렇지 않으면 자원을 낮게 활용하는 시스템의 활용을 최대화한다.
그림 8. 애자일 제품 개발을 위한 운영 체제 가상화 기술의 예제
가상화는 제품 개발 라이프사이클의 다른 단계에 채택될 수 있고, 각 가상화 기술은 사용법에 따라 다른 장점이 있다. 하드웨어, 네트워크, 스토리지, I/O 및 데스크탑 가상화 기술이 이전 섹션에서 지정한 대로 장점을 제공하지만, 이러한 기술은 어느 소프트웨어 개발 모델에서나 채택될 수 있다. 운영 체제 가상화가 애자일 개발에 대한 특수 이점을 제공하는 것처럼 이는 기존 운영에 영향을 주지 않고 요청 자원에 제공할 수 있다. 애자일 개발이 린(lean) 원칙인 운영 체제 가상 기술을 사용하여 제품 개발 라이프사이클의 다른 레벨에서 낭비를 없애는 것에 대해 논의하면서, 실제 시스템은 테스트, 개발과 같은 다른 팀들과 공유할 수 있고 특정 요구사항에 대해 시스템을 설정할 수 있다.
애자일 개발은 짧은 반복을 포함하고, 각 반복은 테스트 인증으로 종료된다. 테스트 머신을 설정하는 시간은 글로벌 시스템에서 소프트웨어를 설치하는 이점을 제공하고 최소의 노력으로 모든 공유된 운영 인스턴스에 이를 사용 가능하게 만들기 때문에, 공유 운영 체제 인스턴스를 사용하여 절약될 수 있다. 이는 또한 서버를 설정하기 위해 필요한 실제 서버의 수와 필요한 시간을 줄이는 데 유용하다. 이 기술도 설치 및 기능 인증 도중에 간편하게 테스트하고 한 번 발생하는 문제를 발견하기 위해 새로운 환경을 설정하는 데 유용하다.
애자일 제품 개발에서 가상화 기술을 채택하는 것은 다른 단계에서 자원의 낭비를 없애기 위한 더 나은 방법을 제공하므로 에너지 효율성, 재해 복구, 머신 사용, 냉각 메커니즘, 개발 시간 및 제품 품질을 개선한다.
교육
- AIX
6.1 Information Center는 AIX 운영 체제에 대한 기술적 세부사항을 제공한다.
- Introduction to Workload Partition Management in IBM AIX Version 6.1를 확인하여 AIX 6.1 WPAR 운영 체제 가상화 기능을 이해하자.
- Workload Partition Management in IBM AIX Version 6.1은 AIX 6.1 TL2로 WPAR에서 향상판의 정보를 제공한다.
- Workload Partition Management in IBM AIX Version 6.1은 AIX 6.1 TL2로 WPAR에서 향상판의 정보를 제공한다.
- Workload Partition Management in IBM AIX Version 6.1은 AIX 6.1 TL2로 WPAR에서 향상판의 정보를 제공한다.
- AIX와 UNIX developerWorks 영역에서는 AIX 시스템 관리의 모든 측면과 관련된 풍부한 정보를 접할 수 있다.
- developerWorks 기술 행사 및 웹 캐스트를 통해
최신 정보를 얻을 수 있다.
- 기술 서점에서
다양한 기술 주제와 관련된 서적을 살펴보자.
제품 및 기술 얻기
- IBM 제품 평가판을 다운로드하거나
IBM SOA Sandbox의 온라인 시험판을 살펴보고
DB2, Lotus, Rational, Tivoli 및 WebSphere 애플리케이션 개발 도구와 미들웨어 제품을 사용해 볼 수 있다.
토론
- developerWorks 포럼 & 블로그를 통해 developerWorks 커뮤니티에 참여하자.
- Twitter의 developerWorks 페이지를 살펴보자.
-
developerWorks 블로그를 통해 developerWorks 커뮤니티에 참여할 수 있다.
- My developerWorks 커뮤니티에 참여하자.
-
AIX 및 UNIX® 포럼에 참여하자.
- AIX Forum
- AIX Forum for developers
- Cluster Systems Management
- Performance Tools Forum
- PowerVM Forum
- 기타 AIX and UNIX Forums

