데이터중심의 어플리케이션 설계 1장

2021. 12. 30. 12:59· 공부/단행본
목차
  1. 01장 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션

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 발전성
    1. extensibility 유연성
    2. modifiability 수정가능성
    3. 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
  1. 01장 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션
'공부/단행본' 카테고리의 다른 글
  • [컴퓨터 비전] Chapter 02 영상 처리
  • [컴퓨터 비전] Chapter 01 소개
  • 데이터중심의 어플리케이션 설계 2장
  • 데이터 중심 어플리케이션 설계
내공얌냠
내공얌냠
내공냠냠
내공얌냠
내공냠냠
내공얌냠
전체
오늘
어제
  • 분류 전체보기 (254)
    • 개발 (113)
      • mediapipe (16)
      • insightface (5)
      • JongjuAR (3)
    • 자료구조 알고리즘 (79)
      • 코딩테스트 (64)
      • 이론 (15)
    • 공부 (7)
      • 단행본 (7)
      • 튜토리얼 (19)
      • 논문 (15)
      • 복기 (5)
    • 참여 (5)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 음성인식 튜토리얼
  • 구글 미디어파이프
  • python telegrambot
  • speaker adaptation tts
  • vscode 스프링 설치
  • flutter tutorial
  • ios google places api
  • flutter conference
  • 플러터
  • google mediapipe
  • 컴퓨터 비전 기초
  • kubeflow설치가이드
  • flutter 행사
  • 깃 튜토리얼
  • postgresql 재설치
  • 컴퓨터 비전 책 추천
  • 플러터 튜토리얼
  • git tutorial
  • flutter
  • postgresql install in mac
  • 컴퓨터 비전
  • 딥러닝 기반 음성인식 기초
  • 미디어파이프
  • 음성인식 기초
  • 머신러닝이란
  • flutter 행사 후기
  • kubeflow설치안됨
  • mediapipe translate
  • torchscript vs onnx vs tensorrt
  • mediapipe

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
내공얌냠
데이터중심의 어플리케이션 설계 1장
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.