Observability Engineering

created : Sun, 18 Aug 2024 23:12:23 +0900
modified : Sun, 18 Aug 2024 23:12:23 +0900

Part 1. 관찰 가능성으로 가는 길

Chatper 1. 관찰 가능성이란?

1.1. 관찰 가능성의 수학적 정의

1.2. 소프트웨어 시스템에 대한 관찰 가능성 적용

1.3. 소프트웨어를 위한 관찰 가능성에 대한 잘못된 특성화

1.4. 왜 지금 관찰가능성인가?

1.4.1. 이것이 정말 최선의 방법인가?

1.4.2 메트릭과 모니터링이 충분하지 않은 경우

1.5. 메트릭을 이요한 디버깅과 관찰 가능성을 이요한 디버깅

1.5.1. 카디널리티의 역할

1.5.2. 디멘셔널리티의 역할

1.6. 관찰 가능성을 이용한 디버깅

1.7. 현대적인 시스템을 위한 관찰 가능성

Chapter 2. 관찰 가능성과 모니터링의 디버깅은 어떻게 다를까?

2.1. 모니터링 데이터를 활용한 디버깅

2.1.1. 대시보드를 이용한 문제 해결

2.1.2. 직관을 통한 문제 해결의 한계

2.1.3. 사후 대응적일 수 밖에 없는 기존 모니터링

2.2. 관찰 가능성을 통한 더 나은 디버깅

Chapter 3. 관찰 가능성 없이 확장하며 배운 교훈

Chapter 4. 관찰 가능성은 어떻게 데브옵스, SRE, 클라우드 네이티브를 연결하는가

4.1. 클라우드 네이티브, 데브옵스, SRE 에 대한 간단한 소개

4.2. 관찰 가능성: 디버깅의 과거와 오늘

4.3. 관찰 가능성을 통한 데브옵스와 SRE 프랙티스의 강화

Part 2. 관찰 가능성 기초

Chatper 5. 정형화된 이벤트: 관찰 가능성의 기본 구성 요소

5.1. 정형화된 이벤트를 이용한 디버깅

5.2. 메트릭을 기본 구성 요소로 사용하기 어려운 이유

5.3. 기존 로그를 기본 구성 요소로 사용하기 어려운 이유

5.3.1. 비정형 로그

5.3.2. 정형화된 로그

5.4. 디버깅 시 유용한 이벤트

요약

Chapter 6. 이벤트를 추적으로 연결하기

6.1. 분산 추적이란 무엇이고 왜 중요한가?

6.2. 추적을 구성하는 컴포넌트

6.3. 어렵게 추적 계측하기

6.4. 추적 스팬에 사용자 정의 필드 추가하기

6.5. 이벤트를 추적으로 연결하기

Chapter 7. OpenTelemetry를 이용한 계측

7.1. 계측이란?

7.2. 오픈 계측 표준

7.3. 코드를 이용한 계측

7.3.1. 자동 계측 시작하기

7.3.2. 사용자 정의 계측 추가하기

7.3.3. 백엔드 시스템으로 계측 데이터 전송하기

Chapter 8. 관찰 가능성 확보를 위한 이벤트 분석

8.1. 알려진 조건 기반의 디버깅

8.2. 디버깅의 제1원칙

8.2.1. 핵심 분석 루프 사용하기

8.2.2. 핵심 분석 루프의 무차별 대입 자동화

8.3. AIOps 의 약속에 대한 오해

Chapter 9. 관찰 가능성과 모니터링의 공존

9.1. 모니터링이 적합한 사례

9.2. 관찰 가능성이 적합한 사례

9.3. 대상 시스템, 소프트웨어에 따른 고려사항

9.4. 조직의 요구사항 평가

9.4.1. 무시할수 없는 인프라 모니터링

Part 3. 팀을 위한 관찰 가능성

Chapter 10. 관찰 가능성 사례 적용하기

10.1. 커뮤니티 그룹 참여하기

10.2. 가장 큰 고민거리에서 시작하기

10.3 구축보다 구매

10.4. 반복을 통한 계측 구체화

10.5. 기존의 노력을 최대한 활용하기

10.6. 관찰 가능성 적용의 최종 관문

Chapter 11. 관찰 가능성 주도 개발

11.1. 테스트 주도 개발

11.2. 개발 생애주기 내에서의 관찰 가능성

11.3. 디버그 지점의 결정

11.4. 마이크로서비스 시대의 디버깅

11.5. 계측이 관찰 가능성 도입을 촉진하는 방법

11.6. 관찰 가능성의 조기 투입

11.7. 소프트웨어 배포 가속화를 위한 관찰 가능성 활용

Chapter 12. 신뢰성을 위한 SLO 의 활용

12.1. 전통적 모니터링 접근 방법이 낳은 알람에 대한 피로감

12.2. 알려진 무지만을 위한 임계치 기반의 알람

12.3. 중요한 것은 사용자 경험이다.

12.4. SLO란 무엇인가?

12.4.1. SLO 기반의 신뢰성 있는 알람

Chapter 13. SLO 기반 알람 대응과 디버깅

13.1. 오류 예산이 소진되기 전에 경고 하기

13.2. 슬라이딩 윈도우를 이용한 시간 범위 설정

