โ์ง์์ ํตํฉ, ์ง์์ ์ ๊ณต(๋ฐฐํฌ)โ
CI/CD๋?
- Continuous Integration ์ง์์ ํตํฉ
- Continuous Delivery(Deployment) ์ง์์ ์ ๊ณต(๋ฐฐํฌ)
: ์ดํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ ~ ๋ฐฐํฌ๊น์ง, ์ฌ์ฉ์์๊ฒ ๋น๋ฒํ๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ์๋ํ
ํ๋ ๊ฒ!
Continuous Integration
: ์ง์์ ํตํฉ
๋ฒ๊ทธ์์ ์ด๋ ์๊ธฐ๋ฅ์ด ๋ฉ์ธ repository์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋น๋, ํ
์คํธ ๋์ด์ ๋จธ์ง
๋๋ ๋ฐฉ์.
- ์ฝ๋๋ณ๊ฒฝ์ฌํญ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋น๋ฒํ๊ฒ ๋จธ์งํด์ผํ๋ค
- ํตํฉ์ ์ํ ๋จ๊ณ(๋น๋,ํ ์คํธ,๋จธ์ง)์ ์๋ํ
๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
- ์ฃผ๊ธฐ์ ์ผ๋ก ๋จธ์งํ๊ธฐ ๋๋ฌธ์ ์ถฉ๋์ ํผํ ์ ์๋ค.
- ๋จธ์ง๋๋ ๋ชจ๋ ์ฝ๋๋ ์๋ ๋น๋/์๋ ํ ์คํธ๋๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฒฐํจ์ด ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌ๋จ.
๋ฒ๊ทธ ์์ ์ฉ์ด
- ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ธฐ ๋๋ฌธ์ ๊ฒฐํจ ์์ ์ด ๋น ๋ฅด๋ค
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฝ๋์ ํ๋ฆฌํฐ ํฅ์
Continuous Delivery(Deployment)
: ์ง์์ ์ ๊ณต(๋ฐฐํฌ)
- CI๋ฅผ ํตํด์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋จธ์ง๋๊ณ ๋ณ๊ฒฝ๋ ์ฌํญ๋ค์ด ์๋์ผ๋ก ๋น๋๊ฐ ๋๊ณ , ํ ์คํธ๊ฐ ๋์๋ค๋ฉด
-
prepare Release
๋ฐฐํฌ ์ค๋น๊ณผ์
์ ๊ฑฐ์น ๋ค -
continuous delivery
์ ๊ฒฝ์ฐ- ์ค๋น๋ release๊ฐ ๋ฌธ์ ์๋์ง ๊ฒ์ฆ ๋ค์
์๋์
์ผ๋ก
-
continuous deployment
์ ๊ฒฝ์ฐ- release๊ฐ ์ค๋น๋์๋ง์
์๋์
์ผ๋ก
Deploy Release
ํ์ฌ๋ง๋ค continuous delivery๋ฅผ ์ด์ฉํด์ ์ต์ข
๋จ๊ณ๋ ์๋์ ์ผ๋ก release
ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ ,
continuous deployment๋ก release๊น์ง ๋ชจ๋ ๊ณผ์ ์ ์๋ํ
๋ฅผ ํ๋ ๊ฒฝ์ฐ๋ ์๋ค
CI/CD pipe line
CI/CD๋ ์๋ฒฝํ ๋ถ๋ฆฌ๋ ๊ฒ์ด ์๋, ๋๋ถ๋ถ ํ์ฌ์์ CI/CD๋ฅผ ๊ฑฐ์ณ์ ๋ฐฐํฌํ๋ค.
CI/CD๋ฅผ ์ํ ํด๋ก๋ Jenkins, Buildkite, GitHub Actions ๋ฑ ๋ง์ ๊ฒ์ด ์์!