[Docker] ์ค‘๊ฐ„๊ณ ์‚ฌ ์ •๋ฆฌ(1)

2024. 5. 1. 03:28ใ†ComputerScience/DockerKubernetes

 

 

 

 

 

https://www.docker.com

 

 

 

Chap1. Overview 

- ์ˆ˜์ฒœ ์ˆ˜๋งŒ๋Œ€์˜ ์ปดํ“จํ„ฐ๋“ค์ด ์›น์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค ex) ๊ตฌ๊ธ€, MS / Datacenter programming ๊ธฐ์ˆ ์˜ ๊ฐœ๋ฐœ ์ฒ ํ•™๊ณผ ๋ฐฐ๊ฒฝ๋“ค – Agile, DevOps, CI/CD – Continuous Integration and Delivery, Microservice and Serverless 

 

- IP Address - ์ปดํ“จํ„ฐ ๊ธฐ๊ธฐ์— ์ฃผ์–ด์ง€๋Š” ์ฃผ์†Œ, internet protocol address 

- Port number - ํ•œ ์ปดํ“จํ„ฐ ๋‚ด์—์„œ๋„ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์ฃผ์†Œ๊ฐ€ ๋ถ™์Œ / ํ”„๋กœ๊ทธ๋žจ์ด OS์— ๊ตฌ๋ฉ์„ ๋šซ๋Š” ๊ฒƒ ex) ์›น์€ 80๋ฒˆ ํฌํŠธ ์‚ฌ์šฉ

 

- Domain name - ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์˜์–ด ์ด๋ฆ„ / ๋’ค์— ์žˆ๋Š” (com) ๋„๋ฉ”์ธ์ด ๋” ๋„“์€ ๊ฐœ๋…

Ex) https://www.domain-name.com                 

- https:// - protocol, www – sub-domain, com – top-level domain

- DNS – Domain name system - ์˜์–ด ๋‹จ์–ด๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ดํ•ดํ•˜๋Š” IP ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟˆ // domain <-> IP address by DNS server

- DHCP – Dynamic Host Configuration Protocol - IP ์ฃผ์†Œ๋Š” ๋ถ€์กฑ -> ํ†ต์‹  ์‹œ์—๋งŒ ์ž„์‹œ๋กœ IP ์ฃผ์†Œ๋ฅผ ๋นŒ๋ ค์ฃผ๋Š” ๊ธฐ๋ฒ•์ด DHCP

- HTTP - HTTP ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ request๋ฅผ ๋ณด๋‚ด๊ณ  response๋ฅผ ๋ฐ›๋Š”๋‹ค. ์ด์ฒ˜๋Ÿผ 0๊ณผ 1์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ์†Œํ”„ํŠธ์›จ์–ด, HTTP

 

 

 

 

 

Chap2. Cloud Computing and Infrastructure 

- ๊ตฌ๊ธ€ ์„œ๋ฒ„๋“ค์ด ๋™์ž‘ํ•˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์ปดํ“จํ„ฐ๋“ค์˜ ์œ„์น˜ - ์–ด๋”˜๊ฐ€ ๋ถ„๋ช… ์ปดํ“จํ„ฐ, ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ์กด์žฌ but ์‚ฌ์šฉ์ž๋Š” ๋ชฐ๋ผ๋„ ๋จ

- ํ•„์š”ํ•  ๋•Œ, ํ•„์š”ํ•œ ๋งŒํผ์˜ CPU ๋””์Šคํฌ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉํ•˜๊ณ , ํ•„์š” ์—†์–ด์ง€๋ฉด ๋ฐ˜๋‚ฉํ•œ๋‹ค. Ex) ๊ตฌ๊ธ€ ์ฝ”์–ด 500๋งŒ๊ฐœ, ๋„ค์ด๋ฒ„ 40๋งŒ๊ฐœ

- ex) ๋„ค์ด๋ฒ„ ๊ฐ - ๋„ค์ด๋ฒ„ ๋ณธ์‚ฌ์—์„œ ๊ฐœ๋ฐœ๋œ SW๊ฐ€ ์ถ˜์ฒœ์—์„œ ๋Œ์•„๊ฐ„๋‹ค.

 

