λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
CS/Book

[Cloud Native] Ch1 ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ†Œκ°œ

by bona.com 2024. 6. 16.

πŸ“š <ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μŠ€ν”„λ§ 인 μ•‘μ…˜> 을 읽고 κ·Έ λ‚΄μš©μ„ μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€ 

 

β˜‘οΈ Cloud Native

 

ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜

: ν΄λΌμš°λ“œμ—μ„œ μ‹€ν–‰λ˜λ©΄μ„œ 변화에 탄λ ₯적으둜 λŒ€μ‘ν•˜κ³  κ³ λ„λ‘œ λΆ„μ‚°λ˜μ–΄ μžˆλŠ” μ‹œμŠ€ν…œμ„ μ˜λ―Έν•œλ‹€.

 

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν΄λΌμš°λ“œλ₯Ό μœ„ν•΄ νŠΉλ³„νžˆ μ„€κ³„λ˜λŠ” 3가지 Pκ°€ μžˆλ‹€.

  • ν”Œλž«νΌ: ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν΄λΌμš°λ“œ 같은 동적 λΆ„μ‚° ν™˜κ²½μ„ 기반으둜 ν•˜λŠ” ν”Œλž«νΌμ—μ„œ μ‹€ν–‰λœλ‹€.
  • 속성: ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν™•μž₯ κ°€λŠ₯ν•˜κ³  λŠμŠ¨ν•˜κ²Œ κ²°ν•©λ˜λ©° 볡원λ ₯이 λ›°μ–΄λ‚˜κ³  관리가 μš©μ΄ν•˜λ©° κ΄€μ°° κ°€λŠ₯ν•˜λ„λ‘ μ„€κ³„λœλ‹€.
  • μ‹€ν–‰: κ²¬κ³ ν•œ μžλ™ν™”λ₯Ό 톡해 λΉˆλ²ˆν•˜κ³  예츑 κ°€λŠ₯ν•œ λ°©μ‹μœΌλ‘œ μ‹œμŠ€ν…œμ„ λ³€κ²½ν•˜λŠ” 것이 여기에 ν¬ν•¨λ˜λŠ”λ° μžλ™ν™”, 지속적 전달, 데브옡슀 등이 μžˆλ‹€.

 

πŸ“–   ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ€‘μ μ μœΌλ‘œ 보기 전에 이것이 μ‹€ν–‰λ˜λŠ” 곡간인 ν΄λΌμš°λ“œμ— λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

ν΄λΌμš°λ“œ

: ν΄λΌμš°λ“œ μ»΄ν“¨νŒ… λͺ¨λΈμ— 따라 μ»΄ν“¨νŒ… μžμ›μ„ μ†ŒλΉ„μžμ—κ²Œ μ œκ³΅ν•˜λŠ” IT 인프라이닀.

 

ν΄λΌμš°λ“œ 인프라가 어디에 μžˆμ–΄μ•Ό ν•˜λŠ”μ§€, λˆ„κ°€ 관리해야 ν•˜λŠ”μ§€μ— λŒ€ν•΄μ„œλŠ” μ—„κ²©ν•œ μš”κ΅¬ 사항이 μ—†λ‹€.

ν΄λΌμš°λ“œ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ λͺ‡ 가지 배포 λͺ¨λΈμ΄ μ‘΄μž¬ν•œλ‹€.

  • 사섀 ν΄λΌμš°λ“œ: ν•œ λ‹¨μ²΄λ‚˜ μ‘°μ§μ—μ„œλ§Œ μ‚¬μš©ν•˜λ„λ‘ μ œκ³΅ν•˜λŠ” ν΄λΌμš°λ“œ 인프라이닀. 
  • 곡곡 ν΄λΌμš°λ“œ: 일반 μ‚¬μš©μžλ“€μ—κ²Œ 곡곡으둜 μ œκ³΅λ˜λŠ” ν΄λΌμš°λ“œ 인프라이닀.
  • ν•˜μ΄λΈŒλ¦¬λ“œ ν΄λΌμš°λ“œ: μ•žμ˜ 두 가지 μœ ν˜•μ— ν•΄λ‹Ήν•˜λŠ” ν΄λΌμš°λ“œ 인프라 ꡬ성 λͺ‡ 개λ₯Ό ν•˜λ‚˜λ‘œ λ¬Άμ–΄ 마치 ν•˜λ‚˜μ˜ 단일 ν™˜κ²½μΈ κ²ƒμ²˜λŸΌ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€.