13.3. 오류 예산 소진 알람 생성을 위한 예측

13.3.1. Lookahead window

13.3.2. Baseline window

13.3.3. SLO 소진 알람 대응하기

13.4. 관찰 가능성 데이터와 시계열 데이터를 이용한 SLO 측정의 차이

Chapter 14. 관찰 가능성과 소프트웨어 공급망

Part 4. 규모에 맞는 관찰 가능성 시스템 구축

Chapter 15. 투자 회수 관점에서 본 구축과 구매

15.1. 관찰 가능성의 ROI 분석 방법

15.2. 자체 구축 비용

15.2.1. 무료 소프트웨어 사용의 숨겨진 비용

15.2.2. 자체 구축의 장점

15.2.3. 자체 구축의 위험성

15.3. 상용 소프트웨어 실제 도입 비용

15.3.1. 상용 소프트웨어 도입의 숨겨진 재무적 비용

15.3.2. 상용 소프트웨어 도입의 숨겨진 비재무적 비용

15.3.3. 상용 소프트웨어 도입의 이점

15.3.4. 상용 소프트웨어 구매의 위험성

15.4. 자체 구축과 상용 소프트웨어 도입은 옳고 그름의 문제가 아니다.

개인의견

Chapter 16. 효율적인 데이터 스토리지

16.1. 관찰 가능성을 위한 기능적 요구사항

16.1.1. 관찰 가능성에 부적합한 시계열 데이터베이스

16.1.2. 다른 데이터 저장소 후보들

16.1.3. 데이터 스토리지 전략

Chapter 17. 샘플링: 비용과 정확성 모두를 위한 선택

17.1. 데이터 수집을 정제하기 위한 샘플링

17.2. 샘플링에 대한 다양한 접근 방법

17.2.1. 고정 확률 샘플링

17.2.2. 최신 트래픽 볼륨 기반의 샘플링

17.2.3. 이벤트 콘텐츠(키) 기반 샘플링

17.2.4. 키, 메서드 조합을 통한 샘플링

17.2.5. 동적 샘플링 옵션

17.2.6. 추적에 대한 샘플링 결정 시점

17.3. 샘플링 전략의 코드화

Chapter 18. 파이프라인을 이용한 원격 측정 관리

18.1. 원격 측정 파이프라인의 속성

18.1.1. 라우팅

18.1.2. 보안과 규제 준수

18.1.3. 워크로드의 격리

18.1.4. 데이터 버퍼링

18.1.5. 용량 관리

18.1.6. 데이터 필터링 및 증강

18.1.7. 데이터 변환

18.1.8 데이터 품질과 일관성 보장

18.2 원격 측정 파이프라인의 관리 자세히보기

18.3. 원격 측정 파이프라인 관리 시 당면 과제

18.3.1. 성능

18.3.2. 정확성

18.3.3. 가용성

18.3.4. 신뢰성

18.3.5. 격리

18.3.6. 데이터 신선도

18.4. 사례 연구: 슬랙에서의 원격 측정 관리

18.5. 오픈소스 대안들

Part 5. 관찰 가능성 문화의 확산

Chapter 19. 관찰 가능성 비지니스 사례

19.1. 변화에 대한 사후 대응적인 접근 방법

19.2. 관찰 가능성의 투자 수익률

19.3. 변경에 대한 적극적인 접근 방법

19.4. 사례로서의 관찰 가능성 소개

19.5. 적절한 도구를이용한 관찰 가능성 실천

19.5.1. 계측

19.5.2. 데이터 저장소와 분석

19.5.3. 도구의 출신

19.6. 충분한 관찰 가능성을 확보했는지 인식하기

Chapter 20. 관찰 가능성의 이해관계자와 조력자

20.1. 비엔지니어링 관찰 가능성 요구사항의 식별

20.2. 실무에서 관찰 가능성 조력자 만들기

20.2.1. 고객 지원팀

20.2.2. 고객 성공팀과 제품팀

20.2.3. 영업팀과 경영팀

20.3. ???

20.4. 관찰 가능성 도구와 비지니스 인텔리전스 도구의 차이점

20.4.1. 쿼리 실행 시간

20.4.2. 정확도

20.4.3. 최신성

20.4.4. 데이터 구조

20.4.5. 시간 범위

20.4.6. 일시성

20.5. 실무에서 관찰 가능성과 BI 도구 함께 사용하기

Chapter 21. 관찰 가능성 성숙도 모델

21.1 성숙도 모델에 대한 기본적인 이해

21.2. 관찰 가능성 성숙도 모델이 필요한 이유

21.3. 관찰 가능성 성숙도 모델

21.4. 관찰 가능성 성숙도 모델의 기능들

21.4.1. 시스템 실패에 대한 탄력성

21.4.2. 완성도 높은 코드의 배포

21.4.3. 소프트웨어 복잡도와 기술 부채의 관리

21.4.4. 예측 가능한 릴리스

21.4.5. 사용자 동작의 이해

21.5. 조직을 위한 관찰 가능성 성숙도 모델 적용

Chapter 22. 관찰 가능성의 미래

22.1. 관찰 가능성의 과거와 현재

22.2

22.3. 관찰 가능성의 미래