* Cloud Computing? ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ, ๊ฑฐ์˜ ๋ฌดํ•œํ•œ ์ž์›(CPU, ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ)์„ ๋ฐ”๋กœ ์š”์ฒญ ๊ฐ€๋Šฅ, ์‚ฌ์šฉ์ž๋Š” ๊ตฌ์ฒด์ ์ธ,  ๋ฌผ๋ฆฌ์ ์ธ ์ธํ”„๋ผ ๋ชฐ๋ผ๋„ OK - ๋ˆ ๋‚ด๊ณ  ๋นŒ๋ ค์„œ ์‚ฌ์šฉ / ํ•˜๋“œ์›จ์–ด ์ธํ”„๋ผ์™€ ์†Œํ”„ํŠธ์›จ์–ด, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ๋ชจ๋‘ ์ œ๊ณต ๊ฐ€๋Šฅ

* ๋‚ด๊ฐ€ ์ง์ ‘ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ ๋Œ€๋น„ ๊ฐ–๋Š” ์žฅ์ 
1. 
์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์ถฉ์กฑํ•˜๋Š”, ๊ฑฐ์˜ ๋ฌดํ•œ์— ๊ฐ€๊นŒ์šด ์ž์› 
2. Up-front commitment 
์ œ๊ฑฐ  ์ปดํ“จํ„ฐ ๋Œ€๋‹น ๋นŒ๋ ค์„œ, ๋‹ค ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋ˆ์„ ๋‚ด์•ผ ํ–ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํฌ์ƒ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. 
3. 
ํ•„์š”ํ•  ๋•Œ ๋Š˜๋ฆฌ๊ณ  ์ค„์ด๋ฉด, ๋‚ด๊ฐ€ ์ง์ ‘ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ๋Š” ๊ฒƒ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ // 

+ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์„ ๋„์ž…ํ•œ๋‹ค๊ณ  ์ ˆ๋Œ€๋กœ ์ €๋ ดํ•œ ๊ฒƒ X / ์ž˜๊ฒŒ ์ชผ๊ฐœ๊ณ , ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด์— ๋งž๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž˜ ์งœ๋Š”๊ฒŒ ์ค‘์š” / ๋Š˜๋ฆฌ๊ณ  ์ค„์ด๋Š” ๊ฒƒ ์ค‘์š” / ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์„ ๊ฒฝ์šฐ ์‹ธ๋‹ค

 

* Cloud computing ๋„์ž…ํ•˜๊ธฐ ์ข‹์€ Use Cases 

1. ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ˆ˜์š”๊ฐ€ ๋ณ€ํ•˜์—ฌ ์˜ˆ์ธก์ด ์–ด๋ ค์šด ๊ฒฝ์šฐ 2. ์ปดํ“จํ„ฐ ํ•œ ๋Œ€๊ฐ€ 1000 ์‹œ๊ฐ„ ๋Œ๋ฆด ๊ฑธ, 1000 ๋Œ€์—์„œ 1์‹œ๊ฐ„ ๋Œ๋„๋ก ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ex) ๋จธ์‹ ๋Ÿฌ๋‹, ๊ณผํ•™ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ + ์‹œ๊ฐ์  ๋ Œ๋”๋ง (์• ๋‹ˆ๋ฉ”์ด์…˜)

 

* ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ 5๊ฐ€์ง€ ํŠน์ง• 

- On Demand - ํ•„์š”ํ•  ๋•Œ, ํ•„์š”ํ•œ ๋งŒํผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด ์ž‘์—…์— ๋Œ€ํ•ด์„œ ์‚ฌ๋žŒ์˜ ๊ฐœ์ž…์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ž๋™ํ™” ๋œ interface ์‚ฌ์šฉ

- ๋„คํŠธ์›Œํฌ๋กœ ์žฅ์น˜๋“ค์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค / ์–ด๋”˜๊ฐ€์—๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๋ฆฌ์†Œ์Šค๋“ค์ด ์Œ“์—ฌ ์žˆ๋‹ค -> ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ƒ์˜ ๋ฆฌ์†Œ์Šค๋“ค์ด ํ• ๋‹น๋จ

- ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š๋„๋ก, ๋น ๋ฅด๊ฒŒ ๋ฆฌ์†Œ์Šค ์ œ๊ณต ๊ฐ€๋Šฅ (rapid elasticity) 