μ•„λž˜ ν‘œλŠ” ν΄λΌμš°λ“œ μ»΄ν“¨νŒ… μ„œλΉ„μŠ€ λͺ¨λΈκ³Ό 각 λͺ¨λΈμ—μ„œ ν”Œλž«νΌμ΄ μ œκ³΅ν•˜λŠ”μ„œλΉ„μŠ€ 그리고 μ†ŒλΉ„μžμ—κ²Œ μ œκ³΅λ˜λŠ” 좔상화에 λŒ€ν•΄ μ„€λͺ…ν•œλ‹€.

인프라 ν”Œλž«νΌ μ»¨ν…Œμ΄λ„ˆ ν”Œλž«νΌ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”Œλž«νΌ μ„œλ²„λ¦¬μŠ€ ν”Œλž«νΌ μ†Œν”„νŠΈμ›¨μ–΄ ν”Œλž«νΌ
IaaS CaaS PaaS FaaS SaaS

 

 

πŸ“– μ§€κΈˆκΉŒμ§€ ν΄λΌμš°λ“œμ— λŒ€ν•΄ μ•Œμ•„λ΄€μœΌλ‹ˆ, 이 νŠΉμ„±μ„ ν™œμš©ν•˜κΈ° μœ„ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 섀계λ₯Ό μ•Œμ•„λ³΄μž.

 

1. ν™•μž₯μ„±

ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν™•μž₯이 κ°€λŠ₯ν•˜λ„λ‘ μ„€κ³„λ˜λŠ”λ°, 이것이 μ˜λ―Έν•˜λŠ” λ°”λŠ” 좔라 λ¦¬μ†ŒμŠ€λ₯Ό μ œκ³΅ν•΄ μ¦κ°€ν•˜λŠ” μ›Œν¬λ‘œλ“œλ₯Ό μ§€μ›ν•œλ‹€λŠ” 것이닀.

 

  • 수직적 ν™•μž₯: μˆ˜μ§μ • ν™•μž₯은 CPUλ‚˜ λ©”λͺ¨λ¦¬μ™€ 같은 μ»΄ν“¨νŒ… λ…Έλ“œμ— ν•˜λ“œμ›¨μ–΄ λ¦¬μ†ŒμŠ€λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.
  • μˆ˜ν‰μ  ν™•μž₯: μˆ˜ν‰μ  ν™•μž₯은 μ‹œμŠ€ν…œμ— 더 λ§Žμ€ μ»΄ν“¨νŒ… λ…Έλ“œλ‚˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό μΆ”κ°€ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

2. λŠμŠ¨ν•œ κ²°ν•©

각 μ»΄ν¬λ„ŒνŠΈλ“€μ΄ κ°€λŠ₯ν•œ ν•œ λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈμ— λŒ€ν•œ μžμ‹μ„ 거의 가지고 μžˆμ§€ μ•Šμ€ μ‹œμŠ€ν…œμ΄ 본질적으둜 가지고 μžˆλŠ” 속성이닀.

βœ”οΈμ‹œμŠ€ν…œμ„ λͺ¨λ“ˆλ‘œ λΆ„ν•΄ν•˜κ³ (λͺ¨λ“ˆν™”) λ‹€λ₯Έ 뢀뢄에 λŒ€ν•œ μ˜μ‘΄μ„±μ„ μ΅œμ†Œν™”ν•΄, 
ν•¨κ»˜ λ³€ν™”ν•˜λŠ” μ½”λ“œλ₯Ό μΊ‘μŠν™”ν•˜λŠ” 것은 쒋은 섀계 방법이닀.

 

νŠΉλ³„νžˆ μ„œλΉ„μŠ€ 기반 μ•„ν‚€ν…μ²˜λ₯Ό μ²΄νƒν•˜κ³  이에 κΈ°λ°˜ν•œ μ„œλΉ„μŠ€λ₯Ό κ΅¬μΆ•ν•˜λŠ” 데 쀑점을 두렀고 ν•˜λŠ”λ°, 이런 μ„œλΉ„μŠ€λŠ” μ„œλ‘œ 톡신할 수 μžˆλŠ” λͺ…ν™•ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ°–λŠ”λ‹€λŠ” 점과 λ‹€λ₯Έ μ„œλΉ„μŠ€μ— λŒ€ν•œ μ˜μ‘΄μ„±μ„ μ΅œμ†Œλ‘œ ν•˜κ³  높은 응집λ ₯을 κ°€μ§„λ‹€λŠ” νŠΉμ„±μ„ 보인닀.

 

