참고: Codename:bluemix 베타 급 제품 이며, 더 많은 기능과 쉽게 사용할 수 있도록 계속 해 서 개선 하기 위해 계속 됩니다. 우리 최신이 문서를 계속 최선을 다 할 것입니다 하지만 그것은 항상 전체 진행. 양해해 주셔서 감사 합니다!
효과적이 고, 혁신적인 응용도 손상 될 수 있습니다 또는 성능, 응답 시간, 및 전반적인 안정성의 NFRs을 충족 하지 않습니다 때문에 시장에서 실패. 전통적으로, 건축가의 모양 그리고 크기는 인프라를 수정 하 여 NFRs에 응답. 동시 사용자 수는 사용자의 세션을 동시에 실행 하는 여러 시스템을 분할 하 여 처리 하 고 신속 하 게 대량 이벤트 레코드;을 수행할 수 있는 새로운 서비스를 추가 하 여 데이터베이스 및 스토리지 사용 및 서비스 요구에 종종 성능 병목 상태를 제거 하 여 응답 시간을 향상 시킬 수 있습니다. 하지만 클라우드 환경에서 건축가 NFRs를 관리 하는 방법의 그들의 선택에 더 제한 한다.
클라우드 인프라 서비스 (IaaS) 플랫폼 인프라 수정 보다 경제적이 고 쉽게 (IaaS 환경 급변, 급속 하 게 확장 작업에 널리 무엇입니까 설명), 하 고 건축가 선택은 대응 하 게 감소 된다. 클라우드 플랫폼 서비스 (PaaS) 환경, 수평 크기 조절, 컴포넌트 배치, 로깅 및 사용자 관점에서 시스템 관리를 제거,이 패러다임에서 한 단계 더 나아가 갑니다. 이러한 동작이 발생할 수 있습니다, 하지만 그것은 건축가 서 제어할 수 없습니다 (또는 약간 제어할) 그들.
그러나, NFR의 건축가 관리는 클라우드 환경에서 사라지지 않습니다. 대신, 그들은 응용 프로그램 디자인 패턴에 대 한 응용 프로그램의 내부 장치에 전송 됩니다. 이러한 패턴의 구현 하면 클라우드 응용 프로그램 클라우드 운영 환경 (CLOUDOE)에서 "민간인" 및 CLOUDOE 장치에 연결 하지 마십시오 Cloudoe 원리와 일치 합니다. 이 문서에는 NFRs 패턴 및 PaaS 환경 뿐 아니라 IBM Codename:bluemix, 디자인 패턴 효과로 취할 수 있는 오픈 표준 PaaS cloudoe 해결할 형식 설명 합니다.
NFRs 및 스트레스의 경우
기능 및 비 기능 요구 사항이 개념적으로 다르다. 모두 이해 당사자의 동기 또는 정의 된 시스템의 영향을 받는 사람을 나타냅니다. 그것은 기술과 역할 진화, 시스템 계속 이해 관계자의 수 및 그들의 요청에의 복잡성을 증가 하는 소프트웨어. 이외에 시스템의 사용자, 이해 관계자 및 그들의 각각 필요 다음과 같습니다.
개발자: 구조와 선명도의 코드 유지 보수 인력: 로깅 및 디버깅 도구 테스터: 추적 및 다른 문제 해결 도구 제공: 응용 훈련 연산자의 단순: 정보 수준 Operations Manager를 제공 하: 솔루션 확장성 구성 관리 전문가: 지원 되는 미들웨어 포장 및 수준 데이터베이스 관리자 데이터베이스 리소스 사용 및 최적화 서비스 관리자: 기술과 작업 작업 모니터링을 위한 네트워크 및 시스템 관리 전문가: 도구 기업 건축가 지원: 기업 표준 아키텍처 조달 직원 준수 보안 책임자: 확장성과 적응성 솔루션 평가기: 감사 도구. 지원 담당자: 사용자 작업의 복잡도: 통신 직원: 선명도
인터페이스
이 상황이 어려운 기능 요구 사항 및 엄격한 NFRs, 매우 높은 가용성을 포함 하 여 복잡 한 시스템 빠른 성능, 그리고 도전적인 보안 요구 사항을 고려 합니다. 클라우드 컴퓨팅 또한 추가 필요 높은 유연성과 지리적인 분산 사용할 수 언제, 어디서 나.
에서는 IT 건축가 되도록 하는 시스템의 아키텍처는 만족 스럽게 이러한 요구 사항을 모두 포괄 하는 수? 여기에 위기는 요구에 솔루션 격리 수요 솔루션 수도 있습니다 다른 요구 사항에 미치는 영향을 고려 하지 않습니다.
전체적으로 요구를 고려, 당신은 수 구상 그들로 상대 "힘" (힘), 그림 1에서 보듯이. IT 솔루션 최적의 방식으로 이러한 세력을 주소 수 있습니다.
그림 1입니다. 수요는 상대 힘 이다
그림 1에서이 힘은 다음과 같습니다.
우리 IT 시스템 (NFRS)에 부과 하는
기능 요구 품질 요구 사항 및 제약 조건: 런타임 품질 런타임 품질 비즈니스 제약 기술 제약 조건
특별 한 중요성의 어떤 주어진된 시간에 함께 실행 될 수 있습니다 상대 세력의 조합이입니다. 더하여, 힘의 동시 효과의 일부는 될 상호 강화. 다른 말로 하면, 그들의 효과 시스템의 특정 부분에 대 한 스트레스 증가. 예를 들어 오류가 발생 한 후 짧은 회복 시간을 가진 동시 사용자의 많은 수의 조합 시스템 오류가 발생 한 후, 작업과 실제 차단 작업의 많은 수에 이르는 사용자의 식별 하위 시스템에 압력을 넣을 수 있습니다. 마찬가지로, 응용 프로그램 (예를 들어 사용 하 여 캐싱 메커니즘) 그것을 처리 하도록 설계 하지 않는 한 처리 되지 않은 요청의 조합에 엄격한 응답 시간 한정 된 자원 가진 데이터베이스와 함께 발생할 수 있습니다. 토목 공학에서 어휘 스트레스의 경우가 동시 고 상호 강화 세력을 식별 하기 위해 사용 합니다.
클라우드 공급자의 서비스 수준 계약 (SLA) 솔루션의 요구 사항 (제약 조건)의 하나 이며 스트레스의 경우에 영향을 미칠 수 있습니다. 예를 들어 IaaS 계약 가상 네트워크의 일정 금액을 지정, 관리 되는 응용 프로그램의 내부 처리에이 잠재적인 제약 외부 처리량 목표를 달성 하는 특정 메커니즘을 요구할 수 있습니다.
가끔 스트레스 사건이 동시에 모든 요구 사항을 충족 하는 것은 불가능 하 만들 수 있습니다. 이러한 경우 더 제한적인 사용자에 대 한 서비스의 적당 한 수준을 유지 하기 위해 요구 사항 집합을 설정 할 수 있습니다. 우리는이 저하 하는 경우 작업을 호출합니다. 비정상된 작업 신중 하 게 그들을 디자인 하 고 표시 하는 경우 사용자와 통신 하는 것이 중요 하다 그래서 클라우드 응용 프로그램에서 피할 수 있습니다.
수준 내리기 작업의 간단 하 고 보편적인 예 조각난된 데이터베이스의 마지막 일관성 메커니즘으로 꺼져 있습니다. 이 데이터베이스는 특정 데이터 요소에 대 한 쓰기 (쓰기 일관성을 유지) 하기 위해 항상 동일한 인스턴스에서 완료 하는 동안 성능 및 안정성을 보장 하기 위해 구름에서 여러 읽기 인스턴스를 제공 합니다. 새로운 데이터를 복사 하는 데 걸리는 시간 제한 때문에, 하나의 인스턴스에서 데이터베이스의 정보 수 있습니다 일관 되지 때 그것을 읽고 있다; 마지막 일관 된 데이터를 사용 하는 응용 프로그램 사용자 (예를 들어 업데이트를 버퍼에 아직 커밋되지 않은 표시) 하 여 인식 하는 불일치에 대 한 농담을 함으로써 저하 작업을 지원할 수 있어야 합니다 또는 (활성 데이터가 사용 가능한 경우)을 경고 하 여 사용자 데이터베이스가 마지막 업데이트.
예를 들어
Cloudoe PaaS 환경에서 NFRs를 처리 하는 방법을 설명 하기 위해, 우리는 수수료를 적립 독립, 파트 타임 판매원의 네트워크를 통해 자사의 제품을 판매 하는 가상 Amgro.cloud 회사에 따라 예를 개발할 것입니다.
Amgro 응용 프로그램을 구입 하는 디렉토리를 제공 하 여 온라인 판매 시장에 진입을 시작 하기로 결정 했습니다. 배포를 가속, Amgro 클라우드 공급자의 PaaS 환경, 웹 UI, 보안 서비스, 및 접근 제어, 그리고 링크 전달에서 시장 리더의 온라인 서비스 및 결제 서비스를 제공할 것입니다에서 응용 프로그램을 개발할 계획 이다. 새 응용 프로그램 또한 기존 Amgro 기업 자원 계획 (ERP) 플랫폼 회계 및 창 고 관리와 통합 해야 합니다.
NFRs Amgro의 새로운 응용 프로그램은 다음과 같습니다.
동시 사용자 수가 약 10, 000을 것으로 추정 됩니다. 모든 카탈로그 뷰는 일반 ADSL 연결 또는 고속 셀룰러 네트워크에서 1 초에 가능할 것으로 예상 된다. Amgro의 클라우드 환경 및 지불 서비스 24 × 7 가용성을 것으로 예상 된다. 일반 인터넷 연결을 통해 Amgro 및 배달 서비스 공급자.
서비스 요청에 응답 2-시간 약속 SLA입니다. 또한, 배달 서비스의 가용성 목표는 밤 동안, 그들은 시스템 유지 관리를 수행 하는 동안 변화 한다. 이 SLA 계약 이유로 변경할 수 없습니다.
새로운 PaaS 응용 프로그램이 Amgro ERP 시스템에 연결할 것 이다, 때문에이 인터페이스가 매우 민감한 고 적절 하 게 보호 해야 합니다.
그림 2에서는 Amgro 예제를 보여 줍니다. (이 그림 및이 문서의 뒷부분에 나오는 그래프의 대부분을 사용 하 여 합니다 TOGAF archimate 개념.) )
그림 2입니다. Amgro 샘플
Amgro 시스템에서 다음 NFR 조합 경우 스트레스에 속해 있어야 합니다.
사례 1: 초 응답 시간, 하지만 시스템 로드 됩니다.
10000 동시 사용자 초 수준의 응답 시간
사례 2: 초 응답 시간, 하지만 외부 시스템은 느리거나 불안정:
2 차 응답 시간 배달 및 지불 서비스는 일반 인터넷 연결
를 통해
사례 3: 응용 프로그램을 사용할 수 있어야 하지만 외부 시스템 비동기 또는 일치 하지 않는 SLA:
24 × 7 가용성 인터넷 연결 가용성 SLA 오프 라인 일치 하지 않는 처리
는
사례 4: 혼합된 클라우드:
보안 연결
PaaS 응용 프로그램, NFRs, 및 건축가의 역할
클라우드 운영 환경 기반 PaaS 솔루션 활용 Cloudoe 프로그래밍 모델 NFRs를 관리 하 고 응용 프로그램 설계자에 대 한 일부의 작업을 질 때:
수평 규모에 사용자 부하 관리: Cloudoe 추가 및 제거 구성 요소 인스턴스는 가상 컴퓨터에서 적절 한 조정 작업에 따라. 응용 프로그램 설계자 이상 확장성, 처리 하지만 이제 구성 요소를 동시에 확장 해야 합니다 및 통신의 구성 요소 간에 확장의 다른 레벨을 관리 하는 방법을 이해 해야 합니다. 요주의 경로 대 한 최신 기술 활용: 내부적으로 배포 된 솔루션에 있는 건축가 최신 기술을 활용 (데이터베이스, 메시지 백본 등) 시스템의 중요 한 부분에. 클라우드 컴퓨팅, 당신은 표준 기술을 사용 하 고 기본 선택의 제한 된 수 있습니다. 하드웨어 또는 소프트웨어 기술 불일치를 제거 하지만 요주의 경로 디자인 패턴을 통해 처리 되어야 합니다. 같은 위치에 그들을 둬서 성능 병목 상태를 제거: 상호 작용의 고차를 가진 인접 한 아티팩트를 배치 하는 것은 성능 향상을 위한 일반적인 관행입니다. 수 있습니다 (이 번들의 수평 확장 방해 하지 가정), Cloudoe에서 응용 프로그램과 함께이 작업을 수행 하지만 응용 프로그램 및 여러 분산된 복제본 (MongoDB) 등 기술 서비스의 시너지 효과 제어 하지 못할 수 있습니다. SLA 제어: Cloudoe에서 응용 프로그램 격리 됩니다. 시스템의 신뢰도 향상을 위해 관련 된 구성 요소는 어디 될 수 있습니다. 다른 한편으로, SLA 로컬 클라우드 공급자 님 다 다른 클라우드 플랫폼에서 다른 연결 된 구성 요소에 의해 제출 하는 SLA를 수 있습니다. 응용 프로그램 설계자 통합된 SLA를 가정 수 없습니다 및 분실 또는 지연 되는 응답의 가능성을 고려해 야 합니다.
PaaS NFRs 관리 모델
PaaS 작업 컨텍스트 다이어그램 그리면, 우리 외부 역할의 4 종류를 확인할 수 있습니다.
자체 (서비스 응용 프로그램 소비자) 응용 프로그램의 사용자: 이러한 역할 피어 응용 프로그램의 가용성 및 응답 시간에 관련 된 요구 사항을. 또한, 일반적인 클라우드 애플리케이션을 종종 예측할 수 없는 복잡성 동시 사용자의 수 있다. 외부 시스템: 이것은 응용 프로그램 아키텍트의 통제 되지 않은 구름 외부 물리적 시스템. 이벤트 기반 서비스: 일부 서비스는 장기 실행 프로세스 또는 비동기 인터페이스를 구현할 수 있습니다. 내부적으로 시스템 (혼합된 서비스) 배포: 클라우드 구성 요소와 내부 배포 시스템의 내부 구성 요소는 응용 프로그램 설계자의 통제 그래서 건축가 NFRs에 따라 그들을 조정할 수 있다.
4 PaaS 역할에 대 한 응답, 우리는 4 NFR 관련 디자인 패턴 식별:
상태 비저장 응용 프로그램 모드 관리 사용자, 높은 가용성, 및 짧은 응답 시간, 심지어는 시스템 로드 될 때에 대 한 지원의 수의 확장입니다. 비동기 응용 프로그램 모드를 장기 실행 서비스 응용 프로그램 프로세스에 참여 해야 할 때 응답 시간과 지속적인 가용성을 관리 합니다. 고가용성 및 확장 프로세스 흐름 포함 외부 시스템을 관리 하는 외부 API 패턴. 보안 VPN 모드, 안전 하 게 내부적으로 배포 된 시스템을 통합 한다.
그림 3에서는 4 패턴 및 4 역할에 그들의 관계를 보여 줍니다.
그림 3입니다. PaaS 모드
상태 비저장 응용 프로그램 모드
상태 비저장 응용 프로그램 모드의 목표 시스템 동시 서비스는 많은 수의 요청에 확장 될 수 있습니다 및 가능한 실행 경로 계속 확인 하는 것입니다. 그림 4는 상태 비저장 응용 프로그램 패턴을 보여 줍니다.
그림 4입니다. 상태 비저장 응용 프로그램 모드
사용 하는 기본 메커니즘은 cloudoe 수평 확장 기능. 수평 확장 동적 개폐 환경 인스턴스를 수행 하 여 및 시스템 수준 라우터/분산 구성 요소에 의해 제공 됩니다.
동적 확장을 효율적으로 사용 하려면 응용 프로그램 구성 요소를 완전히 상태 비저장 이어야 합니다. 일반적으로, 전통적인 웹 응용 프로그램에서 사용자의 모든 요청 메모리에 세션 데이터 및 대화 상자 상태를 저장 하는 동일한 응용 프로그램 서버 인스턴스에 라우팅됩니다. 세션 쿠키는 키로 메모리에서 세션 데이터 및 프로세스 요청을 검색 하는 데 사용 됩니다. 클라우드에서 컴퓨팅, 가장 관리 되는 클라우드 구현 동일한 응용 프로그램 인스턴스가 세션을 될 것입니다 보장할 수 없습니다. 세션 요청은 인터넷 라우터에 의해 다른 응용 프로그램 인스턴스를 라우트해야 합니다. 따라서이 모드에서 완전히 상태 비저장 실행 인스턴스를 유지 하 메모리 저장소 외부에서 사용 되 고 서비스로 관리 되는 클라우드에서 제공 하는 모든 인스턴스 간에 공유 됩니다. (그렇지 않으면, 하향 조정 불가능 인스턴스의 모든 세션이 닫힐 때까지.) )