+ 100๊ฐœ์˜ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ์— ๋‹ค ๋•Œ๋ ค ๋ฐ•์œผ๋ฉด X, ํ•˜๋‚˜๋ฅผ 100๊ฐœ์˜ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ชผ๊ฐœ์–ด ๋Œ๋ฆฌ๋Š” ๊ฑฐ์•ผ

- 100๊ฐœ์˜ ๊ธฐ๋Šฅ ์ค‘, ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ๋งŒ ๋‘ ๋ฐฐ๋กœ ํ‚ค์šธ ํ•„์š”๊ฐ€ ์ƒ๊ฒผ์–ด -> ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•˜๋‹ค๊ฐ€, ํ•„์š”ํ•œ ์• ๋“ค๋งŒ ๋” ํ‚ค์šฐ๋Š” ๊ฒƒ

 

*** ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… 3๊ฐ€์ง€ ๋ชจ๋ธ – Service models 

(1) SaaS – Software as a Service - ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ผ, ์ผ๋ฐ˜ ์œ ์ €๊ฐ€ ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์“ฐ๋Š” ๊ฒฝ์šฐ ex) ์œ ํŠœ๋ธŒ, Gmail, Dropbox

- ์–ด๋”˜๊ฐ€์— ์žˆ๋Š” ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ์„œ๋น„์Šค ํ™œ์šฉ / ์—”๋“œ ์œ ์ €๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์“ฐ๋Š” ๊ฒฝ์šฐ (๋ˆ์„ ๋‚ด๊ฑฐ๋‚˜ or ๊ด‘๊ณ ๋ฅผ ๋ณด๊ณ )

(2) PaaS – Platform as a Service - CPU DISK ๋ฉ”๋ชจ๋ฆฌ ์œ„์— ๊ธฐ์—… ๋ณ„ ์†Œํ”„ํŠธ์›จ์–ด ๋„๊ตฌ or ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ํ™˜๊ฒฝ๋„ ํ™œ์šฉ 

Ex) Google App Engine, Google Cloud Platform 

(3) IaaS – Infrastructure as a Service – Amazon EC2(elastic compute cloud), Amazon S3, Window Azure - CPU DISK ๋ฉ”๋ชจ๋ฆฌ - CPU or Storage ๋นŒ๋ ค์ฃผ๋Š” ๊ฒƒ, ์ด๋•Œ ์šฐ๋ฆฌ๊ฐ€ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ์€ ๊ฐ€์ƒ์˜ ๊ธฐ๊ณ„  ๊ทธ ์•„๋ž˜์˜ ์ง„์งœ machine์—๋Š” ๊ด€์‹ฌ X

 

* Cloud computing – Deployment models 4๊ฐ€์ง€ 

1. Private cloud - ๊ฐ™์€ ์†Œ์œ ์ฃผ ์•ˆ์—์„œ, ์กฐ์ง ๋‚ด๋ถ€ ๊ตฌ์„ฑ์›๋“ค์—๊ฒŒ ์ œ๊ณต / ์‚ฌ๋‚ด์—์„œ ๊ด€๋ฆฌํ•˜๋Š” cloud, ๋Œ€๊ธฐ์—… ํ•œ์ • 

2. Community cloud - ๊ฐ™์€ ๋ชฉ์ ์œผ๋กœ ๋ชจ์—ฌ์„œ ํ•จ๊ป˜ ์ธํ”„๋ผ๋ฅผ ๊ณต์œ . ex) ์ˆ˜ํ•™ ๋ฌผ๋ฆฌ ์—ฐ๊ตฌ์ž๋“ค (์ˆœ์ˆ˜๊ณผํ•™, ๋น„์˜๋ฆฌ๋‹จ์ฒด)

3. Public cloud  ์ œ 3์ž ์•„๋งˆ์กด, ๊ตฌ๊ธ€๊ณผ ๊ฐ™์ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋‚จ์˜ ํšŒ์‚ฌ์˜ ์ž์›์„ ๋นŒ๋ ค ์‚ฌ์šฉํ•˜๊ณ , ๋Œ€๊ฐ€๋ฅผ ์ง€๋ถˆ

4. Hybrid cloud – private์—์„œ ํŠน์ • ์ƒํ™ฉ์— ๋ถ€๋ถ„์ ์œผ๋กœ public cloud ๋„์ž…ํ•˜๋Š” ๊ฒƒ, ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„˜์–ด๊ฐ„๋‹ค๋ฉด? ๋ณด์•ˆ๋ฌธ์ œ O

