"ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ" ๋๋ ๊ฐ๋จํ "ํด๋ผ์ฐ๋" ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ์๋ํ๋๋ก ํน๋ณํ ์ ์๋์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ปจํ ์ด๋์ ํจํค์ง๋ ๋์จํ๊ฒ ๊ฒฐํฉ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ธํธ๋ก ๊ตฌ์ถ๋๋ฉฐ, ์ด๋ ํด๋ผ์ฐ๋ ํ๋ซํผ์์ ๊ด๋ฆฌ๋ฉ๋๋ค. ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฅ์ ๋๋น๋์ด ์์ต๋๋ค. ์ฆ, ์ฌ๊ฐํ ์ธํ๋ผ ์์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ ์์ ์ ์ผ๋ก ์๋ํ๊ณ ํ์ฅ ๊ฐ๋ฅํฉ๋๋ค. ๋์ ์ ๋ค๋ฅธ ๋ฉด์ ํด๋ผ์ฐ๋ ํ๋ซํผ์ด ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ๊ณผํ๋ ์ผ๋ จ์ ์ ํ(๊ณ์ฝ)์ ๋๋ค.
ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก์ ์ ํ์ ํ์์ฑ๊ณผ ์ค์์ฑ์ ์ถฉ๋ถํ ์ธ์ํ๊ณ ์์ง๋ง, ๋ง์ ์กฐ์ง์ ์ฌ์ ํ โโ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ชจ๋ฆ
๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ ์ปจํ
์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ๋ ๋ฐ๋ฅด๋ฉด ํด๋ผ์ฐ๋ ํ๋ซํผ์ ์ ์ฌ๋ ฅ์ ์คํํ๊ณ IT ์ธํ๋ผ์ ์ฌ๊ฐํ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ์ ์ธ ์ด์ ๋ฐ ํ์ฅ์ ๋ฌ์ฑํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ์์น์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์์ค. ์ฌ๊ธฐ์ ์ค๋ช
๋ ์์น์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ Kubernetes์ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๋ซํผ์์ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์
๋๋ค.
์ํํธ์จ์ด ์ค๊ณ ์์น
ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ์์ ์์น์ด๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ๋ ๋ฐ๋ผ์ผ ํ๋ ์๋นํ ์ผ๋ฐ์ ์ธ ๊ท์น์ ์๋ฏธํฉ๋๋ค. ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ ํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ ์์น์๋ ๊ณ ์ ํ ๋ชฉํ๊ฐ ์์ผ๋ฉฐ ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ ๋๊ตฌ๋ ์ผ๋ฐ์ ์ผ๋ก ํ ํ๋ฆฟ๊ณผ ๊ดํ์ ๋๋ค. ๋ํ ๊ณ ํ์ง ์ํํธ์จ์ด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ณธ ์์น์ด ์์ผ๋ฉฐ, ๋ค๋ฅธ ๋ชจ๋ ์์น๋ ์ฌ๊ธฐ์ ๋ฐ๋ฆ ๋๋ค. ๋ค์์ ๊ธฐ๋ณธ ์์น์ ๋ช ๊ฐ์ง ์์ ๋๋ค.
ํค์ค (๊ฐ๋จํ๊ฒ ์ ์งํ์ธ์, ์ด๋ฆฌ์๊ฒ๋) โ ๋ณต์กํ๊ฒ ๋ง๋ค์ง ๋ง์ธ์.DRY (๋ฐ๋ณตํ์ง ๋ง์ธ์) - ๋ฐ๋ณตํ์ง ๋ง์ธ์.์ผ๊ธฐ (ํ์ํ์ง ์์ ๊ฒ์ ๋๋ค.) - ์ฆ์ ํ์ํ์ง ์์ ๊ฒ์ ๋ง๋ค์ง ๋ง์ญ์์ค.SoC๋ฅผ ์ฐ๋ ค์ฌํญ์ ๋ถ๋ฆฌ - ์ฑ ์์ ๊ณต์ ํฉ๋๋ค.
๋ณด์๋ค์ํผ, ์ด๋ฌํ ์์น์ ํน์ ํ ๊ท์น์ ์ค์ ํ๋ ๊ฒ์ด ์๋๋ผ ๋ง์ ๊ฐ๋ฐ์๊ฐ ๊ณต์ ํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ์ฐธ์กฐํ๋ ์ค์ ๊ฒฝํ์ ๋ฐ๋ฅธ ์์ ์์ ๊ณ ๋ ค ์ฌํญ์ ๋ฒ์ฃผ์ ์ํฉ๋๋ค.
๋ํ,
SOLID ์์น์ OOP ๋ถ์ผ์ ์ํ๋ฉฐ ํด๋์ค, ์ธํฐํ์ด์ค ๋ฐ ์์๊ณผ ๊ฐ์ ๊ฐ๋ ๋ฐ ๊ฐ๋ ์ ์ธ์ด๋ก ๊ณต์ํ๋ฉ๋๋ค. ๋น์ ํ์๋ฉด ํด๋ผ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๊ฐ๋ฐ ์์น๋ ๊ณต์ํํ ์ ์์ผ๋ฉฐ ์ฌ๊ธฐ์๋ ๊ธฐ๋ณธ ์์๋ง ํด๋์ค๊ฐ ์๋๋ผ ์ปจํ ์ด๋๊ฐ ๋ฉ๋๋ค. ์ด๋ฌํ ์์น์ ๋ฐ๋ฅด๋ฉด Kubernetes์ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ๋ชฉํ๋ฅผ ๋ ์ ์ถฉ์กฑํ๋ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ปจํ ์ด๋: Red Hat ์ ๊ทผ ๋ฐฉ์
์ค๋๋ ๊ฑฐ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๊ต์ ์ฝ๊ฒ ์ปจํ
์ด๋์ ํจํค์งํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Kubernetes์ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๋ซํผ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์
์ ํจ๊ณผ์ ์ผ๋ก ์๋ํํ๊ณ ์กฐ์ ํ๋ ค๋ฉด ์ถ๊ฐ์ ์ธ ๋
ธ๋ ฅ์ด ํ์ํฉ๋๋ค.
์๋์ ์ค๋ช
๋ ์์ด๋์ด์ ๊ธฐ์ด๋ ๋ฐฉ๋ฒ๋ก ์ด์์ต๋๋ค.
๋จ์ผ ๊ด์ฌ ์์น(SCP)
์ด ์์น์ ์ฌ๋ฌ ๋ฉด์์ ๋จ์ผ ์ฑ
์ ์์น๊ณผ ์ ์ฌํฉ๋๋ค.
SCP์์๋ "์ฑ ์"์ด๋ผ๋ ๋จ์ด ๋์ "์ฐ๋ ค"๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ฌ OOP ํด๋์ค์ ๋นํด ์ปจํ ์ด๋์ ๋ ๋์ ์์ค์ ์ถ์ํ์ ๋ ๋์ ๋ชฉ์ ์ ๋ํ๋ ๋๋ค. ๊ทธ๋ฆฌ๊ณ SRP์ ๋ชฉํ๊ฐ ๋จ ํ๋์ ๋ณ๊ฒฝ ์ด์ ๋ฅผ ๊ฐ๋ ๊ฒ์ด๋ผ๋ฉด SCP ๋ค์๋ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ๊ต์ฒดํ ์ ์๋ ๋ฅ๋ ฅ์ ํ์ฅํ๋ ค๋ ์๊ตฌ๊ฐ ์์ต๋๋ค. SRP๋ฅผ ๋ฐ๋ฅด๊ณ ๋จ์ผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ธฐ๋ฅ์ ์ผ๋ก ์์ ํ ๋ฐฉ์์ผ๋ก ์ด๋ฅผ ์ํํ๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ฉด ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ์์ ํด๋น ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
SCP ์์น์ ๊ฐ ์ปจํ ์ด๋๊ฐ ํ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ด๋ฅผ ์ ์ํํด์ผ ํ๋ค๊ณ ๋ช ์ํฉ๋๋ค. ๊ฒ๋ค๊ฐ ์ปจํ ์ด๋ ์ธ๊ณ์ SCP๋ OOP ์ธ๊ณ์ SRP๋ณด๋ค ๋ฌ์ฑํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค. ์ปจํ ์ด๋๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋์ ๋จ์ผ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด ํ๋ก์ธ์ค๋ ํ๋์ ๋จ์ผ ์์ ์ ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ปจํ ์ด๋ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ํ ๋ฒ์ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ ๊ฒฝ์ฐ ๋จ์ผ ์์ ์ปจํ ์ด๋๋ก ๋ถํ ํ๊ณ ์ฌ์ด๋์นด ๋ฐ ์ด๊ธฐํ ์ปจํ ์ด๋ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ํ๋์ ํฌ๋(์ปจํ ์ด๋ ํ๋ซํผ ๋ฐฐํฌ ๋จ์) ๋ด์ ๊ฒฐํฉํ ์ ์์ต๋๋ค. ๋ํ SCP๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ์ปจํ ์ด๋(์: ์น ์๋ฒ ๋๋ ๋ฉ์์ง ๋ธ๋ก์ปค)๋ฅผ ๋์ผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ง ๊ธฐ๋ฅ์ด ํ์ฅ๋๊ฑฐ๋ ํ์ฅ์ฑ์ด ๋ ๋ฐ์ด๋ ์ ์ปจํ ์ด๋๋ก ์ฝ๊ฒ ๊ต์ฒดํ ์ ์์ต๋๋ค.
๋์ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ์์น(HOP)
์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์งํ๊ณ ์คํํ๋ ํต์ผ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ ๋ธ๋๋ฐ์ค๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋ผ์ฐ๋ ์ปจํ ์ด๋์ธ ๊ฒฝ์ฐ ๋ฐํ์์ ํน์ API๋ฅผ ์ ๊ณตํ์ฌ ์ปจํ ์ด๋ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์ ์ ํ ์กฐ์น๋ฅผ ์ทจํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์์ผ๋ฉด ์ปจํ ์ด๋ ์ ๋ฐ์ดํธ ๋ฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ ์๋ํ๋ฅผ ํตํฉํ ์ ์์ผ๋ฉฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก ์ํํธ์จ์ด ์์คํ ์ ์์ ์ฑ๊ณผ ์ ์ฉ์ฑ์ด ์ ํ๋ฉ๋๋ค.
์ค์ ๋ก ์ปจํ
์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์๋ ์ต์ํ ํ์ฑ ํ
์คํธ ๋ฐ ์ค๋น ํ
์คํธ ๋ฑ ๋ค์ํ ์ ํ์ ์ํ ํ์ธ์ ์ํ API๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ ๋ง์ ์์
์ ์ํํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒฝ์ฐ ํด๋น ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Fluentd, Logstash ๋ฐ ๊ธฐํ ์ ์ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ ์ง๊ณ๋ฅผ ์ํด STDERR ๋ฐ STDOUT์ ํตํด ์ค์ํ ์ด๋ฒคํธ๋ฅผ ๋ก๊น
ํฉ๋๋ค. OpenTracing, Prometheus ๋ฑ๊ณผ ๊ฐ์ ์ถ์ ๋ฐ ๋ฉํธ๋ฆญ ์ปฌ๋ ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํตํฉ๋ ๊ฐ๋ฅํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ ํ โโ๋ธ๋๋ฐ์ค๋ก ์ทจ๊ธ๋ ์ ์์ง๋ง ์ต์์ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ๋ ค๋ฉด ํ๋ซํผ์ ํ์ํ ๋ชจ๋ API๊ฐ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.
์๋ช ์ฃผ๊ธฐ ์ ํฉ์ฑ ์์น(LCP)
LCP๋ HOP์ ์ ๋ฐ๋์ ๋๋ค. HOP์์๋ ์ปจํ ์ด๋๊ฐ ์ฝ๊ธฐ API๋ฅผ ํ๋ซํผ์ ๋ ธ์ถํด์ผ ํ๋ค๊ณ ๋ช ์ํ๊ณ ์์ง๋ง LCP์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋ซํผ์ ์ ๋ณด๋ฅผ ์๋ฝํ ์ ์์ด์ผ ํฉ๋๋ค. ๋์ฑ์ด ์ปจํ ์ด๋๋ ์ด๋ฒคํธ๋ฅผ ์์ ํ ๋ฟ๋ง ์๋๋ผ ์ ์, ์ฆ ์ด๋ฒคํธ์ ๋ฐ์ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ํ๋ซํผ์ API ์์ฑ์ ์ ๊ณตํ๊ธฐ ์ํ ์๊ตฌ ์ฌํญ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์๋ ์์น์ ์ด๋ฆ์ ๋๋ค.
ํ๋ซํผ์๋ ์ปจํ
์ด๋์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค์ํ ์ ํ์ ์ด๋ฒคํธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ์ ์ธ์ํ๊ณ ์ด๋ป๊ฒ ๋ฐ์ํ ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์
์์ฒด์ ๋ฌ๋ ค ์์ต๋๋ค.
์ผ๋ถ ์ด๋ฒคํธ๋ ๋ค๋ฅธ ์ด๋ฒคํธ๋ณด๋ค ๋ ์ค์ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ถฉ๋์ ์ ๊ฒฌ๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ ์ ํธ: ์ข ๋ฃ(SIGTERM) ๋ฉ์์ง๋ฅผ ์๋ฝํ๊ณ ์ข ๋ฃ ๋ฃจํด์ ์ต๋ํ ๋นจ๋ฆฌ ์์ํ์ฌ SIGTERM ๋ค์ ์ค๋ ์ ํธ: ์ข ๋ฃ(SIGKILL)๋ฅผ ํฌ์ฐฉํด์ผ ํฉ๋๋ค.
๋ํ PostStart ๋ฐ PreStop๊ณผ ๊ฐ์ ์ด๋ฒคํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ์ ์ค์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ ํ ์์ฒญ์ ์๋ตํ๋ ค๋ฉด ์ฝ๊ฐ์ ์ค๋น ์๊ฐ์ด ํ์ํ ์ ์์ต๋๋ค. ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ ๋ ํน๋ณํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ํด์ ํด์ผ ํฉ๋๋ค.
์ด๋ฏธ์ง ๋ถ๋ณ์ฑ ์์น(IIP)
์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ํ๊ฒฝ์์ ์คํ๋๋๋ผ๋ ๊ตฌ์ถ ํ ๋ณ๊ฒฝ๋์ง ์์ ์ํ๋ก ์ ์ง๋์ด์ผ ํ๋ค๋ ๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์๋ค์ฌ์ง๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ฐํ์ ์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๋ฅผ ์ธ๋ถํํ๊ณ (์ฆ, ์ด๋ฅผ ์ํด ์ธ๋ถ ๋๊ตฌ๋ฅผ ์ฌ์ฉ) ๊ฐ ํ๊ฒฝ์ ๋ํด ๊ณ ์ ํ ์ปจํ ์ด๋๋ฅผ ์์ ํ๊ฑฐ๋ ์์ฑํ๋ ๋์ ์ธ๋ถ ๋ฐํ์๋ณ ๊ตฌ์ฑ์ ์์กดํด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๊ฒฝํ ํ์๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ๊ณ ์ฌ์ฉ๋ ๋ชจ๋ ํ๊ฒฝ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ IT ์์คํ ์ ๊ด๋ฆฌํ ๋ ์๋ฒ์ ์ธํ๋ผ์ ๋ถ๋ณ์ฑ ์์น์ด๋ผ๋ ์ ์ฌํ ์์น์ด ์ฌ์ฉ๋ฉ๋๋ค.
IIP์ ๋ชฉํ๋ ๋ค์ํ ๋ฐํ์ ํ๊ฒฝ์ ๋ํ ๋ณ๋์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ์์ฑ์ ๋ฐฉ์งํ๊ณ ์ ์ ํ ํ๊ฒฝ๋ณ ๊ตฌ์ฑ๊ณผ ํจ๊ป ์ด๋์์๋ ๋์ผํ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด ์์น์ ๋ฐ๋ฅด๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ์ ๋กค๋ฐฑ ๋ฐ ๋กคํฌ์๋์ ๊ฐ์ ํด๋ผ์ฐ๋ ์์คํ ์๋ํ์ ๊ด์ ์์ ์ค์ํ ์ฌ๋ก๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
๊ณต์ ์ผํ์ฉ ์์น(PDP)
์ปจํ ์ด๋์ ๊ฐ์ฅ ์ค์ํ ํน์ง ์ค ํ๋๋ ์์์ฑ์ ๋๋ค. ์ฆ, ์ปจํ ์ด๋ ์ธ์คํด์ค๋ ์์ฑ ๋ฐ ์ญ์ ๊ฐ ์ฉ์ดํ๋ฏ๋ก ์ธ์ ๋ ์ง ๋ค๋ฅธ ์ธ์คํด์ค๋ก ์ฝ๊ฒ ๊ต์ฒดํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ต์ฒด์๋ ์๋น์ค ๊ฐ๋ฅ์ฑ ํ ์คํธ ์คํจ, ์ ํ๋ฆฌ์ผ์ด์ ํ์ฅ, ๋ค๋ฅธ ํธ์คํธ๋ก์ ์ด์ , ํ๋ซํผ ๋ฆฌ์์ค ๊ณ ๊ฐ ๋๋ ๊ธฐํ ์ํฉ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ ์ ์์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ปจํ
์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ผ๋ถ ์ธ๋ถ ์๋จ์ ์ฌ์ฉํ์ฌ ์ํ๋ฅผ ์ ์งํ๊ฑฐ๋ ์ด๋ฅผ ์ํด ์ค๋ณต์ฑ์ ๊ฐ์ถ ๋ด๋ถ ๋ถ์ฐ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น ๋ฅด๊ฒ ์์ํ๊ณ ๋น ๋ฅด๊ฒ ์ข
๋ฃํด์ผ ํ๋ฉฐ ๊ฐ์์ค๋ฌ์ด ์น๋ช
์ ์ธ ํ๋์จ์ด ์ค๋ฅ์ ๋๋นํด์ผ ํฉ๋๋ค.
์ด ์์น์ ๊ตฌํํ๋ ๋ฐ ๋์์ด ๋๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ปจํ ์ด๋๋ฅผ ์๊ฒ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ ์ปจํ ์ด๋ ์ธ์คํด์ค๋ฅผ ์์ํ ํธ์คํธ๋ฅผ ์๋์ผ๋ก ์ ํํ ์ ์์ผ๋ฏ๋ก ์ปจํ ์ด๋๊ฐ ์์์๋ก ๋ ๋น ๋ฅด๊ฒ ์์๋ฉ๋๋ค. ์ฆ, ๋คํธ์ํฌ๋ฅผ ํตํด ๋์ ํธ์คํธ์ ๋ ๋น ๋ฅด๊ฒ ๋ณต์ฌ๋ฉ๋๋ค.
์์ฒด ๋ด์ ์์น(S-CP)
์ด ์๋ฆฌ์ ๋ฐ๋ผ ์กฐ๋ฆฝ ๋จ๊ณ์์ ํ์ํ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ปจํ ์ด๋์ ํฌํจ๋ฉ๋๋ค. ์ปจํ ์ด๋๋ ์์คํ ์ ์์ Linux ์ปค๋๋ง ์๋ค๋ ๊ฐ์ ํ์ ๊ตฌ์ถ๋์ด์ผ ํ๋ฏ๋ก ํ์ํ ๋ชจ๋ ์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ปจํ ์ด๋ ์์ฒด์ ๋ฐฐ์นํด์ผ ํฉ๋๋ค. ๋ํ ํด๋น ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฐํ์, ์ ํ๋ฆฌ์ผ์ด์ ํ๋ซํผ(ํ์ํ ๊ฒฝ์ฐ), ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๋์ ํ์ํ ๊ธฐํ ์ข ์์ฑ ๋ฑ๋ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
ํ๊ฒฝ๋ง๋ค ๋ค๋ฅด๋ฉฐ ๋ฐํ์ ์ Kubernetes ConfigMap ๋ฑ์ ํตํด ์ ๊ณต๋์ด์ผ ํ๋ ๊ตฌ์ฑ์๋ ์์ธ๊ฐ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ฌ๋ฌ ์ปจํ ์ด๋ํ๋ ๊ตฌ์ฑ ์์(์: ์ปจํ ์ด๋ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ ๋ณ๋ DBMS ์ปจํ ์ด๋)๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. S-CP ์์น์ ๋ฐ๋ฅด๋ฉด ์ด๋ฌํ ์ปจํ ์ด๋๋ฅผ ํ๋๋ก ๊ฒฐํฉํด์๋ ์ ๋๋ฉฐ, DBMS ์ปจํ ์ด๋์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์์ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋์๋ ์น ์ด์์ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋๋๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ, ๋์ผํ ์น ์๋ฒ. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐํ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋๋ DBMS ์ปจํ ์ด๋์ ์์กดํ๊ณ ํ์์ ๋ฐ๋ผ ์ด์ ์ก์ธ์คํฉ๋๋ค.
๋ฐํ์ ์ ํ ์์น(RCP)
S-CP ์์น์ ์ปจํ ์ด๋๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฏธ์ง ๋ฐ์ด๋๋ฆฌ์ ํฌํจํด์ผ ํ๋ ๋ด์ฉ์ ์ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ปจํ ์ด๋๋ ํ์ผ ํฌ๊ธฐ๋ผ๋ ํ ๊ฐ์ง ํน์ฑ๋ง ๊ฐ๋ ๋จ์ํ "๋ธ๋ ๋ฐ์ค"๊ฐ ์๋๋๋ค. ์คํ ์ค์ ์ปจํ ์ด๋๋ ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ์, CPU ์๊ฐ, ๊ธฐํ ์์คํ ๋ฆฌ์์ค ๋ฑ ๋ค๋ฅธ ์ฐจ์์ ์ทจํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ปจํ
์ด๋๊ฐ ์์คํ
๋ฆฌ์์ค์ ๋ํ ์๊ตฌ ์ฌํญ์ ์ ๊ฑฐํ๊ณ ์ด๋ฅผ ํ๋ซํผ์ผ๋ก ์ ์กํด์ผ ํ๋ RCP ์์น์ด ์ ์ฉํฉ๋๋ค. ๊ฐ ์ปจํ
์ด๋์ ๋ฆฌ์์ค ํ๋กํ(ํ์ํ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋คํธ์ํฌ ๋ฐ ๋์คํฌ ๋ฆฌ์์ค์ ์)์ ํตํด ํ๋ซํผ์ ์์ฝ ๋ฐ ์๋ ํฌ๊ธฐ ์กฐ์ ์ ์ต์ ์ผ๋ก ์ํํ๊ณ , IT ์ฉ๋์ ๊ด๋ฆฌํ๊ณ , ์ปจํ
์ด๋์ ๋ํ SLA ์์ค์ ์ ์งํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋์ ๋ฆฌ์์ค ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ฒ ์ธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฒด ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋์ง ์๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฆฌ์์ค ๋ถ์กฑ์ด ๋ฐ์ํ ๋ ํ๋ซํผ์ด ์ด๋ฅผ ์ข ๋ฃํ๊ฑฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ชฉ๋ก์ ํฌํจํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
ํด๋ผ์ฐ๋ ์ฐ์ ์ ๋ํด ์ด์ผ๊ธฐํ ๋ ์ฐ๋ฆฌ๋ ์์
๋ฐฉ์์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค.
์์์ ์ฐ๋ฆฌ๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ์ํ ๊ณ ํ์ง ์ปจํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ก ์ ๊ธฐ๋ฐ์ ์ค์ ํ๋ ์ฌ๋ฌ ๊ฐ์ง ์ผ๋ฐ ์์น์ ๊ณต์ํํ์ต๋๋ค.
์ด๋ฌํ ์ผ๋ฐ ์์น ์ธ์๋ ์ปจํ ์ด๋ ์์ ์ ์ํ ๊ณ ๊ธ ๋ฐฉ๋ฒ๊ณผ ๊ธฐ์ ์ด ์ถ๊ฐ๋ก ํ์ํฉ๋๋ค. ๋ํ ๋ณด๋ค ๊ตฌ์ฒด์ ์ด๊ณ ์ํฉ์ ๋ฐ๋ผ ์ ์ฉ(๋๋ ์ ์ฉํ์ง ์์)ํด์ผ ํ๋ ๋ช ๊ฐ์ง ๊ฐ๋จํ ๊ถ์ฅ ์ฌํญ์ด ์์ต๋๋ค.
- ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ด์ญ์์ค. ์์ ํ์ผ์ ์ญ์ ํ๊ณ ๋ถํ์ํ ํจํค์ง๋ฅผ ์ค์นํ์ง ๋ง์ญ์์ค. ์ปจํ ์ด๋ ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ ๋นจ๋ฆฌ ์กฐ๋ฆฝ๋์ด ๋คํธ์ํฌ๋ฅผ ํตํด ๋์ ํธ์คํธ์ ๋ณต์ฌ๋ฉ๋๋ค.
- ์์์ ์ฌ์ฉ์ ID์ ์ค์ ์ ๋ก๋๋ค. sudo ๋ช ๋ น์ด๋ ํน์ ์ฌ์ฉ์ ID๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์์ํ์ง ๋ง์ธ์.
- ์ค์ํ ํฌํธ ํ์: ๋ฐํ์์ ํฌํธ ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์์ง๋ง EXPOSE ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํฌํธ ๋ฒํธ๋ฅผ ์ง์ ํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ค๋ฅธ ์ฌ๋๊ณผ ํ๋ก๊ทธ๋จ์ด ์ด๋ฏธ์ง๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ณผ๋ฅจ์ ์๊ตฌ ๋ฐ์ดํฐ ์ ์ฅ: ์ปจํ ์ด๋๊ฐ ํ๊ธฐ๋ ํ์๋ ๋จ์ ์์ด์ผ ํ๋ ๋ฐ์ดํฐ๋ ๋ณผ๋ฅจ์ ๊ธฐ๋ก๋์ด์ผ ํฉ๋๋ค.
- ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ ์์ฑ: ํ๊ทธ, ๋ผ๋ฒจ ๋ฐ ์ฃผ์์ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ๊ฐ์ฌํ ๊ฒ์ ๋๋ค.
- ํธ์คํธ ๋ฐ ์ด๋ฏธ์ง ๋๊ธฐํ: ์ผ๋ถ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์๊ฐ์ด๋ ์ปดํจํฐ ID์ ๊ฐ์ ํน์ ์์ฑ์ ๋ํด ํธ์คํธ์ ๋๊ธฐํํ๊ธฐ ์ํด ์ปจํ ์ด๋๊ฐ ํ์ํฉ๋๋ค.
- ๊ฒฐ๋ก ์ ์ผ๋ก, ์์ ๋์ด๋ ์์น์ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๋ ๋ฐ ๋์์ด ๋๋ ํ
ํ๋ฆฟ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณต์ ํฉ๋๋ค.
www.slideshare.net/luebken/container-patterns
docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices
docs.projectatomic.io/container-best-practices
docs.openshift.com/enterprise/3.0/creating_images/guidelines.html
www.usenix.org/system/files/conference/hotcloud16/hotcloud16_burns.pdf
leanpub.com/k8spatterns
12factor.net
11 ์ 11.00 ์ผ XNUMX
๋น์ ์ด ๋ฐฐ์ธ ๋ด์ฉ:
- ๋ถ๋ณ์ Red Hat Enterprise Linux CoreOS
- OpenShift ์๋น์ค ๋ฉ์
- ์ฐ์ฐ์ ํ๋ ์์ํฌ
- K๋ค์ดํฐ๋ธ ํ๋ ์์ํฌ
์ถ์ฒ : habr.com