Skip to content

Commit

Permalink
Add new post
Browse files Browse the repository at this point in the history
  • Loading branch information
hhhyunwoo committed Aug 30, 2023
1 parent 937e925 commit 20122a1
Show file tree
Hide file tree
Showing 2 changed files with 150 additions and 0 deletions.
80 changes: 80 additions & 0 deletions _posts/2023-08-27-sre-ch17.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
layout: post
title: "[SRE] Ch17. Testing for Reliability"
date: 2023-08-27
categories:
- Study
- Book
- SRE
tags: [
sre,
google,
devops,
study,
book,
reliable,
]
---

**κ²°λ‘  : ν…ŒμŠ€νŠΈλŠ” μ—”μ§€λ‹ˆμ–΄λ“€μ΄ μžμ‹ μ˜ μ œν’ˆμ˜ 신뒰성을 ν–₯μƒμ‹œν‚¬ 수 μžˆλŠ” κ°€μž₯ μ μ ˆν•œ 투자 μˆ˜λ‹¨μ΄λ‹€.**

- ν…ŒμŠ€νŠΈμ˜ μ’…λ₯˜λŠ” ꡉμž₯히 μ—¬λŸ¬κ°€μ§€κ°€ μžˆλŠ”λ°, 신뒰성을 올리기 μœ„ν•΄μ„œ λŒ€λž΅μ μœΌλ‘œ ν…ŒμŠ€νŠΈμ˜ μ’…λ₯˜μ™€ μ€‘μš”λ„μ— λŒ€ν•΄μ„œ μ„€λͺ…ν•˜κ³  μžˆλ‹€.
- ν…ŒμŠ€νŠΈλŠ” μ–΄λ–€ λ³€κ²½ 사항이 일어났을 λ•Œ νŠΉμ • λΆ€λΆ„μ—μ„œ λ™μΌν•œ κ²°κ³Όλ₯Ό κΈ°λŒ€ν•  수 μžˆλ‹€λŠ” 것을 보여주기 μœ„ν•œ λ©”μ»€λ‹ˆμ¦˜μ΄λ‹€.

# μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈμ˜ μ’…λ₯˜

## 전톡적인 ν…ŒμŠ€νŠΈ

- μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” λ™μ•ˆ μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ˜¬λ°”λ₯Έ λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό ν‰κ°€ν•˜λŠ” `ν…ŒμŠ€νŠΈ`

### Unit Test

- ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜ 등을 ν…ŒμŠ€νŠΈν•˜μ—¬ 각 λ™μž‘μ„ λ…λ¦½μ μœΌλ‘œ ν…ŒμŠ€νŠΈν•˜λŠ” 방법
- 주둜 `TDD` 방법둠과 ν•¨κ»˜ μ‚¬μš©λ¨
- **dependency κ°€ μžˆμ„ λ•ŒλŠ” μ–΄λ–»κ²Œ?**
- *β†’ Dependency Injection μ‚¬μš©. Dagger 와 같은 νˆ΄μ„ μ‚¬μš©ν•΄μ„œ Mock 객체λ₯Ό μƒμ„±ν•˜μ—¬ μˆ˜ν–‰*

### Integration Test

- λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈλŠ” 그보닀 더 큰 규λͺ¨μ˜ μ»΄ν¬λ„ŒνŠΈμ— νŽΈμž…λ˜λŠ”λ°, 이떄 μˆ˜ν–‰ν•˜λŠ” ν…ŒμŠ€νŠΈκ°€ `톡합 ν…ŒμŠ€νŠΈ`μž„

### System Test

