- toc {:toc}
Kubernetes Overview
- Kubernetes : ์ปจํ ์ด๋ํ๋ App์ ์๋์ผ๋ก ๋ฐฐํฌ, ์์ ํ ๋น, ์ด์์ ํ๋ ๊ตฌ๊ธ์ด ์ ์ํ ์คํ์์ค ์์คํ ์ด๋ค.
- ์ฟ ๋ฒ๋คํฐ์ค์๊ฒ ์ด์์๋ ๋ณธ์ธ์ด ์ํ๋ desired state๋ฅผ ์ ๊ณตํ๋ฉด ์ฟ ๋ฒ๋คํฐ์ค๋ desired state๋ฅผ ๋ง์กฑ์ํค๋ ์ชฝ์ผ๋ก ์กฐ์ ํ๋ค.
- ์ด์์์ ์ต์ ๋จ์๋ pod ๋จ์์ด๋ค. ๋๋ฌด ์์ ๋จ์๊ฐ ์๋๋ผ, ์๋น์ค ์ ์ฅ์์์ ์ต์ ๋จ์
- cattle ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ฃฝ์ด๊ณ ๋ค์ ๋ง๋๋ ๊ฒ์ด๊ณ ์ด๋ฅผ ip ์ฃผ์๋ก ๋ฐ์ ํ์ ํ๋ ค ํ๋ฉด ํ๋ค๋ค. ๋๋ฌธ์ DNS๋ฅผ ์ด์ฉํ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๋์์ํจ๋ค.
Monolithic vs Microservice
-
๊ฐ์ด ์ผ ์ธํ CPU์ ๋ฆฌ๋ ์ค๋ฅผ ์ฌ๋ฆฌ๊ณ ํ ๋์์ ํด์ผํ ์ผ์ ์ชผ๊ฐ ์ฌ๋ฌ ๊ฐ์ ์ปดํจํฐ์์ ๋คํธ์ํน์ ํด์ ์๋์ํค๋ฉด ๋น์ฉ์ ์๋ ์ ์์ง ์์๊น?
-
ํ์ํ ๋ ํ์ํ ๋งํผ CPU, Disk, Network๋ฅผ ๋น๋ ค ์ฐ๊ณ ์ฌ์ฉํ ๋งํผ ๋น์ฉ์ ์ง๋ถํ๋ค. - Cloud Computing
-
์ชผ๊ฐค ์ ์๋ค๋ฉด ๋งค์ฐ ์์ ๋จ์๋ก ์ชผ๊ฐ ๋ค.
-
์ชผ๊ฐ ๊ฒ์ ๋์์ผ ํ๊ธฐ ๋๋ฌธ์ OS๋ก ์ธํด CPU๋ฅผ ๋ง์ด ์ก์ ๋จน๋ ๊ฐ์๋จธ์ ์ด ์๋ ํ์ํ ๋ ํ์ํ ๋งํผ ์ฌ์ฉํ ์ ์๋ ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค.
-
์ ํต์ ๋ฐฉ์
- ๋ชจ๋ ํต์ผ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค.
- Main Frame : ๋ณด์์ ์ด๊ธฐ ๋๋ฌธ์ ๊ณ ์ํ๋ค.
-
๋ง์ดํฌ๋ก์๋น์ค
- Monolithic ์ํคํ ์ณ์์ ์ปค๋ค๋ ํ๋์ ์๋น์ค๋ก ์ฌ์ฉํ๋ ๊ฒ์ 100๊ฐ์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ๋ฉด ๊ฐ๊ฐ์ ์ฐข์ด ๋ ๋ฆฝ๋ ๊ฒ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ธฐ์
- ์๋น์ค์ ๋ฐ๋ผ ํ์ํ ๊ฒฝ์ฐ ํ์ํ ๊ธฐ์ , ๋ ๊ด์ฐฎ์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ๊ฐ ํ๋ก๊ทธ๋จ๋ค์ ํน์ฑ์ ๋ง๊ฒ ์๋ง๋ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค.
- ์ ํํ๋, ํต์ผ๋ ํํ๋ฅผ ๊ฐ์ง ํ์ ์๋ค.
-
ํ๋ก๊ทธ๋จ์ด ์ ์ ์ปค์ง๊ณ ํ์ด ์ปค์ง๋ฉด ์ด๋ป๊ฒ ๋๋๊ฐ?
- ์ ํต์ ๋ฐฉ์
- ํ๋์ ํ๋ก๊ทธ๋จ์ผ๋ก ํตํฉํ๊ฑฐ๋ 2~3๊ฐ๋ก ๋๋์ด ๊ธฐ๋ฅ์ ๋ถํ ํ๋ ํ์
- ํ๋์ ํต์ผ๋ ์ธ์ด๋ก ๊ฐ๋ฐ
- ๊ฐ๋ฐ ๋ฅ๋ ฅ์ด ์ ๋๋ฉด ๊ฐ๋ฐ ๋ฅ๋ ฅ์ ๊ธธ๋ฌ์ผ ํ๋ค.
- ๋ง์ดํฌ๋ก์๋น์ค
- ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ์ฅ์ ์ ๊ฐ๋๋ค.
- ์ ํต์ ๋ฐฉ์
Microservice Architecture
-
Scalablility
- ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค์ ์ํฅ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฉ๋์ ๊ฐ์ง ์ ์๋ค.
- ํน์ ๊ธฐ๋ฅ์ ์ฉ๋์ ๋๋ฆฌ๊ณ ์ถ์ ๋ Monolithic์ ๋ถ๋ฆฌํ์ง ๋ชปํด ๋ค๋ฅธ ๊ธฐ๋ฅ๋ scale up ๋์ด์ผ ํ๋ค. ํ์ง๋ง ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ค๋ฅธ ์๋น์ค์ ์ํฅ์์ด ์ฉ๋์ ๋๋ฆด ์ ์๋ค.
-
Availability
- ํ ์๋น์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค๋ค์ ๋ฏธ์น๋ ์ํฅ์ด ํฌ์ง ์๋ค.
- ๋ฌธ์ ๊ฐ ์๊ธด ๋ง์ดํฌ๋ก์๋น์ค๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ด๋ฆด ์ ์๋ค.
- 100๊ฐ ์ค 1๊ฐ์ ๊ธฐ๋ฅ์ด ์ค๋์์ ํ๋ ๊ฒฝ์ฐ์ Monolithic์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ด ๋ชจ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ด ์์ด ๋ค๋ฅธ ์๋น์ค์ ๋ฏธ์น๋ ์ํฅ์ด ํฌ์ง ์๋ค.
-
Fault Tolerance
- ๋ค๋ฅธ ์๋น์ค๋ค์ด ์ ์๋ํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด App์ด ๋ค์ด๋๋ ๊ฒ ๋์ ์ ์์ ๋ถ๋ถ๋ง ์ํฅ ๋ฐ๋๋ค.
-
Agility
- ๋น ๋ฅธ ๋ฐฐํฌ ๊ณผ์ ์ด agile ํ๊ฒฝ์ ์๋ฏธํ๋ ๋ณํํ๋ ์๊ตฌ๋ฅผ ์ํ ์ ํฉํ ์ํคํ ์ฒ๋ฅผ ๋ง๋ค ์ ์๋๋ก ํ๋ค.
- 100๊ฐ์ ๊ธฐ๋ฅ์ 1000๋ช ์ด ๋ง๋ค์๋ค๊ณ ํ๋ค๋ฉด 1๊ฐ์ ๊ธฐ๋ฅ์ 10๋ช ์ด ์ ์. Monolithic์ ๋ชจ๋๊ฐ ๊ฐ์ ์ ํ ์๊ฐ๊น์ง ๊ธฐ๋ฅ ์ ์์ ์๋ฃํด์ผ ๋น๋, ๋ฐฐํฌ๋ฅผ ํ ์ ์๋ค. ํ์ง๋ง ๋ง์ดํฌ๋ก์๋น์ค๋ ๊ฐ ๊ธฐ๋ฅ๋ง๋ค ๋ฐ๋ก ๋น๋, ๋ฐฐํฌ๋ฅผ ํ ์ ์๋ค. ๋น ๋ฅธ ๋น๋, ๋ฐฐํฌ ๊ฐ๋ฅ
-
Polyglot Persistence
- Polyglot : ๋ค์ํ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ฆ, ์ฌ๋ฐ๋ฅธ ์ฌ๋ก์ ์๋ง๋ ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํ๋ค.
- Application stack์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌถ์ฌ์์ง ์๋๋ค.
-
Maintainability
- ๊ธฐ๋ฅ๋ค์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ์๋ ์ฝ๋ ์์ผ๋ก ์ธํด ์ ์ง ๋ณด์ํ๊ธฐ ํธ๋ฆฌํ๋ค.
-
MS Word / Office / Game โ Monolithic โ ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝํ์ง ๋ชปํ๋ค.
์ Microservice Architecture ์ธ๊ฐ?
- Software Stack agnostic
- ํ๋์ ์ํํธ์จ์ด ์คํ์ผ๋ก ๋ฌถ์ธ ๊ฒ์ด ์๋๋ผ ๋๋์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ์๋ง๋ ๋ค์ํ ์ํํธ์จ์ด ์คํ์ด ์ฌ์ฉ๋ ์ ์๋ค.
- Faster Development
- ๋น ๋ฅด๊ฒ ์๊ตฌ์ฌํญ์ ์๋ง๋ ๋ณ๊ฒฝ์ ํ ์ ์๋ค.
- Clear Separation of Business Concerns
- ๋น์ฆ๋์ค์ ๋ฌธ์ ์ ๋ํ ๋ช ํํ ๋ถ๋ฆฌ๊ฐ ๋๋ ์ . ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ์ํตํ๊ณ ์์ง์ด๊ณ ํด๊ฒฐํ ์ ์๋ค.