+ data lock-in - ์ดํ›„ ์—…์ฒด๋ฅผ ๋ณ€ํ˜•ํ•˜๊ธฐ ์–ด๋ ต๋‹ค

 

 

 

 

 

Chap3. Infrastructure & Virtualization 

- On-premise - ์ž์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋Š” ๊ฒƒ, private cloud computing ์˜๋ฏธ 

- ex) ์‚ผ์„ฑ ๋‚ด๋ถ€์˜ cloud - ์ˆ˜๋ฉด ์•„๋ž˜์˜ ๋ถ€๋‹ด์— ์˜ํ•ด์„œ ๋„์ž…ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ (ํ•˜๋“œ์›จ์–ด, ๊ฐœ๋ฐœ ์ธ๋ ฅ ํ•„์š” ๋“ฑ) 

- public cloud ๋„์ž… ์‹œ ๋ˆ์„ ์ง€๋ถˆํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋ฐ‘๋‹จ์€ ๋ชฐ๋ผ๋„ ๋œ๋‹ค๋Š” ์ด์ ์ด ์žˆ๋‹ค. 

 

* On-premise vs Cloud Server -> *** Pet model vs Cattle model

1. Pet model - ๋ณธ์ธ์ด ์ง์ ‘ ๊ตฌ์ถ•ํ•œ ์„œ๋ฒ„์— ๋…ํŠนํ•œ ์ด๋ฆ„ ๋ถ€์—ฌ -> ์„œ๋ฒ„๊ฐ€ ์œ ๋‹ˆํฌ ํ•˜๊ธธ ๋ฐ”๋žŒ -> ๊ฐœ๋ฐœ ์‹œ ๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

2. Cattle model - ์„œ๋ฒ„ ๊ฐ„ ์ฐจ์ด์  X (์œ ๋‹ˆํฌ ์ด๋ฆ„ X) ๊ธฐ๋Šฅ๊ณผ ์ˆซ์ž๋ฅผ ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋ชจ๋“  ์„œ๋ฒ„๋Š” ๋™์ผํ•œ ์ทจ๊ธ‰  ํ•„์š” ์‹œ replace

+ ๋” ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด SaaS๋Š” ๋” ๋‚ด๋ ค๊ฐˆ ์ˆ˜ X, ๋ฏธ๋“ค์›จ์–ด OS๊นŒ์ง€ ๋ชจ๋‘ control ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์  ex) ๊ตฌ๊ธ€, ์•„๋งˆ์กด

 

- Infrastructure – Hardware & Network, OS, Middleware 

- Server – Central Processing Unit (CPU), Memory – ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๋ฉ”๋ชจ๋ฆฌ, Storage – ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ๋””์Šคํฌ

+ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTTP๋กœ ํ†ต์‹ ํ•˜๋‹ˆ๊นŒ, ์›น์ด๋ผ๋Š” ์ด๋ฆ„์ด ์ฃผ๋กœ ๋ถ™๋Š” ๊ฒƒ / ๋ฌด์กฐ๊ฑด ์„œ๋ฒ„๊ฐ€ ์›น์„ ๊ฐ”๋‹ค ์˜ค๋Š” ๊ฑด X

 

* Web Server - HTTP ๊ธฐ๋ฐ˜์˜ ํ†ต์‹ ์ด ๋ชฉ์  / request ๋ฐ›์Œ + ๋กœ์ง ์„œ๋ฒ„ + DB์„œ๋ฒ„ (Store, process & deliver) 

- ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์€ HTML ํŒŒ์ผ์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

* Database Server - ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ „์šฉ ์†Œํ”„ํŠธ์›จ์–ด DBMS / SQL - structured query language - ์—‘์…€ ์ฐจํŠธ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค ex) ๊ฒฝํฌ๋Œ€ ํ•™์ ๋ถ€, ํšŒ๊ณ„ -> SQL server

+ ์ตœ๊ทผ์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ตฌ์กฐํ™”๋˜์ง€ X, ์ด๋ฏธ์ง€, ๋น„๋””์˜ค, ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€ ๋“ฑ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” NoSQL server 

 