- 아직 배포가 μ™„λ£Œλ˜μ§€ μ•Šμ€ μ‹œμŠ€ν…œμ— λŒ€ν•΄ μ—”μ§€λ‹ˆμ–΄κ°€ μˆ˜ν–‰ν•  수 μžˆλŠ” κ°€μž₯ 큰 규λͺ¨μ˜ ν…ŒμŠ€νŠΈ.
- **Smoke Test**
- *μ „μž 회둜 κΈ°νŒμ— 전원을 λ„£μ—ˆμ„ λ•Œ κΈ°νŒμ—μ„œ μ—°κΈ°κ°€ λ‚˜λŠ”μ§€ ν™•μΈν•˜λŠ” ν…ŒμŠ€νŠΈμ—μ„œ 유래됨.* 즉, μ•ˆμ •μ„±μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œ μ£Όμš” κΈ°λŠ₯듀이 μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ”μ§€ 확인
- μ•ˆμ •μ„± 검사 (Sanity Test) 둜 μ•Œλ €μ Έ 있으며, μ•½κ°„μ˜ μž₯μ•  상황을 κ°€μ •ν•œ ν…ŒμŠ€νŠΈλ₯Ό ν¬ν•¨ν•΄μ„œ 더 λ§Žμ€ 뢀뢄을 ν…ŒμŠ€νŠΈ 함
- **Performance Test**
- μ„±λŠ₯ ν…ŒμŠ€νŠΈ
- **Regression Test**
- 이미 μ•Œλ €μ§„ 버그듀을 톡해 μ‹œμŠ€ν…œμ˜ μ‹€νŒ¨λ‚˜ 잘λͺ»λœ κ²°κ³Όκ°€ λ‚˜νƒ€λ‚˜λŠ” 것을 μœ μΆ”ν•˜λŠ” ν…ŒμŠ€νŠΈ.

## ν”„λ‘œλ•μ…˜ ν…ŒμŠ€νŠΈ

- μ‹€μ œ λ™μž‘ν•˜λŠ” μ›Ή μ„œλΉ„μŠ€μ— λŒ€ν•΄ 배포된 μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ΄ μ˜¬λ°”λ₯΄κ²Œ λ™μž‘ 쀑인지λ₯Ό νŒλ‹¨ν•˜λŠ” ν…ŒμŠ€νŠΈ
- **Black Box ν…ŒμŠ€νŠΈ**라고도 뢀름

### μ„€μ • ν…ŒμŠ€νŠΈ

- μ‹€μ œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ λ™μž‘ν•˜λŠ” νŠΉμ • λ°”μ΄λ„ˆλ¦¬κ°€ μ‹€μ œλ‘œ μ–΄λ–»κ²Œ μ„€μ •λ˜μ–΄ μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜κ³  ν•΄λ‹Ή μ„€μ • 파일과 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 뢀뢄을 μ°Ύμ•„ 보고 함

### 슀트레슀 ν…ŒμŠ€νŠΈ

- μ‹œμŠ€ν…œμ„ κ΅¬μ„±ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ“€μ˜ ν•œκ³„λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•¨.
- μ˜ˆμ‹œ
- DB μš©λŸ‰μ΄ μ–΄λŠ 정도에 λ‹€λ‹€λ₯΄λ©΄ μ“°κΈ° μž‘μ—…μ— μ‹€νŒ¨ν•˜λŠ”κ°€?
- μ„œλ²„λŠ” μ΄ˆλ‹Ή λͺ‡ 개의 μΏΌλ¦¬κΉŒμ§€ 응닡할 수 μžˆλŠ”κ°€?

### μΉ΄λ‚˜λ¦¬ ν…ŒμŠ€νŠΈ

- μ„œλ²„μ˜ μΌλΆ€λ§Œμ„ μƒˆλ‘œμš΄ λ²„μ „μ˜ λ°”μ΄λ„ˆλ¦¬λ‚˜ μ„€μ • 파일둜 μ—…κ·Έλ ˆμ΄λ“œν•œ ν›„, 일정 κΈ°κ°„ λ™μ•ˆ μ‚΄νŽ΄λ³΄λŠ” ν˜•νƒœλ‘œ 진행

# ν…ŒμŠ€νŠΈ 및 λΉŒλ“œ ν™˜κ²½ κ΅¬μ„±ν•˜κΈ°

