서문
데이터 중심 애플리케이션(data-intensive application)은 기술적 발전을 활용해 실현 가능한 범위를 넓힌다.
데이터가 주요 도전과제인 애플리케이션을 데이터 중심적(data-intensive)이라고 말한다.
반대로 CPU 사이클이 병목인 경우 계산 중심적(compute-intensive)이라고 말한다.
1장
많은 서비스가 필요로 하는 것.
- 데이터베이스: 구동중인 서비스나 다른 서비스에서 나중에 다시 데이터를 찾을 수 있게 데이터를 저장
- 캐시: 읽기 속도 향상을 위해 값비싼 수행 결과를 기억
- 검색 색인(search index): 사용자가 키워드로 데이터를 검색하거나 다양한 방법으로 필터링 할 수 있게 제공
- 스트림 처리(stream processing): 비동기 처리를 위해 다른 프로세스로 메시지 보내기
- 일괄 처리(batch processing): 주기적으로 대량의 누적된 데이터를 분석
이 책에서 중점을 두는 것.
- 신뢰성(Reliablity)
하드웨어나 소프트웨어 문제 또는 휴먼 에러가 있더라도 시스템은 지속적으로 올바르게 동작해야 한다.
- 확장성
시스템의 데이터 양, 트래픽 양, 복잡도가 증가하면서 이를 처리할 수 있는 적절한 방법이 있어야 한다.
- 유지보수성
모든 사용자가 시스템 상에서 생산적으로 작업할 수 있게 해야 한다.
신뢰성
확장성