* OS – Linux - ๊ฐœ๋ฐœ, ์šด์˜ ๋ชฉ์ ์˜ ์„œ๋ฒ„ ๋ชจ๋‘ ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ, ์‹ค์Šต์—์„œ CLI ๋ช…๋ น์–ด ๋งŽ์ด ์”€

- ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ์ด ์ปค๋„ - ์„œ๋ฒ„ ๊ด€๋ จ ์†Œํ”„ํŠธ์›จ์–ด๋“ค์ด ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์œ„์—์„œ ๋Œ์•„๊ฐ„๋‹ค.

* Middleware – ์—”๋“œ ์œ ์ € ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ OS ์‚ฌ์ด์˜ ๋ฏธ๋“ค์›จ์–ด -> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ OS ๋ณด์™„ํ•˜๋Š” ๊ฒƒ์ด ๋ฏธ๋“ค์›จ์–ด

 

* Deploying at Scale - ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ๊ฐ€์งœ CPU, DISK, ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ / ๊ทธ ์œ„์— ์ดˆ ๋‹จ์œ„๋กœ ํ•„์š”ํ•œ ๊ฒƒ์„ ์˜ฌ๋ฆผ

- ์–ด๋”˜๊ฐ€์—๋Š” ๋ถ„๋ช… physical ์กด์žฌ -> ์ง์ ‘ ์ธํ”„๋ผ ์งœ๋Š” ์ƒํ™ฉ์—์„œ ์น˜๋ค„์•ผ ํ•˜๋Š” ๋Œ€๊ฐ€๊ฐ€ ๊ณง ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ์žฅ์ 

- ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ (๋ถ€ํ’ˆ ์ฃผ๋ฌธ, ๊ฑด๋ฌผ ๋“ฑ ๋ถ€๋™์‚ฐ ๊ณ„์•ฝ, ์„ค์น˜ ๋“ฑ๋“ฑ) ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ดํ•ดํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ•„์š”ํ•จ, ๊ธฐ์ˆ  ๋ณ„๋กœ ์ „๋ฌธ๊ฐ€ ํ•„์š”

 

* IaC – Infrastructure as Code – ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ํ•œ ๊ธ€์ž๋กœ ๋งํ•˜์„ธ์š”! -> IaC 

- ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์ง€ ์•Š๋Š”๋ฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋“ฏ์ด ํŒŒ์ผ ์•ˆ์— ๋ฌธ์„œ๋กœ ์ž‘์„ฑ / ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณธ์ธ์ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์ฝ”๋“œ๋กœ ๊ธฐ์ˆ ํ•˜๋ฉด, ๋ฐ์ดํ„ฐ์„ผํ„ฐ๊ฐ€ ์ฃผ์–ด์ง„ ํ™˜๊ฒฝ์„ ์ž๋™ํ™”๋œ ํ˜•ํƒœ๋กœ ์ œ๊ณต / ex) ๋‚˜๋Š” ์ด๋Ÿฐ CPU ๋ช‡ ๊ฐœ, OS, DB, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋„คํŠธ์›Œํฌ ์Šคํ‚ด, ์—ฐ๊ฒฐ ๋“ฑ ์ž‘์„ฑ / ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋“ฏ์ด ํƒ€์ดํ•‘ํ•˜์—ฌ, ๋ช…์„ธ์„œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ

Ex) ๋„์ปค์—๊ฒŒ ์‹คํ–‰ ์š”์ฒญํ•˜๋ฉด, ์ž‘์„ฑ๋œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•ด์„œ / ๋„ค๊ฐ€ ํ™•์ธํ•ด๋ด or ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค - ๋‚ด๊ฐ€ ์•Œ์•„์„œ ํ•ด -> 10๊ฐœ ์ค‘ ํ•˜๋‚˜ ์ฃฝ์œผ๋ฉด,์–˜๊ฐ€ ์•Œ์•„์„œ ํ•˜๋‚˜ ๋” ์˜ฌ๋ฆผ  ์ธ๊ฐ„์˜ ๊ฐœ์ž…์„ ์ค„์ด๋Š” ๊ฒƒ (์ž๋™ํ™”)

 