- **일반적으둜 초기 섀계 λΆ€ν„° ν…ŒμŠ€νŠΈ 컀버리지 100ν”„λ‘œλ₯Ό λ‹¬μ„±ν•˜λ©΄μ„œ ν”„λ‘œμ νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” 경우 (TDD) λŠ” 잘 μ—†μŒ.**
- 뿐만 μ•„λ‹ˆλΌ SRE μ—”μ§€λ‹ˆμ–΄λ“€μ€ λŒ€λΆ€λΆ„ ν”„λ‘œμ νŠΈκ°€ ν•œμ°½ 진행 쀑일 λ•Œ ν•©λ₯˜ν•˜κΈ° λ•Œλ¬Έμ—, μ–΄λŠ λΆ€λΆ„λΆ€ν„° ν…ŒμŠ€νŠΈλ₯Ό μ‹œμž‘ν•΄μ•Όν•˜λŠ”μ§€ νŒλ‹¨ν•˜λŠ” 뢀뢄이 μ€‘μš”ν•¨
- **κ³ λ €ν•΄μ•Όν•  점듀**
- μ–΄λ–€ ν˜•νƒœλ‘œλ“  μ€‘μš”λ„λ₯Ό μΈ‘μ •ν•΄μ„œ μ»΄ν¬λ„ŒνŠΈλ“€μ˜ μš°μ„ μˆœμœ„λ₯Ό 결정해야함
- μ‚¬ν™œμ΄ κ±Έλ €μžˆκ±°λ‚˜, λΉ„μ§€λ‹ˆμŠ€ κ΄€μ μ—μ„œ μ€‘μš”ν•œ κΈ°λŠ₯μ΄λ‚˜ 클래슀λ₯Ό νŠΉμ •ν•  수 μžˆλŠ”μ§€?
- λ‹€λ₯Έ νŒ€λ“€μ΄ ν†΅ν•©ν•΄μ„œ μ‚¬μš©ν•˜λŠ” API듀이 μžˆλŠ”μ§€?
- β†’ **κ°€μž₯ κ°•λ ₯ν•œ ν…ŒμŠ€νŠΈ λ¬Έν™” 수립 방법은 μ§€κΈˆκΉŒμ§€ 보고된 λͺ¨λ“  버그λ₯Ό ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ ν˜•νƒœλ‘œ λ¬Έμ„œν™”ν•˜κ³ ,** `regression Test` **에 ν¬ν•¨μ‹œμΌœμ•Όν•¨**
70 changes: 70 additions & 0 deletions _posts/2023-08-30-sre-ch18.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
layout: post
title: "[SRE] Ch18. Software Engineering in SRE"
date: 2023-08-30
categories:
- Study
- Book
- SRE
tags: [
sre,
google,
devops,
study,
book,
reliable,
]
---

**κ²°λ‘  : SRE λŠ” λ‹¨μˆœ Operation 을 ν•˜λŠ” ν¬μ§€μ…˜μ΄ μ•„λ‹ˆλΌ Software Engineering 에 λ§Žμ€ λΆ€λΆ„ κΈ°μ—¬λ₯Ό ν•˜κ³  있으며, μ΄λŸ¬ν•œ μ—­λŸ‰κ³Ό μž‘μ—…μ€ 맀우 μ€‘μš”ν•˜λ‹€. κ΅¬κΈ€μ—μ„œλŠ” μ–΄λ–€μ‹μœΌλ‘œ SRE 의 Software Engineering 이 이루어지고 μžˆλŠ”μ§€ μ—Ώλ³Ό 수 μžˆλŠ” μž₯**

# SRE 쑰직의 μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§ μ—­λŸ‰μ΄ μ€‘μš”ν•œ 이유

- **λ‹€λ₯Έ νšŒμ‚¬λ“€κ³Ό λΉ„κ΅ν•˜μ—¬λ„ κ΅¬κΈ€μ²˜λŸΌ 크고 λ³΅μž‘ν•œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ„ 가지고 μžˆλŠ” νšŒμ‚¬λŠ” 없을 것이닀. 이 λ•Œλ¬Έμ— κ΅¬κΈ€μ—μ„œλŠ” λ‹€μ–‘ν•œ ν˜•νƒœμ˜ μ†Œν”„νŠΈμ›¨μ–΄ 개발이 λ‚΄λΆ€μ μœΌλ‘œ μ΄λ£¨μ–΄μ§ˆ 수 밖에 μ—†μŒ.**
- ꡬ글이 ν•„μš”λ‘œ ν•˜λŠ” 규λͺ¨λ₯Ό κ°λ‹Ήν•˜λŠ” μ„œλ“œνŒŒν‹° 도ꡬ가 거의 μ—†κΈ° λ•Œλ¬Έ
- κ·Έλ ‡λ‹€λ©΄ κ΅¬κΈ€μ˜ SRE 쑰직이 λ‚΄λΆ€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•  수 μžˆλŠ” 쑰직이 된 μ΄μœ λŠ” λ¬΄μ—‡μΌκΉŒ?
- **κ΅¬κΈ€λ§Œμ˜ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— λŒ€ν•œ SRE 쑰직의 폭넓고 κΉŠμ€ 지식을 ν™œμš©ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ””μžμΈν•˜κ³  개발 κ°€λŠ₯**
- **SRE 듀은 μ€‘μš”ν•œ μ‚¬μ•ˆμ—λŠ” λͺ¨λ‘ μ°Έμ—¬ν•˜λ―€λ‘œ 전체적인 큰 κ·Έλ¦Όκ³Ό μš”κ΅¬μ‚¬ν•­λ“€μ„ μ‰½κ²Œ 이해**
- **κ°œλ°œν•˜λŠ” 도ꡬλ₯Ό 직접 μ‚¬μš©ν•  μ‚¬μš©μžλ“€κ³Όμ˜ 관계가 직접적이기 λ•Œλ¬Έμ— λΉ λ₯Έ ν”Όλ“œλ°± 적용 κ°€λŠ₯**

