디자인 패턴(기술)에 대한 확장성
-
10-07-2019 - |
문제
What 디자인 패턴 나 기술 당신이 사용하는 것은 특히으로 설치된 확장성?
패턴 등 플라이급 패턴 내 것이 될 전문 버전 공장 패턴, 을 촉진하기 위해,높은 확장성이나 작업할 때에 메모리 또는 저장 제약 조건이 있습니다.
무엇이 다른 사람들이 당신이 사용됩니까?(비정규화의 데이터베이스, 등.) 당신은 당신을 찾는 규칙을 변경할 때 높은 가용성이나 확장성의 기본 목표입니까?
가능한 상황은:
- 모바일 기기로 더 많은 메모리가 제한 처리 능력,그리고 연결 보 데스크탑이나 노트북
- 고#에서 사용자의 제한된 하드웨어(캐싱 전략,etc.)
- 의 최적화는 데이터베이스에 대한 스키마에서 효율 대신에 표준화된 디자인(예:SharePoint 열을 감싸는 저장을위한)
해결책
염두에 두는 몇 가지 패턴 :
- 무국적 응용 프로그램
- 느슨한 결합
- 비동기
- 게으른 하중
- 캐싱
- 병행
- 분할
- 라우팅
일부 리소스 :
- 확장 성 모범 사례 : eBay의 교훈
- 가용성 및 일관성 Amazon의 CTO Dr. Werner Vogels 발표
- Microsoft PDC'08 프레젠테이션
- 확장 가능한 클라우드 준비 서비스 기반을 구축하는 모범 사례
다른 팁
응용 프로그램을 가능한 한 상태로 만들 수 있습니다. 서버 팜에 쉽게 적응하기가 더 쉽습니다.
무료는 없습니다. 비즈니스 목표를 달성하기 위해 허용되는 타협에 달려 있습니다. 주요 변수는 다음과 같습니다.
- 비용
- 유효성
- 일관성
- 생존 가능성 (예 : 파티션 내성)
우수합니다 종이 주제에 대해 읽습니다.
좋은 지표는 "비용/사용자"곡선을 검사하고이를 선형 진행으로 유지하는 것입니다 (사용자 당 허용 가능한 비용이 알려진 매개 변수라고 가정합니다 :-)
디자인 패턴은 역할을 수행하지만 가장 중요한 아키텍처입니다. 모듈 수준에서 매우 철저했을 수도 있지만 네트워크 수준의 제약 조건과 확장 성이 결과적으로 어려움을 겪을 수 있습니다.
하루가 끝날 무렵, 나는 자신에게 물어봐야한다고 생각합니다. 실패 유형 X의 경우 얼마나 많은 "사용자"가 영향을받을 수 있고 얼마나 오래 걸릴 수 있습니까?
어딘가에 항상 SPOF (단일 고장)가 있지만이 SPOF가 엔드 포인트 (예 : 사용자)에 가까워 지도록 시스템을 엔지니어링 할 수 있습니다. 그러나 많은 경우에, SPOF는 응용 프로그램의 제어를 벗어나 네트워크 팝을 사용할 수 없다.
어쨌든, 나는 주제에 몇 시간을 보낼 수있었습니다 ...
POSA (Patterns-Oriented Software Architecture) 책은 그러한 패턴의 훌륭한 소스입니다.
포사 4, 특히 분산 컴퓨팅과 관련이 있지만 모든 볼은 확장 성 패턴으로 가득합니다.
내가 무엇을 관찰 무 응용 프로그램 논리를 소개하고 많은 다른 다른 요구 사항과 같은 잠그기에서 DB 는 결국 그 일에 대한 확장성이 향상됩니다.
말할 수는 응용 프로그램 논리를 배치된 상태가 저장 서버 팜 전체에 대한 다음 요청을 타격하는 두 개의 노드 클러스터의 같은 시간에 우리가 소개하는 개념 같은 DB 잠금을 확인하는 단 하나의 요청이 처리됩니다.
내가 다루는 그런 상황이 지금 어떻게 다른 사람들을 다루고 그러한 무국적자는 동작입니다.