- ์ธํ”„๋ผ๋ฅผ virtualํ•˜๊ฒŒ ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ๋„์šฐ๋Š” ๊ฒƒ, Physical์€ ๋ชฐ๋ผ๋„ ๋˜๋„๋ก / ์–ด๋– ํ•œ ํ™˜๊ฒฝ์ด๋“  ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜์˜ค๊ฒŒ ํ•จ

* Infrastructure as Code is an approach to managing IT infrastructure for the age of cloud, microservices and continuous delivery. 

- ํด๋ผ์šฐ๋“œ ์œ„์— ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋Œ๋ฆฐ๋‹ค. ํ•œ CPU์—์„œ๋Š” ๊ต‰์žฅํžˆ ์ž‘์€ ๊ฒƒ์„ ๋Œ๋ฆฌ๋Š” ๊ฒƒ / ์ธ๊ฐ„์ด ๊ฐœ์ž…ํ•˜์ง€ ์•Š๋Š” CI/CD ์ž๋™ํ™” 

- git-hub์—์„œ ๊ฐ€์ ธ์™€ / ์ธํ”„๋ผ๋กœ ๋Œ๋ ค / ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋Œ๋ ค / ๊ฒฐ๊ณผ ํ™•์ธ / ๋ฐฐํฌ -> ๊ฐœ๋ฐœํŒ€ ์„œ๋ฒ„์—์„œ ์šด์˜ํŒ€ ์„œ๋ฒ„๋กœ copyํ•ด / ๊ฒ€์ฆํŒ€์œผ๋กœ ์˜ฎ๊ฒจ์„œ ์ฝ”๋“œ ๋Œ๋ ค / continuous delivery / integration Ex) ์  ํ‚จ์Šค

 

* Infrastructure as Code์˜ ์žฅ์ 

- ์‹ ์†ํ•˜๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์š”์ฒญํ•˜๊ณ , ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค / ํ™˜๊ฒฝ๊ณผ ํ•˜๋“œ์›จ์–ด์— ๋…๋ฆฝ์ ์œผ๋กœ, ์ผ๊ด€์„ฑ ์œ ์ง€ ๊ฐ€๋Šฅ

- ์œ„ํ—˜์„ฑ ๊ฐ์†Œ / SW ๊ฐœ๋ฐœ ํšจ์œจ ์ฆ๊ฐ€ / ๋น„์šฉ ์ ˆ๊ฐ (๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šคํ™” ํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์—์„œ ์˜ฌ๋ฆฌ๋ฉด ํ•ด๋‹น X)

 

*** Mutable Infrastructure vs Immutable Infrastructure

(1) Mutable Infrastructure – ํ•˜๋‚˜๋งŒ ๋ฐ”๊พธ๋ฉด ๋˜์ง€, ๋ญํ•˜๋Ÿฌ ๋‹ค ๋ฐ”๊ฟ” 

- ํ•˜๋‚˜์˜ application ์•ˆ์— ์—ฌ๋Ÿฌ service๊ฐ€ ์กด์žฌ  ๊ฐ ์„œ๋น„์Šค ๋ณ„ ๋ฒ„์ „์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์œ ์ง€ -> ํŠธ๋ž™ํ‚น, ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ๋งค์šฐ ์–ด๋ ต๋‹ค.

 

(2) Immutable Infrastructure

- ํ˜„ ์‹œ์ ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ๋ฒ„์ „์€ ๋”ฑ ํ•˜๋‚˜ - ๊ณผ๋„๊ธฐ ์ƒํƒœ๋Š” ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํฐ ๊ทธ๋ฆผ์œผ๋กœ๋Š” ๋ฒ„์ „์„ ํ•˜๋‚˜๋งŒ ์œ ์ง€ํ•˜์ž!

- immutable ํ•ด์•ผ, ํ•„์š”ํ•  ๋•Œ ๋Š˜์ด๊ณ  ์ค„์ด๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•จ * ๋งค์šฐ ์ค‘์š”ํ•œ ๊ทœ์น™

* ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์žฅ์ ์€ ๊ด€๋ฆฌ ์ธก๋ฉด  ์ธ์Šคํ„ด์Šค ๋ณ„ ๋ณ€ํ™”๋ฅผ ํŠธ๋ž™ํ‚น ํ•  ํ•„์š” ์—†๋‹ค / ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€(๋ฒ„์ „)๋งŒ ์œ ์ง€ํ•˜๋‹ˆ๊นŒ

