문제

나는 종종 고객을위한 크기 및 용량 계획을 수행하도록 요청받습니다. 고객이 제품 (기본적으로 J2EE 웹 응용 프로그램)을 구매할 때 종종 해당 제품을 실행하는 데 필요한 하드웨어를 묻습니다. 우리의 권장 사항은 종종 고가의 하드웨어 획득을 초래합니다.

지금까지 내가 개발 한 최고의 휴리스틱은 기존 설치에서 수집 된 데이터와 활용 예측 (응용 프로그램에 참석 해야하는 동시 사용자 수)을 비교하는 것입니다. 다음과 같은 것 : 설치 A가 X 하드웨어를 가진 100 명의 동시 사용자에 참석하면 설치 B는 200 명의 동시 사용자에 참석하려면 2*x 하드웨어가 필요합니다.

그러나이 접근법에는 여러 가지 문제가 있습니다. 클라이언트는 종종 다른 하드웨어 및 소프트웨어 플랫폼을 사용합니다. 그들이 우리에게서 구매하는 제품 세트는 일반적으로 결코 동일하지 않으며 일반적으로 응용 프로그램의 일부는 특정 클라이언트를위한 주문에 따라 구축됩니다. 소프트웨어 버전이 변경되고 있음을 고려하고 크기 조정 작업을 매우 어렵게 만들 수있는 많은 매개 변수가 있습니다.

나는 주제에 관한 몇 권의 책을 연구했으며 일부는 복잡한 수학적 모델을 사용하여 제안합니다. 이러한 접근 방식이 입력으로 필요한 매개 변수의 수 (예 : 응용 프로그램 기능의 세부 분류)는 이것이 거의 유용하지 않다고 생각합니다. 하드웨어는 일반적으로 기본 요구 사항조차도 응용 프로그램 개발 및 수명주기 전체에 따라 다를 것이라는 말은 말할 것도없이 정의되기 전에 주문됩니다. 그렇다면 크기 조정 및 용량 계획에 대해 어떻게해야합니까? 모든 팁과 방법에 감사드립니다.

도움이 되었습니까?

해결책

기본 REQ가 정의되기 전에 하드웨어를 주문 해야하는 경우, 현재 할 수있는 최선의 방법은 유사한 프로젝트 세트 (현재 수행중인대로)를 위해 설치된 기반을 살펴보면 용량을 야구장하는 것입니다. 기존 고객이 설치를 성장함에 따라 스케일링 및 용량 요구에 대한 경험을 추적하며, 충분히 큰 기반이있는 경우 유사한 하드웨어로 유사한 프로젝트를 그룹화하고 용량 요구를 검토하여 대략적인 곡선 피팅을 수행 할 수 있습니다. 추가 데이터 포인트를 위해 기존 고객의 역량이 어떻게 변화 해야하는지 살펴보십시오.

이상적으로, 초기 HW/SW 구매는 파일럿 설치를위한 것이며, 파일럿 설정이 시작되면 사양을 만나면 파일럿 설정을 벤치마킹합니다. 이러한 결과를 사용하여 파일럿에서 생산으로 전환하기위한 프로젝트 용량 요구에 맞게 사용하십시오. 물론, 이는 앱을 벤치마킹 한 다음 장비를 주문하고 전달하기 위해 파일럿 간 프로덕션 일정에서 시간이 필요합니다. 그러나 그것은 모든 선결제보다 더 정확한 용량 추정치를 제공 할 것입니다.

다른 팁

귀하 (또는 귀하의 회사)에 대해 진지한 경우 설명에 척도를 예측할 수있는 쉽거나 수학적 공식이 없습니다. 가장 좋은 방법은 다양한 클라이언트를 쉽게 설정하고 세분화 할 수있는 성능 및 확장 성 테스트 환경을 구축하는 것입니다. 구성 및로드를 보내는 방법을 확인하십시오. 사용자 정의 구성 요소를 구축하고 있으므로 잘못 쓰여진 구성 요소 또는 누락 된 인덱스는 모든 것을 엉망으로 만들 수 있으므로 이와 같은 환경을 갖는 것이 클라이언트에게 제공하기 전에 이러한 것들을 다림질 할 수 있습니다. 이러한 유형의 환경이 있으면 앱 서버 및 데이터베이스에 메모리 및 CPU를 추가하여 애플리케이션 스케일을 확인할 수 있습니다.

Application의 요구에 따라 CPU 및 메모리를 쉽게 추가 할 수있는 VM 환경을 제안하고 Watchmouse 또는 Browsermob과 같은 서비스를 사용하여 현실적인 외부 하중/스케일 테스트와 결합합니다.

앱이 우아한 방식으로 수평으로 스케일링되는 경우, 대략적인 초기 추정치는 시작점으로 괜찮습니다. 필요에 따라 추가 상자를 추가하거나 제거하는 것은 앱이 생산 중일 때 쉬워야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top