DevOps ๋?
DevOps = Development(๊ฐ๋ฐ+ํ ์คํธ) + Operations(์ด์)
๊ฐ๋ฐ๊ณผ ์ด์์ ํฉ์ฑ์ด. ์ด์ ํ๊ฒฝ์์๋ถํฐ ๊ฐ๋ฐ, ๋ฐฐํฌ๊น์ง ์งํ๋๋ ํ๋ก์ธ์ค์ ์๋๋ฅผ ๋์ด๋ ์ ๊ทผ๋ฐฉ์์ ์๋ฏธ.
→ ์ด๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์ ์ฉํ๋ ค๋ฉด ๊ฐ๋ฐํ๊ณผ ์ด์ํ ๊ฐ์ ์ฅ๋ฒฝ์ ํ๋ฌผ๊ณ ์์ฃผ ํ๋ ฅํด์ผํจ. ์ด๋ฅผ ์ ๋ฆฌํด๋ ๋ชจ๋ธ์ด CALMS ๋ชจ๋ธ.
DevOps - CALMS Model
์ด ๊ฐ๋ ์ ๊ฒฝ์ฐ ์ต์ด์๋ ๋น๊ต์ ๊ฐ๋จํ ๊ฐ๋ ์ผ๋ก ๋ฌธํ(Culture)/์๋ํ(Automation)/์ธก์ (Measure)/๊ณต์ (Sharing) ๋ฅผ ์์น์ DevOps์ 4๊ฐ์ง ํต์ฌ์์ญ์ผ๋ก ๋ณด์์ผ๋, ์ถํ Lean ๊ฐ๋ ์ด ์ถ๊ฐ๋์ด CALMS Model๋ก ๋ฐ์ ํ์์.
์กฐ์ง์ DevOps ๋ด์ฌํ๋ฅผ ํ๊ฐํ๊ธฐ ์ํ ๋ชจ๋ธ๋ก ๋ง์ด ์ฌ์ฉ. : ๊ฐ ์์ญ๋ณ๋ก ์คํ๋๋ practice ์์ค์ ์ง๋จํ์ฌ ์ฑ์๋ ๋ ๋ฒจ์ ํ๋จํ๊ณ , ๋ณด๋ค ์ฑ์ํ ๋จ๊ณ๋ก ์ง์ ํ๊ธฐ ์ํ practice๋ฅผ ๋ณด๊ฐํ๋ ํ์์ผ๋ก ์ฌ์ฉ
DevOps - 4 AREA ์ ๊ทผ ๋ฐฉ์
Area 1 : ๊ฐ๋ฐ ํ๋ก์ ํธ์ ๊ฒฐ๊ณผ๋ฌผ์ ์ด์์ผ๋ก ์ ํํ๋ ์์ญ
Area 2 : ์ด์์ ์ง์๊ณผ ์ ๋ณด๊ฐ ๊ฐ๋ฐํ(ํ๋ก์ ํธ)๋ก ์ ๋ฌ๋๋ ์์ญ. ๋ถํ์ํ ์ฐจ๋จ์ ํด์ ํ๊ณ ์ด์์์ ์์ฐ๋ ์ ๋ณด๋ค์ด One-Stop Access ๋๋๋ก ์ ์ฑ ์ ๋ง๋ค์ด์ผ ํจ
Area 3 : ํ๋ก์ ํธ์์ ์์ฐ๋ ๋ชจ๋ ์ง์์ด ์ด์์ ์ฅ์ฐฉ๋๋๋ก ํ๋ ์์ญ. Project Open์ ์ํด ๋๋ ์ธ์์ธ๊ณ ๋จ๊ฒ์์ ์ด์์ ์ ๋ฌ๋๋ ๋จ์ ์ ๋ณด๋ฅผ ๋์ด์๋ ๊ฒ์ผ๋ก, ํ๋ก์ ํธ ํ์ด ์ด์๊ณผ ๊ณต๋ ์ฑ ์์ ์ง๋ ์์ค๊น์ง๋ฅผ ์๋ฏธ.
Area 4 : ํ๋ก์ ํธ ์์๋ถํฐ ์ด์์ด ๊ด์ฌํ๋ ์์ญ
์ด ์ ๊ทผ๋ฒ์ "๊ณต๋์ ์ดํด๊ด๊ณ๋ฅผ ๊ฐ๊ณ ๊ณต๋์ ์ฑ ์์ ๊ฐ๋๋ค"๋ ๋ฉด์์ ๋งค์ฐ ์ด์์ ์ด์ง๋ง, ์ค์ ์ธ๊ณ์์ ์คํ์ด ์ด๋ ค์ ๋ณด์ธ๋ค..
๊ธฐํ 3ways ์ ๊ทผ๋ฐฉ์, 5 Plays ์ ๋ต๋ฑ์ ์์๋ณด๋ ค๋ฉด ...๋๋ณด๊ธฐ
CI/CD ๋?
1. CI (Continuous Integration)
์ง์์ ์ธ ํตํฉ. ๊ฐ๋ฐ์ ์งํํ๋ฉด์๋ ํ์ง์ ๊ด๋ฆฌํ ์ ์๋๋ก ํ๋ ๊ฒ.
→ ์ฌ๋ฌ ๋ช ์ด ํ๋์ ์ฝ๋์ ๋ํด์ ์์ ์ ์งํํด๋ ์ง์์ ์ผ๋ก ํตํฉํ๋ฉด์ ๊ด๋ฆฌํ ์ ์์์ ์๋ฏธ
* CI์ ๊ฐ๋จํ ์์
1) ๊ฐ๋ฐ์๊ฐ ๊ตฌํํ ์ฝ๋๋ฅผ ๊ธฐ์กด ์ฝ๋์ ๋ณํฉํ๋ค.
2) ๋ณํฉ๋ ์ฝ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๊ณ ๋น๋๋๋์ง ๊ฒ์ฆํ๋ค.
3) ํ ์คํธ ๊ฒฐ๊ณผ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์์ ํ๊ณ ๋ค์ 1๋ก ๋์๊ฐ๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ๋ฐฐํฌ๋ฅผ ์งํ.
* ๋ถ์ด๋ค๋๋ ํค์๋ : "์๋ํ" - ๋ณดํต github ๊ฐ์ ๊ฒ์ ์ด์ฉํ์ฌ CI๋ฅผ ์๋ํํจ.
ํ์๊ด๋ฆฌ ํด์ ์์ ํ ์ฝ๋๋ฅผ ํตํฉํด๋๋ฉด, ๋น๋ ๋ฐ ํ ์คํธ๋ ์๋์ผ๋ก ์งํ๋๋ฏ๋ก, ๋ค์ ๋ ๋ฒ๊ทธ ๋ฐ์๋ง ์ก์ผ๋ฉด ๋จ.
* CI์ ์ฅ์
1) ์ฝ๋ ๊ฒ์ฆ์ ๋ค์ด๊ฐ๋ ์๊ฐ์ด ์ค์ด๋ฌ
2) ๊ฐ๋ฐ ํธ์์ฑ์ด ์ฆ๊ฐํจ
3) ํญ์ ํ ์คํธ ์ฝ๋๋ฅผ ํต๊ณผํ ์ฝ๋๋ง์ด repo์ ์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์, ์ข์ ์ฝ๋ ํ๋ฆฌํฐ๋ฅผ ์ ์งํ ์ ์์.
2. CD (Continuous Deployment)
์ง์์ ์ธ ๋ฐฐํฌ. ์ํํธ์จ์ด๊ฐ ํญ์ ์ ๋ขฐ ๊ฐ๋ฅํ ์์ค์์ ๋ฐฐํฌ๋ ์ ์๋๋ก ๊ด๋ฆฌํ์๋ ๊ฐ๋ .
์ง์์ ์ธ ์ ๊ณต(Continuous Delivery)๋ก ์ฌ์ฉ๋๊ธฐ๋ ํจ.
- ์ง์์ ์ธ ์ ๊ณต์ CI๋ฅผ ํตํด์ ์๋ก์ด ์์ค์ฝ๋์ ๋น๋์ ํ ์คํธ ๋ณํฉ๊น์ง ์ฑ๊ณต์ ์ผ๋ก ์งํ๋์๋ค๋ฉด, ๋น๋์ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ github์ ๊ฐ์ ์ ์ฅ์์ ์ ๋ก๋ํ๋ ๊ฒ์ ์๋ฏธ
- ์ง์์ ๋ฐฐํฌ๋ ์ด๋ ๊ฒ ์ฑ๊ณต์ ์ผ๋ก ๋ณํฉ๋ ๋ด์ญ์ ์ ์ฅ์ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฐฐํฌํ๊ฒฝ๊น์ง ๋ฆด๋ฆฌ์ฆํ๋ ๊ฒ์ ์๋ฏธ
* CD์ ์ฅ์
1) ๊ฐ๋ฐ์๋ ๋ฐฐํฌ๋ณด๋ค๋ ๊ฐ๋ฐ์ ๋์ฑ ์ ๊ฒฝ ์ธ ์ ์๋๋ก ๋์์ค
2) ๊ฐ๋ฐ์๊ฐ ์ ํด๋ฆญ์ผ๋ก ์์์ ์์ด ๋น๋, ํ ์คํธ, ๋ฐฐํฌ๊น์ง์ ์๋ํ๋ฅผ ํ ์ ์์
DevOps ์ CI/CD ์ ์ฐจ์ด
DevOps ๋ ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉํ์ฌ ํ๋ก์ธ์ค์ ์๋๋ฅผ ๋์ด๋ ์ ๊ทผ ๋ฐฉ์
CI/CD ๋ ์ง์์ ์ผ๋ก ํตํฉ·ํ ์คํธ·๋ฐฐํฌ๋ฅผ ํ๊ณ ์ด ํ๋ฆ์ ์๋ํํ๋ ๊ฒ
→ ๋น์ทํ ๊ฐ๋ ์ด๋ ๊ฒฐ๊ตญ ๋ฐฉ๋ฒ๋ก ์ ์ผ๋ก๋ DevOps ๋ CI/CD ๋ฅผ ๋น ๋ฅด๊ณ ์ง์์ ์ด๊ฒ ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ผ๊ณ ์ดํดํ๋ค ๋๋...