# Auxon 사둀 연ꡬ : ν”„λ‘œμ νŠΈ λ°°κ²½ 및 λ¬Έμ œκ°€ λ°œμƒν•œ λΆ€λΆ„

- Auxon 은 ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ μ‹€ν–‰λ˜λŠ” μ„œλΉ„μŠ€μ˜ `Capacity` κ³„νšμ„ μžλ™ν™”ν•˜κΈ° μœ„ν•΄ λ§Œλ“  νˆ΄μ΄λ‹€.
- **전톡적인 μˆ˜μš©λŸ‰ κ³„νšμ΄ μ‘΄μž¬ν•˜κΈ΄ ν•˜μ§€λ§Œ,** 예츑이 λ³€κ²½λ˜κ³  배포가 μ§€μ—°λ˜κ³  μ˜ˆμ‚°μ΄ μ€„μ–΄λ“œλŠ” λ“± μ•„μ£Ό λ‹€μ–‘ν•œ λ³€μˆ˜κ°€ λ°œμƒν•˜κ³  μ •ν™•ν•œ 정닡이 μ—†λŠ” λ¬Έμ œμž„.
- **μ΄λŠ” 노동집약적이고 λͺ¨ν˜Έν•˜λ©°, 본질적으둜 λΆˆμ•ˆμ •ν•¨.**

## κ΅¬κΈ€μ˜ ν•΄κ²°μ±… : μ˜λ„ 기반 μˆ˜μš©λŸ‰ κ³„νš

- κ΅¬ν˜„μ΄ μ•„λ‹Œ μš”κ΅¬μ‚¬ν•­μ„ λͺ…ν™•νžˆ ν•˜μž.
- μ˜λ„(intent)λž€ μ„œλΉ„μŠ€ λ‹΄λ‹Ήμžκ°€ μžμ‹ λ“€μ˜ μ„œλΉ„μŠ€λ₯Ό μš΄μ˜ν•˜κ³ μž ν•˜λŠ” μ˜λ„λ₯Ό μ˜λ―Έν•¨.
- μ‹€μ œ μˆ˜μš©λŸ‰ κ³„νš μ˜λ„λ₯Ό μ΄λŒμ–΄λ‚΄κΈ° μœ„ν•΄μ„œλŠ” ν˜„μ‹€μ μΈ μžμ› μˆ˜μš”λ₯Ό λ°”νƒ•μœΌλ‘œ ν•œ νƒ€λ‹Ήν•œ 이유λ₯Ό λ§Œλ“€μ–΄λ‚΄κΈ° μœ„ν•΄μ„œλŠ” μ—¬λŸ¬ λ‹¨κ³„μ˜ 좔상화가 ν•„μš”ν•¨.
1. Foo μ„œλΉ„μŠ€λ₯Ό μœ„ν•΄ X, Y 그리고 Z ν΄λŸ¬μŠ€ν„°μ— 50개의 μ½”μ–΄κ°€ ν•„μš”ν•©λ‹ˆλ‹€.
1. β†’ μ™œ?
2. Foo μ„œλΉ„μŠ€λ₯Ό μœ„ν•΄ YYY μ§€μ—­μ˜ ν΄λŸ¬μŠ€ν„° 쀑 μ„Έ κ°œμ—μ„œ 50개의 μ½”μ–΄κ°€ ν•„μš”ν•©λ‹ˆλ‹€
1. β†’ 덜 ꡬ체적이긴 ν•˜μ§€λ§Œ μ™œ?
3. Foo μ„œλΉ„μŠ€μ— λŒ€ν•œ 각 지역별 μˆ˜μš”λ₯Ό μΆ©λ‹Ήν•˜κΈ°λ₯Ό μ›ν•˜λ©° N+2 의 닀쀑화λ₯Ό μ›ν•©λ‹ˆλ‹€.
1. β†’ μžμœ λ„κ°€ 훨씬 높아짐. 인간이 μ΄ν•΄ν•˜κΈ° μ‰¬μ›Œμ§. ν•˜μ§€λ§Œ μ™œ ?
4. Foo μ„œλΉ„μŠ€μ— 99.999% κ°€μš©μ„±μ„ μ§€μ›ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€
1. β†’ 맀우 μΆ”μƒν™”λœ μš”κ΅¬μ‚¬ν•­. 훨씬 μœ μ—°ν•¨.
- **β†’ 3λ‹¨κ³„μ˜ 좔상화λ₯Ό μ œκ³΅ν•  λ–„ κ°€μž₯ 쒋은 μ„±κ³Όλ₯Ό λ‚΄κ³ , μ•„μ£Ό μ •κ΅ν•œ μ„œλΉ„μŠ€λŠ” 4단계가 더 μ–΄μšΈλ¦΄ 수 μžˆλ‹€.**

