01장 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션
compute-intensive(계산 중심) < data-intensive(데이터 중심)
- Reliability 신뢰성 : 역경 직면하더라도 올바르게 동작
- Scalability 확장성: 증가 처리시 적절한 방법 필요
- Maintainability 유지보수성: 모든 유저가 생산적으로 작업하도록
데이터 시스템 <- DB, message queue
- 분류 간 경계 흐려짐
- 광범위한 요구사항
신뢰성)
fault: 잘못될 수 있는 일 != failure 장애 : 시스템 전체가 멈춘 경우
- 예측, 대처: fault-tolerant 내결함성 or resilient 탄력성
- 카오스 몽키, 넷플릭스
- MTTF, mean time to failure, 평균 장애시간, 가동시간 / 장애횟수
- corner case 코너케이스
하드웨어 결함
- 소프트웨어 내결함성 기술 사용
- 하드웨어 중복성 추가
소프트웨어 오류
- 약한 상관관계
- 시스템 내 체계적 오류 system error
- 인적 오류
- 신뢰성의 중요성 : 버그 -> 생산성 저하, 매추 ㄹ손실, 명성 타격 등 고비용 손실
확장성)
- 성능저하를 유발하는 흔한 이유: 부하증가
- 부하에 대처하는 시스템 능력을 설명하는 데 사용하는 용어
- 부하가 증가해도 좋은 성능을 유지하기 위한 전략
부하 기술하기
- 부하 성장 질문
- 부하 매개변수 load parameter
- fan-out: 트랙잭션 시스템에서 하나의 수신요청을 처리하는데 필요한 다른 서빕스의 요청 수를 설명하기 위해 사용
- twitter 예
성능 기술하기
- 부하 매개변수 증가, 시스템 자원 그대로
- 부하 매개변수 증가, 성능 유지 시 필요한 자원은 얼마인지
- throughput 처리량
- response time 응답시간 -> 매번 달라서 분포로 생각해야
- latency 지연시간
- outlier 특이값 -> 가끔 꽤 오래 걸리는
- arithmetic mean 산술 평균, n개 값일 때 모든 값 더하고 /n
- percentile 백분위
- median 중앙값, 백분위의 중간지점
- tail latency 꼬리 지연시간, 상위 백분위 응답시간, 서비스 사용자경험에 직접 영향
- 상위 백분위, 99.9분위 -> p999
- SLO, service level objection, 서비스 수준 목표
- SLA, service level aggreement, 서비스 수준 협약서
- queueing delay 큐 대기 지연
- head-of-line blocking 선두 차단: 서버는 병렬로 소수의 작업만 처리하기에 소수의 느린 요청 처리만으로도 후속 요청 처리가 지체되는 현상
- tail latency amplification 꼬리 지연 충돌: 작은 비율의 백엔드 호출만 느려도 최종 사용자 요청이 여러번 백엔드를 호출하면 느린 호출이 발생할 가능성이 증가하여 최종 사용자 요청 중 많은 비율의 응답시간이 결국 느려짐
부하대응접근 방식
- scaling up 용량 확장 = vertical scaling 수직 확장, 강력한 장비
- scaling out 규모 확장 = horizontal scaling 수평 확장, 다수의 장비 -> shared-nothing 비공유 아키텍쳐
유지보수성)
- operability 운용성
- simplicity 단순성
- evolvability 발전성
- extensibility 유연성
- modifiability 수정가능성
- plasticity 적응성
big ball of mud 커다란 진흙덩어리, 복잡도 프로젝트 수렁에 빠진
accidental complexity 우발적 복잡도
- 제거? 추상화
발전성, agile 애자일 작업패턴
- TDD test-driven development 테스트 주도 개발
- refactoring 리팩토링
728x90
반응형
'공부 > 단행본' 카테고리의 다른 글
[컴퓨터 비전] Chapter 03 에지 검출 (0) | 2022.02.11 |
---|---|
[컴퓨터 비전] Chapter 02 영상 처리 (0) | 2022.02.11 |
[컴퓨터 비전] Chapter 01 소개 (0) | 2022.02.11 |
데이터중심의 어플리케이션 설계 2장 (0) | 2022.01.02 |
데이터 중심 어플리케이션 설계 (0) | 2021.12.30 |