3. 볡원λ ₯

정상 μž‘λ™μ— λŒ€ν•œ 였λ₯˜ 및 λ¬Έμ œμ— 직λͺ…ν•˜μ—¬ ν—ˆμš© κ°€λŠ₯ν•œ μˆ˜μ€€μ˜ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κ³  μœ μ§€ν•  수 μžˆλ„λ‘ ν•˜λŠ” ν•˜λ“œμ›¨μ–΄-μ†Œν”„νŠΈμ›¨μ–΄ λ„€νŠΈμ›Œν¬μ˜ κΈ°λŠ₯이닀.

 

4. κ΄€μΈ‘ κ°€λŠ₯μ„±

μ–΄λ–€ ν•œ μ‹œμŠ€ν…œμ„ κ³ λ €ν•œλ‹€λ©΄, κ΄€μΈ‘ κ°€λŠ₯성은 κ·Έ μ‹œμŠ€ν…œμ˜ μ™ΈλΆ€ 좜λ ₯μ—μ„œ λ‚΄λΆ€ μƒνƒœλ₯Ό μ–Όλ§ˆλ‚˜ 잘 μΆ”λ‘ ν•  수 μžˆλŠ”μ§€λ₯Ό μΈ‘μ •ν•˜λŠ” 것이닀.

 

5. 관리 μš©μ΄μ„±

관리 μš©μ΄μ„±μ€ μ™ΈλΆ€ μž…λ ₯이 μ‹œμŠ€ν…œμ˜ μƒνƒœ λ˜λŠ” 좜λ ₯을 μ–Όλ§ˆλ‚˜ 쉽고 효율적으둜 λ³€κ²½ν•  수 μžˆλŠ”μ§€μ— λŒ€ν•œ 것이라고 말할 수 μžˆλ‹€.

 

πŸ“–ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ ꡬ성에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

1. μ»¨ν…Œμ΄λ„ˆ

 

μ»¨ν…Œμ΄λ„ˆλŠ” λ™μΌν•œ 운영체제 컀널을 κ³΅μœ ν•˜λŠ” 반면, κ°€μƒν™”λ§Œ μ‚¬μš©ν•˜λŠ” 경우 ν•˜λ“œμ›¨μ–΄λ₯Ό κ³΅μœ ν•œλ‹€. 두 경우 λͺ¨λ‘ 격리의 정도가 λ‹€λ₯Ό 뿐, 격리된 μƒνƒœμ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•œ μ»΄ν“¨νŒ… ν™˜κ²½μ„ μ œκ³΅ν•œλ‹€.

 

그럼 μ΄λŸ¬ν•œ μ»¨ν…Œμ΄λ„ˆκ°€ 인기가 λ§Žμ€ μ΄μœ λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‚˜ 의쑴 라이브러리 ν˜Ήμ€ 미듀웨어와 관계 없이 거의 λͺ¨λ“  μ»΄ν“¨νŒ… ν™˜κ²½μ—μ„œ μ•ˆμ •μ μœΌλ‘œ μ‹€ν–‰ν•  수 있기 λ•Œλ¬Έμ΄λ‹€.

 

2. μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜

 

단일 μ„œλ²„μ—μ„œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 것은 κ°„λ‹¨ν•˜λ‹€. κ·ΈλŸ¬λ‚˜ 수백 개의 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„μ— λ°°ν¬ν•˜κ³  μ²˜λ¦¬ν•˜λ©΄ 또 λ‹€λ₯Έ 무언가가 ν•„μš”ν•˜λ‹€.

 

CaaS μ†”λ£¨μ…˜μ΄ μ œκ³΅ν•˜λŠ” μƒˆλ‘œμš΄ κ΄€μ μ—μ„œ, 배포 λŒ€μƒμ€ 더 이상 ν•˜λ‚˜μ˜ μ„œλ²„κ°€ μ•„λ‹ˆλΌ μ—¬λŸ¬ μ„œλ²„λ‘œ 이루어진 ν΄λŸ¬μŠ€ν„°κ°€ λœλ‹€.

 