## μ˜λ„λ₯Ό νŒŒμ•…ν•˜κΈ° μœ„ν•œ μ„ ν–‰ μž‘μ—…

- μ˜μ‘΄μ„±
- μ„±λŠ₯μ§€ν‘œ
- μš°μ„ μˆœμœ„ κ²°μ •

## Auxon μ†Œκ°œ

<img width="742" alt="image" src="https://github.com/hhhyunwoo/leetcode/assets/37402136/b81c0605-a22f-458f-a6e6-15831defb1b0">


- Auxon 은 μ‚¬μš©μžμ˜ μ„€μ • μ–Έμ–΄ ν˜Ήμ€ ν”„λ‘œκ·Έλž˜λ° API λ₯Ό 톡해 μˆ˜μ§‘ν•œ ν›„, μ‚¬λžŒμ˜ μ˜λ„λ₯Ό 기계가 이해할 수 μžˆλŠ” μ œμ•½μœΌλ‘œ λ³€ν™˜ν•¨
- **μ„±λŠ₯ 데이터** : μ„œλΉ„μŠ€μ˜ 규λͺ¨λ₯Ό 의미
- **μ„œλΉ„μŠ€λ³„ μˆ˜μš” 예츑 데이터** : 예츑된 μˆ˜μš” μ‹ ν˜Έμ˜ μ‚¬μš© ꢀ적을 의미
- **μžμ› 곡급** : 기본적인 μžμ›μ— λŒ€ν•œ 기초 μˆ˜μ€€μ˜ κ°€μš©μ„±μ— λŒ€ν•œ 데이터
- **μžμ› 가격** : 기본적인 μžμ›μ„ 기초적인 μˆ˜μ€€μœΌλ‘œ ν™•λ³΄ν•˜κΈ° μœ„ν•œ λΉ„μš©μ— λŒ€ν•œ 데이터
- **μ˜λ„ μ„€μ •** : μ˜λ„ 기반 정보λ₯Ό Auxon 에 μ „λ‹¬ν•˜κΈ° μœ„ν•œ 핡심
- **Auxon μ„€μ • μ–Έμ–΄ 엔진** : μ˜λ„ μ„€μ •μœΌλ‘œλΆ€ν„° 전달받은 정보λ₯Ό λ°”νƒ•μœΌλ‘œ λ™μž‘
- **Auxon 해법 엔진** : 이 λ„κ΅¬μ˜ λ‡Œμ— ν•΄λ‹Ήν•˜λ©° μ„€μ • μ–Έμ–΄ μ—”μ§„μ—κ²Œμ„œ μˆ˜μ‹ ν•œ μ΅œμ ν™”λœ μš”μ²­μ„ λ°”νƒ•μœΌλ‘œ κ±°λŒ€ν•œ ν˜Όν•© μ •μˆ˜ ν˜Ήμ€ μ„ ν˜• ν”„λ‘œκ·Έλž¨μ„ 곡식화함
- **ν• λ‹Ή κ³„νš** : Auxon 해법 μ—”μ§„μ˜ 좜λ ₯ κ²°κ³Ό

0 comments on commit 20122a1

Please sign in to comment.