Like cattle model – physical ์„œ๋ฒ„์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ‘œ์ค€ํ™”๋˜์–ด ๋™์ผํ•œ, ํš์ผ์ ์ธ ์ฒด๊ณ„ -> ์ด๊ฒƒ์ด docker์˜ concept

+ ๋„์ปค ๋งฅ ์‚ฌ์ด์— ์•„์ฃผ ์ž‘์€ ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์˜ฌ๋ผ๊ฐ / ์‚ฌ์‹ค์ƒ ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์—์„œ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, ๋งฅOS ์œ„์— ์ž‘์€ ๋ฆฌ๋ˆ…์Šค ๊น”๊ณ  ๋„์ปค ์˜ฌ๋ผ๊ฐ€๊ฒŒ ํ•˜๋Š” ๊ฒƒ / ์ฆ‰ ๋„์ปค๊ฐ€ ์กฐ๊ทธ๋งˆํ•œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์„ค์น˜ํ•œ๋‹ค. 

 

 

 

 

 

Chap4. Virtualization & Container Technology

- ๊ฐ€์ƒํ™” - ๋ฌผ๋ฆฌ์ ์ธ ํ•˜๋“œ์›จ์–ด ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ๊ฐ€์ƒ์˜ CPU DISK ๋„คํŠธ์›Œํฌ (์ฃผ๋กœ CPU ๊ฐ€์ƒํ™”) 

- ๊ฐ€์ƒํ™”๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์ ์ธ ํ•˜๋“œ์›จ์–ด ์œ„์— ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํ“จํ„ฐ๋“ค์ด ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. (์—ฌ๋Ÿฌ OS ๋„์šฐ๊ธฐ ๊ฐ€๋Šฅ)

- ํ•˜๋“œ์›จ์–ด์™€ host OS ์œ„์— hypervisor -> ์ด ์œ„์— VMWare, parallels ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ virtual machines ๋„์šธ ์ˆ˜ ์žˆ๋‹ค. 

- ๊ฐ VM๋“ค ์œ„์— app์ด ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•œ (์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ), Guest OS๊ฐ€ host OS์™€ ๋…๋ฆฝ์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค. 

 

* hypervisor ์žฅ์  – 1. ํ•œ ๋Œ€์˜ ์ปดํ“จํ„ฐ ์œ„์— ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋…ผ๋ฆฌ์ ์ธ ์ปดํ“จํ„ฐ๋ฅผ ๋„์›Œ, ๋‚จ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค. 2. physicalํ•œ ๊ธฐ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ, ๋‹น์žฅ ๋นŒ๋ ค์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 

* hypervisor, Virtual machine ๋‹จ์  – machine์„ virtualํ™” ํ•˜๋Š” ๊ฒƒ -> OS Full copy -> ์˜ค๋ฒ„ํ—ค๋“œ, ๋Š๋ฆฌ๊ณ  ๋ฌด๊ฑฐ์›€

- CPU ์ฝ”์–ด๊ฐ€ N๊ฐœ๋ผ๋ฉด, ์ˆ™๋ช…์ ์œผ๋กœ host OS๊ฐ€ ๋Œ์•„๊ฐ€๋Š” ์ฝ”์–ด ํ•˜๋‚˜ ๋ฐฐ์ œํ•ด์•ผ ํ•จ -> ์ตœ๋Œ€ N-1๊ฐœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 

-> ๋‚ด๊ฐ€ ๋Œ๋ฆฌ๊ณ  ์‹ถ์€๊ฑด ํ”„๋กœ๊ทธ๋žจ์ธ๋ฐ, ๊ตณ์ด ๋จธ์‹ ๊นŒ์ง€ ๋„์›Œ์•ผ ํ•˜๋Š”๊ฐ€?

-> ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์— focus -> host OS์˜ ๋Šฅ๋ ฅ์„ ์žฌ์‚ฌ์šฉํ•˜๋ฉด guest OS๊ฐ€ ์—†์–ด๋„ ๋˜๊ฑฐ๋‚˜, ์–‡์•„๋„ ๋œ๋‹ค

 

*** Linux over linux problem - virtualization tax