3. μ„œλ²„λ¦¬μŠ€

 

μ„œλ²„λ¦¬μŠ€ μ»΄ν“¨νŒ… λͺ¨λΈμ— 따라 κ°œλ°œμžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λŒ€ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ΅¬ν˜„ν•˜λŠ” 데만 집쀑할 수 μžˆλ‹€. 

 

 

가상 μ‹œμŠ€ν…œ, μ»¨ν…Œμ΄λ„ˆ 및 동적 ν™•μž₯을 ν¬ν•¨ν•˜μ—¬ μ‹€ν–‰ν•  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•„μš”ν•œ λͺ¨λ“  인프라 μž‘μ—…μ„ ν”Œλž«νΌμ΄ λŒ€μ‹  μ²˜λ¦¬ν•΄μ€€λ‹€.

 

πŸ“–λ§ˆμ§€λ§‰μœΌλ‘œ κ°€μž₯ μ€‘μš”ν•œ μ•„ν‹°ν…μ²˜μ΄λ‹€.

 

μš°λ¦¬κ°€ ꡬ좕할 μ‹œμŠ€ν…œμ˜ μ•„ν‚€ν…μ²˜λŠ” μ„œλΉ„μŠ€μ™€ μƒν˜Έμž‘μš©μ΄λΌλŠ” 두 가지 μš”μ†Œλ‘œ λ‚˜λ‰œλ‹€.

  • μ„œλΉ„μŠ€: λ‹€λ₯Έ κ΅¬μ„±μš”μ†Œμ— μ–΄λ–€ μ’…λ₯˜μ˜ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” ꡬ성 μš”μ†Œ
  • μƒν˜Έμž‘μš©: μ‹œμŠ€ν…œμ˜ μš”κ΅¬ 사항을 μΆ©μ‘±μ‹œν‚€κΈ° μœ„ν•΄ μˆ˜ν–‰λ˜λŠ” μ„œλΉ„μŠ€ κ°„ 톡신

μ—¬κΈ°μ„œ μ„œλΉ„μŠ€λŠ” (μƒνƒœλ₯Ό 갖지 μ•ŠλŠ”) μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλΉ„μŠ€μ™€ (μƒνƒœλ₯Ό κ°–λŠ”) 데이터 μ„œλΉ„μŠ€λ‘œ ꡬ별할 수 μžˆλ‹€.

 

1) μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλΉ„μŠ€

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλΉ„μŠ€λŠ” μƒνƒœλ₯Ό 갖지 μ•ŠμœΌλ©° λͺ¨λ“  μ’…λ₯˜μ˜ 논리λ₯Ό κ΅¬ν˜„ν•œλ‹€.

μ„œλΉ„μŠ€λŠ” κ°€λŠ₯ν•œ ν•œ 독립적이어야 ν•œλ‹€. 

 

2) 데이터 μ„œλΉ„μŠ€

데이터 μ„œλΉ„μŠ€λŠ” μƒνƒœ μ €μž₯이 κ°€λŠ₯ν•˜λ©° λͺ¨λ“  μ’…λ₯˜μ˜ μƒνƒœλ₯Ό μ €μž₯ν•œλ‹€. 

* μƒνƒœλŠ” μ„œλΉ„μŠ€λ₯Ό μ’…λ£Œν•˜κ³  μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€λ₯Ό 생성해야 ν•  경우 μ„œλΉ„μŠ€ μ’…λ£Œ 전에 μ €μž₯λ˜μ–΄μ•Ό ν•˜λŠ” λͺ¨λ“  것이라고 ν•  수 μžˆλ‹€. 

 

3) μƒν˜Έμž‘μš©

ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ„œλΉ„μŠ€λŠ” μ‹œμŠ€ν…œμ˜ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜κΈ° μœ„ν•΄ μ„œλ‘œ ν†΅μ‹ ν•œλ‹€.

μ˜μ‚¬μ†Œν†΅μ΄ μΌμ–΄λ‚˜λŠ” 방식은 μ‹œμŠ€ν…œμ˜ μ „λ°˜μ μΈ νŠΉμ„±μ— 영ν–₯을 λ―ΈμΉœλ‹€.