- ๋นŒ๋ ค ์“ฐ๋Š” ๊ฒฝ์šฐ ํฐ ๋ฌธ์ œ X / but private cloud ์šฐ๋ฆฌ ํšŒ์‚ฌ์—์„œ ๋ฐ์ดํ„ฐ์„ผํ„ฐ ๊ตฌ์ถ• ์‹œ ๋ฌธ์ œ ๋ฐœ์ƒ / ๋Œ€๋ถ€๋ถ„ ํšŒ์‚ฌ๋Š” ๊ณต์ธ OS ํ†ต์ผ

- Apple์€ Public cloud X / ์•„์ดํฐ, ๋งฅ์„ ์œ„ํ•œ ์ œ๊ณตํ•  ์• ํ”Œ ์„œ๋น„์Šค, ์ธํ”„๋ผ๋ฅผ ์šฐ๋ฆฌ ํšŒ์‚ฌ ๋‚ด๋ถ€ ๊ณ ๊ฐ์ด ์‚ฌ์šฉ / private cloud team

- ๋ฆฌ๋ˆ…์Šค ์˜ค๋ฒ„ ๋ฆฌ๋ˆ…์Šค ๋ฌธ์ œ by apple -> NASA openstack์€ VM์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ, ๊ทธ ๋ถ€ํ•˜๊ฐ€ 30%์— ์ด๋ฅธ๋‹ค.

 

-> but ์šฐ๋ฆฌ๋Š” ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์ปดํ“จํŒ… ์ž์›์ด ํ•„์š”ํ•œ ๊ฒƒ (virtual machine์ด ์•„๋‹ˆ๋ผ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฒ•์œผ๋กœ ์ „ํ™˜) 

- ๋„์ปค ์ด์ „์˜ ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ (์ „ํ†ต์ ์ธ ๊ธฐ์ˆ ) / ์„œ๋ฒ„ - ์ƒˆ๋กœ์šด ์œ ์ €์—๊ฒŒ ๊ณ„์ •์„ ์—ด์–ด์ค˜ (๋ฌผ๋ฆฌ์ ์ธ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด์ค˜)

- ์–ด๋”˜์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์‹คํ–‰ํŒŒ์ผ์„ ๋™์ž‘์‹œํ‚ค๊ณ , ํ•„์š” ์—†์–ด์ง€๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ๊น”๋”ํ•˜๊ฒŒ ์‚ญ์ œ

 

* Container vs Virtual Machine 

- ๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹ค์–ด ๋‚˜๋ฅด๋Š” ์—ญํ•  / ์ปจํ…Œ์ด๋„ˆ = ์‹คํ–‰ ํŒŒ์ผ + ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ – abstraction at the app layer 

- ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์„ค์น˜ํ•˜๊ณ , ๊นจ๋—ํ•˜๊ฒŒ ์ง€์šฐ์ž (์˜ค๋ž˜๋œ ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฒ•)

* ์ปจํ…Œ์ด๋„ˆ์˜ ์žฅ์  - ๊ฒŒ์ŠคํŠธ OS๋กœ full OS๊ฐ€ ์˜ฌ๋ผํƒ€์•ผ ํ•˜๋‹ˆ๊นŒ ๋ฌด๊ฑฐ์› ์Œ / ์ปจํ…Œ์ด๋„ˆ๋Š” ์ˆ˜MB (๋งค์šฐ ๊ฐ€๋ณ๊ณ , ๋น ๋ฅด๊ฒŒ ๋Œ๋ฆด ์ˆ˜ ์žˆ์Œ) 

- ์ฝ”์–ด๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์š”๊ตฌํ•˜์ง€ ์•Š์•„ ์š”๊ตฌํ•˜๋Š” ๊ณต๊ฐ„์ด VM๋ณด๋‹ค ์ž‘๊ณ , ๋”ฐ๋ผ์„œ VM๋ณด๋‹ค ๋” ๋งŽ์€ application์„ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

- ์ปจํ…Œ์ด๋„ˆ๊ฐ€ VM๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋„ ๋” ์ ๊ฒŒ ์‚ฌ์šฉ / ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋“ค์€ ํ•˜๋‚˜์˜ host os ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค.

* Challenges of Container - ์ˆ˜์‹ญ๋งŒ ์ˆ˜๋ฐฑ๋งŒ ์ฝ”์–ด๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์„ ์งœ๋Š” ๊ฒƒ - CNCF (cloud native)