๋์๋ณด๋ ํ์ดํ๋ผ์ธ, ๋ณํฉ๋ ๊ฒฐ๊ณผ ํ์ดํ๋ผ์ธ ๋ฐ ๋ณํฉ ์์ฒญ์ ์ฌ๋ฌ ์ค ์ ์์ด ํฌํจ๋ GitLab 11.10.
๋ค์ํ ํ๋ก์ ํธ์ ํ์ดํ๋ผ์ธ ์ฑ๋ฅ์ ๋ํ ํธ๋ฆฌํ ์ ๋ณด
GitLab์ DevOps ์๋ช
์ฃผ๊ธฐ์ ๋ํ ๊ฐ์์ฑ์ ์ง์์ ์ผ๋ก ๋์ด๊ณ ์์ต๋๋ค. ์ด๋ฒ ํธ์๋
์ด๋ ๋จ์ผ ํ๋ก์ ํธ์ ํ์ดํ๋ผ์ธ์ ์ฐ๊ตฌํ๋ ๊ฒฝ์ฐ์๋ ํธ๋ฆฌํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํนํ ์ ์ฉํฉ๋๋ค.
๋ณํฉ๋ ๊ฒฐ๊ณผ๋ฅผ ์ํ ํ์ดํ๋ผ์ธ ์คํ
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์๋ณธ ๋ฐ ๋์ ๋ถ๊ธฐ๊ฐ ๊ฐ๋ผ์ง๊ณ ๋ณ๋๋ก ๋์ฒํ์ง๋ง ํจ๊ป ์๋ํ์ง ์๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด์ ํ ์ ์์ต๋๋ค
ํ์ ์ ๋์ฑ ์ต์ ํํ์ธ์
GitLab 11.10์๋ ์ํํ ํ์
๊ณผ ๋จ์ํ๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ํ ๋ ๋ง์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์์
์ฌ๋ฌ๋ถ์ ํผ๋๋ฐฑ๊ณผ ์ ์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ ๋ถ๋ ์๋๋๋คโฆ
์ด๋ฒ ๋ฆด๋ฆฌ์ค์๋ ๋๋ผ์ด ๊ธฐ๋ฅ์ด ๋๋ฌด ๋ง์ต๋๋ค.
์ด๋ฌ์ ๊ฐ์ฅ ์์คํ ์ง์(
MVP ) โ ๋ ธ๊ตฌ์น ํ์ฟ ์ผ์ด๋ฒ ๋ฌ ๊ฐ์ฅ ์์คํ ์ง์์ ๋ ธ๊ตฌ์น ํ์ฟ ์ผ ๋(
๋ ธ๊ตฌ์น ํ์ฟ ์ผ ). ํ์ฟ ์ผGitLab์ ์๊ด์ ์ํด ์ข์ ์ผ์ ํ์ต๋๋ค : ๋ฒ๊ทธ ์์ , ๋ฐฑ์๋์ ํ๋ก ํธ์๋์ ๋จ์ ๋ณด์, ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ฐ์ . ๊ฐ์ฌํฉ๋๋ค!
GitLab 11.10์ ์ฃผ์ ๊ธฐ๋ฅ
์ ์ดํ์ ํ์ดํ๋ผ์ธ
ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋
GitLab์ ๋์๋ณด๋์๋ ์ ์ฒด GitLab ์ธ์คํด์ค์ ํ๋ก์ ํธ์ ๋ํ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค. ๊ฐ๋ณ ํ๋ก์ ํธ๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ์ถ๊ฐํ๊ณ ๊ด์ฌ ์๋ ํ๋ก์ ํธ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ํ์ดํ๋ผ์ธ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ๋์๋ณด๋์ ์ถ๊ฐํ์ต๋๋ค. ์ด์ ๊ฐ๋ฐ์๋ ํ์ํ ๋ชจ๋ ํ๋ก์ ํธ์ ํ์ดํ๋ผ์ธ ๊ธฐ๋ฅ์ ํ๋์ ์ธํฐํ์ด์ค์์ ๋ณผ ์ ์์ต๋๋ค.
๋ณํฉ๋ ๊ฒฐ๊ณผ๋ฅผ ์ํ ํ์ดํ๋ผ์ธ
ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋
์ง์์ ์ผ๋ก ์์ค ๋ธ๋์น ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ํธ์ํ์ง ์๋ ํ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์ค ๋ธ๋์น๊ฐ ๋์ ๋ธ๋์น์์ ๋ถ๊ธฐ๋๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ค ๋ฐ ๋์ ๋ธ๋์น ํ์ดํ๋ผ์ธ์ "๋ น์"์ด๊ณ ๋ณํฉ ์ถฉ๋์ ์์ง๋ง ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๋ณํฉ์ด ์คํจํฉ๋๋ค.
๋ณํฉ ์์ฒญ ํ์ดํ๋ผ์ธ์ด ์์ค ๋ฐ ๋์ ๋ธ๋์น์ ๋ณํฉ ๊ฒฐ๊ณผ๊ฐ ํฌํจ๋ ์ ๋งํฌ๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ฉด ํด๋น ๋งํฌ์์ ํ์ดํ๋ผ์ธ์ ์คํํ๊ณ ์ ์ฒด ๊ฒฐ๊ณผ๊ฐ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๋ณํฉ ์์ฒญ ํ์ดํ๋ผ์ธ(๋ชจ๋ ์ฉ๋)์ ์ฌ์ฉํ๊ณ ๋น๊ณต๊ฐ GitLab ์คํ๊ธฐ ๋ฒ์ 11.8 ์ดํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
์ฌ๋ฌ ์ค์ ๋ํ ๋ณ๊ฒฝ ์ ์
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๋ณํฉ ์์ฒญ์ ํจ๊ป ์์
ํ ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์๋ฃจ์
์ ์ ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. GitLab 11.6๋ถํฐ ์ฐ๋ฆฌ๋ ์ง์ํฉ๋๋ค
๋ฒ์ 11.10์์๋ ๋ณํฉ ์์ฒญ diff ์ฃผ์์ด ์ฌ๋ฌ ์ค์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ํ ์ ์์ผ๋ฉฐ, ์๋ ๋ถ๊ธฐ์ ๋ํ ์ฐ๊ธฐ ๊ถํ์ด ์๋ ์ฌ๋์ ๋๊ตฌ๋ ํด๋ฆญ ํ ๋ฒ์ผ๋ก ์ด๋ฅผ ์๋ฝํ ์ ์์ต๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ ๋๋ถ์ ์ด์ ๋ฒ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํผํ ์ ์์ต๋๋ค.
ํ ์์ญ์ ๋ฐ๋ก๊ฐ๊ธฐ
ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋
๋์ผํ ๋ฒ์์ ๋ ์ด๋ธ์ ์ฌ์ฉํ๋ฉด ํ์ ์ฌ์ฉ์ ์ ์ ํ๋ ๋๋ ์ฌ์ฉ์ ์ ์ ์ํฌํ๋ก ์ํ๊ฐ ์๋ ์๋๋ฆฌ์ค์ ๋ฌธ์ , ๋ณํฉ ์์ฒญ ๋๋ ์ํฝ์ ์ํธ ๋ฐฐํ์ ์ธ ๋ ์ด๋ธ(๋์ผํ ๋ฒ์ ๋ด)์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ ์ด๋ธ ์ ๋ชฉ์ ํน์ ์ฝ๋ก ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค.
ํจ์๊ฐ ๋์์ผ๋ก ์ผ๋ ํ๋ซํผ์ ์ด์ ์ฒด์ ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ์์
์ ์ฌ์ฉ์ ์ ์ ํ๋๊ฐ ํ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ ์์
์ ํ๋์ ํ๋ซํผ์๋ง ๊ด๋ จ๋์ด์ผ ํฉ๋๋ค. ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค platform::iOS
, platform::Android
, platform::Linux
๊ทธ๋ฆฌ๊ณ ํ์์ ๋ฐ๋ผ ๊ธฐํ. ์ด๋ฌํ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ์์
์ ์ ์ฉํ๋ฉด ๋ค์์ผ๋ก ์์ํ๋ ๋ค๋ฅธ ๊ธฐ์กด ๋ฐ๋ก๊ฐ๊ธฐ๊ฐ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค. platform::
.
๋จ์ถํค๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. workflow::development
, workflow::review
ะธ workflow::deployed
, ํ์ ์์
ํ๋ฆ ์ํ๋ฅผ ๋ํ๋
๋๋ค. ์์
์ ์ด๋ฏธ ๋ฐ๋ก๊ฐ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ workflow::development
, ๊ฐ๋ฐ์๋ ์์
์ ์คํ
์ด์ง๋ก ์ฎ๊ธฐ๊ณ ์ถ์ดํฉ๋๋ค. workflow::review
, ์๋ก์ด ๋จ์ถํค์ ์ด์ ๋จ์ถํค๋ฅผ ์ ์ฉํ ๋ฟ์
๋๋ค(workflow::development
)์ ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค. ํ์ ์ํฌํ๋ก๋ฅผ ๋ํ๋ด๋ ์์
๋ณด๋์ ๋ฐ๋ก ๊ฐ๊ธฐ ๋ชฉ๋ก ๊ฐ์ ์์
์ ์ด๋ํ ๋ ์ด ๋์์ด ์ด๋ฏธ ์กด์ฌํฉ๋๋ค. ์ด์ ์์
๋ณด๋๋ฅผ ์ง์ ์ฌ์ฉํ์ง ์๋ ํ ๊ตฌ์ฑ์์ ์์
์์ฒด์์ ์ํฌํ๋ก ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๋์ฑ ์ฒ ์ ํ๊ฒ ์ ๋ฆฌํฉ๋๋ค.
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ผ๋ฐ์ ์ผ๋ก CI ํ์ดํ๋ผ์ธ๊ณผ ํจ๊ป ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ๋ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋จ์ผ ํ๊ทธ์ ํธ์ํฉ๋๋ค. Docker์ ๋ฐฐํฌ ๊ตฌํ์ผ๋ก ์ธํด ๊ธฐ๋ณธ ๋์์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์์คํ
์ ์ ์ฅํ๋ ๊ฒ์ด์ง๋ง ๊ฒฐ๊ตญ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค. ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ -m
ั registry-garbage-collect
์ ์ฌ์ฉํ๋ฉด ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ๋น ๋ฅด๊ฒ ์ญ์ ํ๊ณ ๊ท์คํ ๊ณต๊ฐ์ ํ๋ณดํ ์ ์์ต๋๋ค.
์ถ๊ฐ CI Runner ์๊ฐ ๊ตฌ๋งค
๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ ๋ฃ GitLab.com ํ๋(Gold, Silver, Bronze)์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ ์ด์ CI Runner ์๊ฐ์ ์ถ๊ฐ๋ก ๊ตฌ๋งคํ ์ ์์ต๋๋ค. ์ด์ ์๋ ๊ณํ์ ์ ๊ณต๋ ํ ๋น๋์ ์ถฉ์กฑํด์ผ ํ์ต๋๋ค. ์ด ๊ฐ์ ์ฌํญ์ ํตํด ํ ๋น๋ ์ด๊ณผ ์๊ฐ์ ์ฌ์ ๊ตฌ๋งคํ์ฌ ํ์ดํ๋ผ์ธ ์ข ๋ฃ๋ก ์ธํ ์ค๋จ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์ด์ 1000๋ถ ๋น์ฉ์ 8๋ฌ๋ฌ์ด๋ฉฐ ์ํ๋ ๋งํผ ๊ตฌ๋งคํ ์ ์์ต๋๋ค. ์ ํ ๋น๋์ ๋ชจ๋ ์์งํ๋ฉด ์ถ๊ฐ ์๊ฐ์ด ์ฌ์ฉ๋๊ธฐ ์์ํ๋ฉฐ, ๋จ์ ์ถ๊ฐ ์๊ฐ์ ๋ค์ ๋ฌ๋ก ์ด์๋ฉ๋๋ค. ์์
์ปดํฌ์ ๋ธ ์๋ DevOps
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
Auto DevOps๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ ๊ฑฐ์ ๋
ธ๋ ฅํ์ง ์๊ณ ๋ ์ต์ DevOps ๋ฐฉ์์ผ๋ก ์ ํํ ์ ์์ต๋๋ค. GitLab 11.10๋ถํฐ Auto DevOps์ ๊ฐ ์์
์ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ณต๋ฉ๋๋ค. ััะฝะบัะธั includes
gitlab-ci.yml
. ์ด๋ ๊ฒ ํ๋ฉด ํ์ํ ์์
๋ง ํ์ฑํํ๊ณ ์
์คํธ๋ฆผ ์
๋ฐ์ดํธ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
SCIM์ ์ฌ์ฉํ์ฌ GitLab.com์์ ๊ทธ๋ฃน ๊ตฌ์ฑ์์ ์๋์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
์ค๋ฒ, ๊ณจ๋
์ด์ ์๋ GitLab.com์์ ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ์ ์๋์ผ๋ก ๊ด๋ฆฌํด์ผ ํ์ต๋๋ค. ์ด์ SAML SSO๋ฅผ ์ฌ์ฉํ๊ณ SCIM์ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ์ญ์ ๊ด๋ฆฌํ์ฌ GitLab.com์์ ์ฌ์ฉ์๋ฅผ ์์ฑ, ์ญ์ ๋ฐ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์ด๋ ์ฌ์ฉ์ ์๊ฐ ๋ง๊ณ ์ค์ ์ง์ค์ ID ๊ณต๊ธ์๊ฐ ์๋ ํ์ฌ์ ํนํ ์ ์ฉํฉ๋๋ค. ์ด์ Azure Active Directory์ ๊ฐ์ ๋จ์ผ ์ ๋ณด ์์ค๋ฅผ ๋ณด์ ํ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๋ ์๋์ด ์๋ ID ๊ณต๊ธ์๋ฅผ ํตํด ์๋์ผ๋ก ์์ฑ ๋ฐ ์ญ์ ๋ฉ๋๋ค.
SAML ๊ณต๊ธ์๋ฅผ ํตํด GitLab.com์ ๋ก๊ทธ์ธํ์ธ์.
์ค๋ฒ, ๊ณจ๋
์ด์ ์๋ ๊ทธ๋ฃน์ SAML SSO๋ฅผ ์ฌ์ฉํ ๋ ์ฌ์ฉ์๋ GitLab ์๊ฒฉ ์ฆ๋ช ๋ฐ ID ๊ณต๊ธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธํด์ผ ํ์ต๋๋ค. ์ด์ SSO๋ฅผ ํตํด ๊ตฌ์ฑ๋ ๊ทธ๋ฃน๊ณผ ์ฐ๊ฒฐ๋ GitLab ์ฌ์ฉ์๋ก ์ง์ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ ๋ ๋ฒ ๋ก๊ทธ์ธํ ํ์๊ฐ ์์ผ๋ฏ๋ก ํ์ฌ๋ GitLab.com์ SAML SSO๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
GitLab 11.10์ ๊ธฐํ ๊ฐ์ ์ฌํญ
ํ์ ์์ฌ์ ์คํค๋ง
์ผํฐ๋ฐ, ๊ณจ๋
์ด์ ๋ฆด๋ฆฌ์ค์์๋ ์์ ๋ถ๋ฐฐ ๊ตฌ์กฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋๋ก ํ์ ์ํฝ(์ํฝ์ ์ํฝ)์ ์ถ๊ฐํ์ต๋๋ค. ํ์ ์ํฝ์ ์์ ์ํฝ ํ์ด์ง์ ํ์๋ฉ๋๋ค.
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ์์ ์ํฝ ํ์ด์ง์ ํ์ ์ํฝ์ ๊ฐ์๊ฐ ํ์๋๋ฏ๋ก ํ์ ํ์ ์ํฝ์ ํ์๋ผ์ธ์ ํ์ธํ๊ณ ํ์ด๋ฐ ์ข ์์ฑ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ณํฉ ์์ฒญ ํ์ ํ๋ฉด
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ๋ณํฉ ์์ฒญ ๋งํฌ ์๋ก ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ํ์ ์ผ๋ก ํ์๋๋ ์ ๋ณด ํ๋ฉด์ด ๋์ ๋์์ต๋๋ค. ์ด์ ์๋ ๋ณํฉ ์์ฒญ ์ ๋ชฉ๋ง ํ์ํ์ง๋ง ์ด์ ๋ ๋ณํฉ ์์ฒญ ์ํ, CI ํ์ดํ๋ผ์ธ ์ํ, ๋จ์ถ URL๋ ํ์ํฉ๋๋ค.
ํฅํ ๋ฆด๋ฆฌ์ค์์๋ ๋ ์ค์ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ๊ณํ์
๋๋ค.
๋์ ๋ธ๋์น๋ณ๋ก ๋ณํฉ ์์ฒญ ํํฐ๋ง
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ํํธ์จ์ด๋ฅผ ์ถ์ํ๊ฑฐ๋ ๋ฐฐ์กํ๊ธฐ ์ํ Git ์ํฌํ๋ก์๋ ์ด์ ๋ฒ์ ์ ์์ ํ๊ธฐ ์ํด ์ฌ๋ฌ ์ฅ๊ธฐ ๋ถ๊ธฐ๊ฐ ํฌํจ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค(์: stable-11-9
) ๋๋ ํ์ง ํ
์คํธ์์ ์์ฐ์ผ๋ก ์ด๋(์: integration
), ๊ทธ๋ฌ๋ ์๋ง์ ๊ณต๊ฐ ๋ณํฉ ์์ฒญ ์ค์์ ์ด๋ฌํ ๋ถ๊ธฐ์ ๋ํ ๋ณํฉ ์์ฒญ์ ์ฐพ๋ ๊ฒ์ ์ฝ์ง ์์ต๋๋ค.
์ด์ ํ๋ก์ ํธ ๋ฐ ๊ทธ๋ฃน์ ๋ํ ๋ณํฉ ์์ฒญ ๋ชฉ๋ก์ ๋ณํฉ ์์ฒญ์ ๋์ ๋ถ๊ธฐ๋ณ๋ก ํํฐ๋งํ์ฌ ํ์ํ ํญ๋ชฉ์ ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค, ์ฌํ ํ๋ก์ ํค ์จ(
ํ์ดํ๋ผ์ธ ์ฑ๊ณต ์ ์ ์ก ๋ฐ ๋ณํฉ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
ํธ๋ ํฌ ๊ธฐ๋ฐ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จ์ผ ์์ ์๊ฐ ์๋ ์๊ท๋ชจ ์์ ๋ถ๊ธฐ๋ฅผ ์ ํธํ์ฌ ์๋ช ์ด ๊ธด ๋ถ๊ธฐ๋ฅผ ํผํด์ผ ํฉ๋๋ค. ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ๋ธ๋์น์ ์ง์ ํธ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง ๊ทธ๋ ๊ฒ ํ๋ฉด ๋น๋๊ฐ ์์๋ ์ํ์ด ์์ต๋๋ค.
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์ GitLab์ ๋ณํฉ ์์ฒญ์ ์๋์ผ๋ก ์ด๊ณ , ๋์ ๋ถ๊ธฐ๋ฅผ ์ค์ ํ๊ณ , ๋ถ๊ธฐ๋ก ํธ์ํ ๋ ๋ช ๋ น์ค์์ ์ฑ๊ณต์ ์ธ ํ์ดํ๋ผ์ธ์ ๋ณํฉ์ ์ํํ๋ ์๋ก์ด Git ํธ์ ์ต์ ์ ์ง์ํฉ๋๋ค.
์ธ๋ถ ๋์๋ณด๋์์ ํตํฉ ๊ฐ์
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
GitLab์ ์ฌ๋ฌ Prometheus ์๋ฒ(ํ๊ฒฝ, ํ๋ก์ ํธ ๋ฐ
์ํค ํ์ด์ง๋ฅผ ์์ฑ ๋ ์ง๋ณ๋ก ์ ๋ ฌ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
ํ๋ก์ ํธ Wiki์์ ํ์ ์์ค ์ฝ๋ ๋ฐ ์์ ๊ณผ ํจ๊ป ๋ฌธ์ ๋ฐ ๊ธฐํ ์ค์ํ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ Wiki ํ์ด์ง ๋ชฉ๋ก์ ์์ฑ ๋ ์ง์ ์ ๋ชฉ๋ณ๋ก ์ ๋ ฌํ์ฌ ์ต๊ทผ ์์ฑ๋ ์ฝํ ์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ์์ ์์ฒญํ ๋ชจ๋ํฐ๋ง ๋ฆฌ์์ค
์ผํฐ๋ฐ, ๊ณจ๋
GitLab์ ๊ฐ๋ฐ ๋ฐ ํ๋ก๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด Kubernetes ํด๋ฌ์คํฐ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ถํฐ ํด๋ฌ์คํฐ์ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์์ฒญ์ ๋ชจ๋ํฐ๋งํ์ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ณด์ธ์.
Grafana ๋์๋ณด๋์์ ๋ก๋ ๋ฐธ๋ฐ์ ์ธก์ ํญ๋ชฉ ๋ณด๊ธฐ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ
GitLab ์ธ์คํด์ค์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด์ ์๋ ๋ด์ฅ๋ Grafana ์ธ์คํด์ค๋ฅผ ํตํด ๊ธฐ๋ณธ ๋์๋ณด๋๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ถํฐ NGINX ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์ถ๊ฐ ๋์๋ณด๋๊ฐ โโํฌํจ๋์์ต๋๋ค.
์๋ฆญ์์ฉ SAST
์ผํฐ๋ฐ, ๊ณจ๋
์ฐ๋ฆฌ๋ ๊ณ์ํด์ ์ธ์ด ์ง์์ ํ์ฅํ๊ณ ๋ณด์ ์ ๊ฒ์ ์ฌํํ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ๋ค์ ํ๋ก์ ํธ์ ๋ํ ๋ณด์ ๊ฒ์ฌ๋ฅผ ํ์ฑํํ์ต๋๋ค.
ํ๋์ ๋ค์ด์ด๊ทธ๋จ์ ์ฌ๋ฌ ์ฟผ๋ฆฌ๊ฐ ์์
ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋
GitLab์์๋ ์ฐจํธ๋ฅผ ์์ฑํ์ฌ ์์งํ ์ธก์ ํญ๋ชฉ์ ์๊ฐํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ธก์ ํญ๋ชฉ์ ์ต๋๊ฐ์ด๋ ํ๊ท ๊ฐ์ ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ ํ๋์ ์ฐจํธ์ ํ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ถํฐ ์ด๋ฌํ ๊ธฐํ๊ฐ ์ฃผ์ด์ก์ต๋๋ค.
๊ทธ๋ฃน ๋ณด์ ๋์๋ณด๋์ DAST ๊ฒฐ๊ณผ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
SAST, ์ปจํ ์ด๋ ์ค์บ๋, ์ข ์์ฑ ์ค์บ๋ ์ธ์๋ ํ์ ๋ณด์ ๋์๋ณด๋์ DAST(Dynamic Application Security Testing) ๊ฒฐ๊ณผ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
์ปจํ ์ด๋ ์ค์บ ๋ณด๊ณ ์์ ๋ฉํ๋ฐ์ดํฐ ์ถ๊ฐ
์ผํฐ๋ฐ, ๊ณจ๋
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ์ปจํ ์ด๋ ์ค์บ ๋ณด๊ณ ์์ ๋ ๋ง์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ํฅ์ ๋ฐ๋ ๊ตฌ์ฑ ์์ (Clair ๊ธฐ๋ฅ)์ ๊ธฐ์กด ๋ฉํ๋ฐ์ดํฐ์ ์ถ๊ฐํฉ๋๋ค: ์ฐ์ ์์, ์๋ณ์(mitre.org ์ฐธ์กฐ) ๋ฐ ์ํฅ์ ๋ฐ๋ ์์ค(์: debian:8).
์์ฒญ ๋ณํฉ์ ์งํ ๋ณด๊ณ ์ ์ ํ ์ถ๊ฐ
ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋
GitLab์ ์ด๋ฏธ ๋ณํฉ ์์ฒญ์ ์ง์ ํฌํจ๋ ์ ์๋ ์ฌ๋ฌ ์ ํ์ ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด๋ ์ค์ํ ๋ณด๊ณ ์์ด์ง๋ง ๋ค์ํ ์๋๋ฆฌ์ค์ ๋ง๋ ๊ธฐ๋ณธ ์ ๋ณด๋ ํ์ํฉ๋๋ค. GitLab 11.10์์๋ ๊ฐ๋จํ ํค-๊ฐ ์์ ์์ํ๋ ๋ณํฉ ์์ฒญ์์ ์ง์ ์ธก์ ํญ๋ชฉ ๋ณด๊ณ ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์๋ ์ฌ์ฉ์ ์ง์ ์ธก์ ํญ๋ชฉ๊ณผ ํน์ ๋ณํฉ ์์ฒญ์ ๋ํ ์ธก์ ํญ๋ชฉ์ ๋ณ๊ฒฝ ์ฌํญ์ ํฌํจํ์ฌ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ์ ๋ฌธ์ ์ธ ์ํฌ๋ก๋ ํ ์คํธ ๋ฐ ์ํ๋ ๋ค๋ฅธ ๊ธฐ๋ณธ ์ ๊ณต ๋ณด๊ณ ์์ ํจ๊ป ๋ณํฉ ์์ฒญ์์ ์ง์ ๋ณผ ์ ์๋ ๊ฐ๋จํ ์ธก์ ํญ๋ชฉ์ผ๋ก ๋ณํ๋ ์ ์์ต๋๋ค.
์ข ์์ฑ ๊ฒ์์ ์ํ ๋ค์ค ๋ชจ๋ Maven ํ๋ก์ ํธ ์ง์
์ผํฐ๋ฐ, ๊ณจ๋
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ๋ค์ค ๋ชจ๋ Maven ํ๋ก์ ํธ๊ฐ GitLab ์ข ์์ฑ ๊ฒ์์ ์ง์ํฉ๋๋ค. ์ด์ ์๋ ํ์ ๋ชจ๋์ด ๋์ผํ ์์ค์ ๋ค๋ฅธ ํ์ ๋ชจ๋์ ์ข ์๋ ๊ฒฝ์ฐ ์ค์ Maven ์ ์ฅ์์์ ๋ก๋ํ๋ ๊ฒ์ ํ์ฉํ ์ ์์์ต๋๋ค. ์ด์ ๋ ๊ฐ์ ๋ชจ๋๊ณผ ๋ ๋ชจ๋ ๊ฐ์ ์ข ์์ฑ์ ์ฌ์ฉํ์ฌ ๋ค์ค ๋ชจ๋ Maven ํ๋ก์ ํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด์ ๋น๋๋ฅผ ์งํํ ์ ์๋๋ก ํ์ ๋ชจ๋ ๊ฐ์ ์ข ์์ฑ์ ๋ก์ปฌ Maven ์ ์ฅ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ CI์์ ๋ณต์ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๊ธฐ๋ณธ์ ์ผ๋ก GitLab Runner๋ ํ๋ก์ ํธ๋ฅผ ๋ค์์ ๊ณ ์ ํ ํ์ ๊ฒฝ๋ก์ ๋ณต์ ํฉ๋๋ค. $CI_BUILDS_DIR
. ๊ทธ๋ฌ๋ Golang๊ณผ ๊ฐ์ ์ผ๋ถ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ๋น๋ํ๋ ค๋ฉด ํน์ ๋๋ ํฐ๋ฆฌ์ ์ฝ๋๋ฅผ ๋ณต์ ํด์ผ ํฉ๋๋ค.
GitLab 11.10์์๋ ๋ณ์๋ฅผ ๋์
ํ์ต๋๋ค. GIT_CLONE_PATH
, ์์
์ ์คํํ๊ธฐ ์ ์ GitLab Runner๊ฐ ํ๋ก์ ํธ๋ฅผ ๋ณต์ ํ๋ ํน์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
๋ก๊ทธ์์ ๋ณดํธ๋ ๋ณ์์ ๊ฐ๋จํ ๋ง์คํน
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
GitLab์ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค
GitLab์ ์ํ ๊ด๋ฆฌ ๋ฐ ๊ฐ์ฌ๋ฅผ ์ง์งํ๊ฒ ๋ฐ์๋ค์ด๊ณ ๊ท์ ์ค์ ๊ธฐ๋ฅ์ ๊ณ์ ์ถ๊ฐํฉ๋๋ค. GitLab 11.10์์๋ ์์
์ถ์ ๋ก๊ทธ์์ ํน์ ์ ํ์ ๋ณ์๋ฅผ ๋ง์คํนํ๋ ๊ธฐ๋ฅ์ ๋์
ํ์ฌ ์ด๋ฌํ ๋ณ์์ ๋ด์ฉ์ด ์ค์๋ก ๋ก๊ทธ์ ํฌํจ๋๋ ๊ฒ์ ๋ํ ๋ณดํธ ์์ค์ ์ถ๊ฐํ์ต๋๋ค. ์ด์ GitLab
ํ ์์ค์์ ์๋ DevOps ํ์ฑํ ๋๋ ๋นํ์ฑํ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
GitLab.com ํ๋ก์ ํธ์ ์๋ DevOps๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฒ๊ฑฐ๋ก์ ์์ด ๋น๋๋ถํฐ ์ ๊ณต๊น์ง ์ต์ DevOps ์ํฌํ๋ก๋ฅผ ์ํํ ์ ์์ต๋๋ค.
GitLab 11.10๋ถํฐ ๋์ผํ ๊ทธ๋ฃน์ ๋ชจ๋ ํ๋ก์ ํธ์ ๋ํด Auto DevOps๋ฅผ ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
๋จ์ํ๋๊ณ ๊ฐ์ ๋ ๋ผ์ด์ ์ค ํ์ด์ง
์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ
๋ผ์ด์ ์ค ํค ๊ด๋ฆฌ๋ฅผ ๋์ฑ ํธ๋ฆฌํ๊ณ ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๊ด๋ฆฌ์ ํจ๋์ ๋ผ์ด์ ์ค ํ์ด์ง๋ฅผ ๋ค์ ๋์์ธํ๊ณ ๊ฐ์ฅ ์ค์ํ ์์๋ฅผ ๊ฐ์กฐํ์ต๋๋ค.
Kubernetes ๋ฐฐํฌ๋ฅผ ์ํ ๋ฐ๋ก๊ฐ๊ธฐ ์ ํ๊ธฐ ์ ๋ฐ์ดํธ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๋ฐฐํฌ ํจ๋์๋ ๋ชจ๋ Kubernetes ๋ฐฐํฌ์ ๋ํ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ๋ฐฐํฌ์ ๋งคํํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ์ต๋๋ค. ์ด์ ๊ฒฝ๊ธฐ๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค. app.example.com/app
ะธ app.example.com/env
๋๋ app
. ์ด๋ ๊ฒ ํ๋ฉด ํํฐ๋ง ์ถฉ๋๊ณผ ํ๋ก์ ํธ์ ๊ด๋ จ๋ ์๋ชป๋ ๋ฐฐํฌ ์ํ์ด ๋ฐฉ์ง๋ฉ๋๋ค.
๋ํ GitLab 12.0์์๋ app.example.com/app
ะธ app.example.com/env
.
Kubernetes ๋ฆฌ์์ค๋ฅผ ๋์ ์ผ๋ก ์์ฑ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
Kubernetes์ GitLab์ ํตํฉ์ ํตํด ๊ฐ GitLab ํ๋ก์ ํธ์ ๋ํ ์๋น์ค ๊ณ์ ๋ฐ ์ ์ฉ ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ RBAC ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ถํฐ ํจ์จ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด ์ด๋ฌํ ๋ฆฌ์์ค๋ ๋ฐฐํฌ์ ํ์ํ ๋๋ง ์์ฑ๋ฉ๋๋ค.
Kubernetes๋ฅผ ๋ฐฐํฌํ ๋ GitLab CI๋ ๋ฐฐํฌ ์ ์ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์์ฑํฉ๋๋ค.
๊ทธ๋ฃน ์์ค ํด๋ฌ์คํฐ์ ๊ทธ๋ฃน ์คํ์
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ด์ ๊ทธ๋ฃน ์์ค ํด๋ฌ์คํฐ๋ GitLab Runner ์ค์น๋ฅผ ์ง์ํฉ๋๋ค. ๊ทธ๋ฃน ์์ค Kubernetes ์คํ์๋ ํ์ ํ๋ก์ ํธ์ ๋ ์ด๋ธ์ด ์ง์ ๋ ๊ทธ๋ฃน ์คํ์๋ก ๋ํ๋ฉ๋๋ค. cluster
ะธ kubernetes
.
Knative ํจ์์ ๋ํ ํธ์ถ ์นด์ดํฐ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๋ฐฐํฌ๋ ๊ธฐ๋ฅ
๋งค๊ฐ๋ณ์ ์ ์ด git clean
GitLab CI/CD ์์
์ฉ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๊ธฐ๋ณธ์ ์ผ๋ก GitLab Runner๋ ์คํ๋ฉ๋๋ค. git clean
GitLab CI/CD์์ ์์
์ ์คํํ ๋ ์ฝ๋๋ฅผ ์
๋ก๋ํ๋ ๊ณผ์ ์ค. GitLab 11.10๋ถํฐ ์ฌ์ฉ์๋ ํ์ ์ ๋ฌ๋๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. git clean
. ์ด๋ ์ ์ฉ ์คํ์๊ฐ ์๋ ํ๋ฟ๋ง ์๋๋ผ ๋๊ท๋ชจ ๋จ์ผ ์ ์ฅ์์์ ํ๋ก์ ํธ๋ฅผ ์์งํ๋ ํ์๋ ์ ์ฉํฉ๋๋ค. ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ ์ ์ธ๋ก๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์๋ก์ด ๋ณ์ GIT_CLEAN_FLAGS
๊ธฐ๋ณธ๊ฐ์ -ffdx
๊ฐ๋ฅํ ๋ชจ๋ ๋ช
๋ น ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํฉ๋๋ค. [git clean](https://git-scm.com/docs/git-clean)
.
Core์ ์ธ๋ถ ์ธ์ฆ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๋ณด์ ํ๊ฒฝ์์๋ ํ๋ก์ ํธ์ ์ก์ธ์คํ๊ธฐ ์ํด ์ถ๊ฐ ์ธ๋ถ ์ธ์ฆ ๋ฆฌ์์ค๊ฐ ํ์ํ ์ ์์ต๋๋ค. ์ถ๊ฐ ์์ค์ ์ก์ธ์ค ์ ์ด์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
Core์์ ๊ทธ๋ฃน์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
๊ฐ๋ฐ์ ์ญํ ์ ๊ทธ๋ฃน์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
GitLab ๋ฌ๋ 11.10
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ค๋ ์ฐ๋ฆฌ๋ GitLab Runner 11.10์ ์ถ์ํ์ต๋๋ค! GitLab Runner๋ CI/CD ์์ ์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ GitLab์ผ๋ก ๋ค์ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ์คํ ์์ค ํ๋ก์ ํธ์ ๋๋ค.
๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ณต์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ๋งค๊ฐ๋ณ์ . .ะฃะปัััะตะฝะฝะฐั ะฟะพะดะดะตัะถะบะฐ git clean
๋๋ฒ๊ทธ ์ถ์ ์ ๋นํ์ฑํํ๋ ์ต์ .Windows Cmd์์ ์ค๋ฅ ๊ฒ์ฌ๋ฅผ ์ํด ์ง์ฐ ๋ณ์ ํ์ฅ ์ฌ์ฉ .Windows์์ ์์ ์ถ๋ ฅ ์์ .
์ ์ฒด ๋ณ๊ฒฝ ๋ชฉ๋ก์ GitLab Runner ๋ณ๊ฒฝ ๋ก๊ทธ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐํ๋ ๋ด์ฉ ์์ project_id
Elasticsearch์ Blob ๊ฒ์ API์์
์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ
Elasticsearch Blob ๊ฒ์ API์์ 0์ ์๋ชป ๋ฐํํ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค. project_id
. ํ์ํ ๊ฒ์ด๋ค project_id
์ด ๋ฒ์ ์ GitLab์ ์ค์นํ ํ.
์ด๋๋ฒ์ค ๊ฐ์
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ
GitLab 11.10์์๋ Omnibus๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ์ ํ์ต๋๋ค.
- GitLab 11.10์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
์ค์ํ 5.9.0 ,์คํ ์์ค Slack ๋์ , ์ต์ ๋ฆด๋ฆฌ์ค์๋ Hipchat ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ์๋ก์ด ํตํฉ ๋๋ ํฐ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด ๋ฒ์ ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.๋ณด์ ์ ๋ฐ์ดํธ , ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. - ์ฐ๋ฆฌ
Omnibus์ ํตํฉ๋ Grafana , ์ด์ GitLab ์ธ์คํด์ค ๋ชจ๋ํฐ๋ง์ ์ฝ๊ฒ ์์ํ ์ ์์ต๋๋ค. - Docker ๋ ์ง์คํธ๋ฆฌ์์ ์ด์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๊ธฐ ์ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- ca-certs๋ฅผ 2019-01-23์ผ๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค.
์ฑ๋ฅ ๊ฐ์
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋
์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ท๋ชจ์ GitLab ์ธ์คํด์ค์ ๋ํ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์์ GitLab ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๊ฐ์ ํ๊ณ ์์ต๋๋ค. GitLab 11.10์ ์ผ๋ถ ๊ฐ์ ์ฌํญ:
์ด์ ์ฌ์ฉ์ ์๋ ์์ฑ์ด ๋ ๋นจ๋ผ์ก์ต๋๋ค. .๊ฒ์ ์ ํ๋ก์ ํธ ์์ ์ ํ์ํ๊ธฐ ์ํด ์ต์ ํ๋ SQL ์ฟผ๋ฆฌ .Elasticsearch ๊ฒ์ ๊ฒฐ๊ณผ์๋ ๋ ์ด์ Gitaly๊ฐ ํฌํจ๋์ง ์์ต๋๋ค. .GraphQL ์ฟผ๋ฆฌ์๋ ์ด์ ๋ณต์ก์ฑ ์ ํ์ด ์์ต๋๋ค. .Prometheus๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ณํฉ ์์ฒญ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด diff์ ๋ํ ๊ณ์ธก์ ๋นํ์ฑํํ์ต๋๋ค. .ํฅ์๋ GitHub ํ ์์ฒญ ๊ฐ์ ธ์ค๊ธฐ ์ฑ๋ฅ .์ฐธ์กฐ ์ด๋ฆ์ผ๋ก ์บ์์์ ์ปค๋ฐ ์ฐพ๊ธฐ .๋ณํฉ ์์ฒญ diff์ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค. ์ด์ diff ํ์ผ์ blob์ด ๊ธฐ์ต๋ฉ๋๋ค. .
ํฅ์๋ GitLab ์ฐจํธ
์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ
GitLab ์ฐจํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ์ ํ์ต๋๋ค.
์ค๋๋ ๊ธฐ๋ฅ
GitLab Geo๋ GitLab 12.0์์ ํด์๋ ์ ์ฅ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
GitLab Geo๊ฐ ํ์ํฉ๋๋ค.
GitLab์์
GitLab์์ sudo gitlab-rake gitlab:geo:check
ํด์๋ ์ ์ฅ์๊ฐ ํ์ฑํ๋์ด ์๊ณ ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ๋ง์ด๊ทธ๋ ์ด์
๋์๋์ง ํ์ธํฉ๋๋ค. ์ผํฐ๋ฏธํฐ.
GitLab์์
GitLab์์
12.0 Geo๋ ํด์๋ ์ ์ฅ ์๊ตฌ ์ฌํญ์ ์ฌ์ฉํฉ๋๋ค. ์ผํฐ๋ฏธํฐ.gitlab-ee#8690 .
์ญ์ ๋ ์ง: 22 2019 6 ์
์ฐ๋ถํฌ 14.04 ์ง์
GitLab 11.10์ ๋ค์์ด ํฌํจ๋ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค๊ฐ ๋ ๊ฒ์
๋๋ค.
Canonical์ Ubuntu 14.04์ ๋ํ ํ์ค ์ง์ ์ข
๋ฃ๋ฅผ ๋ฐํํ์ต๋๋ค.
์ญ์ ๋ ์ง: 22 ์ 2019 ๋์
์ ์ถ๋น ์์ฑ๋๋ ์ต๋ ํ์ดํ๋ผ์ธ ์ ์ ํ
์ด์ ์ GitLab์ ๋ค์์ ์ํ ํ์ดํ๋ผ์ธ์ ๋ง๋ค์์ต๋๋ค. HEAD
์ ์ถ๋ฌผ์ ๊ฐ ๋ถ๊ธฐ. ์ด๋ ์ฌ๋ฌ ๋ณ๊ฒฝ ์ฌํญ์ ํ ๋ฒ์ ํธ์ํ๋ ๊ฐ๋ฐ์์๊ฒ ํธ๋ฆฌํฉ๋๋ค(์: ๊ธฐ๋ฅ ๋ธ๋์น ๋ฐ ๋ธ๋์น). develop
).
๊ทธ๋ฌ๋ ํ์ฑ ๋ถ๊ธฐ(์: ์ด๋, ๋ฏธ๋ฌ๋ง ๋๋ ๋ถ๊ธฐ)๊ฐ ๋ง์ ๋๊ท๋ชจ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํธ์ํ๋ ๊ฒฝ์ฐ ๊ฐ ๋ถ๊ธฐ์ ๋ํ ํ์ดํ๋ผ์ธ์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค. GitLab 11.10๋ถํฐ ์ฐ๋ฆฌ๋ ๋ง๋ค๊ณ ์์ต๋๋ค
์ญ์ ๋ ์ง: 22 ์ 2019 ๋์
์ค๋๋ GitLab Runner ๋ ๊ฑฐ์ ์ฝ๋ ๊ฒฝ๋ก
Gitlab 11.9๋ถํฐ GitLab Runner๋ ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
GitLab 11.0์์๋ GitLab Runner์ ๋ํ ๋ฉํธ๋ฆญ ์๋ฒ ๊ตฌ์ฑ์ ๋ชจ์์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. metrics_server
์ ๋ฆฌํ๊ฒ ์ ๊ฑฐ๋ฉ๋๋ค listen_address
GitLab 12.0์์. ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ์ธ์.
๋ฒ์ 11.3์์๋ GitLab Runner๊ฐ ์ง์๋๊ธฐ ์์ํ์ต๋๋ค.
GitLab 12.0์์๋ ์ด๋ฌํ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ GitLab Runner 11.9์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๋ GitLab ์ธ์คํด์ค๊ฐ ๋ฒ์ 12.0 ์ด์์ ์คํํ๋์ง ํ์ธํ๋ ๊ฒ ์ธ์๋ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
์ญ์ ๋ ์ง: 22 2019 6 ์
GitLab Runner์ ์ง์ ์ ๊ธฐ๋ฅ์ ๋ํ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋งค๊ฐ๋ณ์
11.4 GitLab Runner์๋ ๊ธฐ๋ฅ ๋งค๊ฐ๋ณ์๊ฐ ๋์
๋์์ต๋๋ค. FF_K8S_USE_ENTRYPOINT_OVER_COMMAND
GitLab 12.0์์๋ ๊ธฐ๋ฅ ์ค์ ์ด ๋นํ์ฑํ๋ ๊ฒ์ฒ๋ผ ์ฌ๋ฐ๋ฅธ ๋์์ผ๋ก ์ ํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ์ธ์.
์ญ์ ๋ ์ง: 22 2019 6 ์
GitLab Runner์ EOL์ ๋๋ฌํ๋ Linux ๋ฐฐํฌ์ ๋ํ ์ง์์ด ์ค๋จ๋์์ต๋๋ค.
GitLab Runner๋ฅผ ์ค์นํ ์ ์๋ ์ผ๋ถ Linux ๋ฐฐํฌํ์ ํด๋น ๋ชฉ์ ์ ๋ฌ์ฑํ์ต๋๋ค.
GitLab 12.0์์๋ GitLab Runner๊ฐ ๋ ์ด์ ์ด๋ฌํ Linux ๋ฐฐํฌํ์ ํจํค์ง๋ฅผ ๋ฐฐํฌํ์ง ์์ต๋๋ค. ๋ ์ด์ ์ง์๋์ง ์๋ ๋ฐฐํฌํ์ ์ ์ฒด ๋ชฉ๋ก์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
์ญ์ ๋ ์ง: 22 2019 6 ์
์ด์ GitLab Runner Helper ๋ช ๋ น ์ ๊ฑฐ
์ง์ํ๊ธฐ ์ํ ๋
ธ๋ ฅ์ ์ผํ์ผ๋ก
GitLab 12.0์์๋ GitLab Runner๊ฐ ์๋ก์ด ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์์๋ฉ๋๋ค. ์ด๋ ๋ค์ ์ฌ์ฉ์์๊ฒ๋ง ์ ์ฉ๋ฉ๋๋ค.
์ญ์ ๋ ์ง: 22 2019 6 ์
GitLab Runner์์ ๋ ๊ฑฐ์ git clean ๋ฉ์ปค๋์ฆ ์ ๊ฑฐ
GitLab ๋ฌ๋ 11.10์์ git clean
. ๋ํ ์๋ก์ด ์ ๋ฆฌ ์ ๋ต์ ์ฌ์ฉ์ ์ ๊ฑฐํฉ๋๋ค. git reset
๊ทธ๋ฆฌ๊ณ ๋ช
๋ น์ ๋ด๋ฆฐ๋ค. git clean
์ธ๋ก๋ ๋จ๊ณ ์ดํ.
์ด ๋์ ๋ณ๊ฒฝ์ ์ผ๋ถ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฏ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ์ค๋นํ์ต๋๋ค. FF_USE_LEGACY_GIT_CLEAN_STRATEGY
. ๊ฐ์ ์ค์ ํ๋ฉด true
, ๋ ๊ฑฐ์ ์ ๋ฆฌ ์ ๋ต์ ๋ณต์ํฉ๋๋ค. GitLab Runner์์ ํจ์ ๋งค๊ฐ๋ณ์ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐพ์ ์ ์์ต๋๋ค.
GitLab Runner 12.0์์๋ ๋ ๊ฑฐ์ ์ ๋ฆฌ ์ ๋ต์ ๋ํ ์ง์๊ณผ ํจ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๋ณต์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ์ธ์.
์ญ์ ๋ ์ง: 22 2019 6 ์
๊ด๋ฆฌ์ ํจ๋์ ์์คํ ์ ๋ณด ์น์
GitLab์ GitLab ์ธ์คํด์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ค์ ์์น์ ํ์ํฉ๋๋ค. admin/system_info
, ๊ทธ๋ฌ๋ ์ด ์ ๋ณด๋ ์ ํํ์ง ์์ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ
์ญ์ ๋ ์ง: 22 2019 6 ์
๋ณ๊ฒฝ ๋ก๊ทธ
๋ณ๊ฒฝ ๋ก๊ทธ์์ ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ์ฐพ์๋ณด์ธ์.
์ค์น
์๋ก์ด GitLab ์ค์น๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ ๋ค์์ ๋ฐฉ๋ฌธํ์ธ์.
์ ๋ฐ์ดํธ
์ฒดํฌ์์
GitLab ๊ตฌ๋ ๊ณํ
GitLab์ ๋ ๊ฐ์ง ํํ๋ก ์ ๊ณต๋ฉ๋๋ค.
- ํต์ฌ: ์๊ท๋ชจ ํ, ๊ฐ์ธ ํ๋ก์ ํธ ๋๋ ๊ธฐ๊ฐ ์ ํ ์๋ GitLab ํ๊ฐํ์ฉ์ ๋๋ค.
- ์ ๋ฌธ: ์ ๋ฌธ์ ์ธ ์ง์์ด ํ์ํ ์ฌ๋ฌ ํ๋ก์ ํธ๋ฅผ ๋์ผํ ์ฌ๋ฌด์ค์์ ์์ ํ๋ ํ์ ์ํ ๊ฒ์ ๋๋ค.
- ํ๋ฆฌ๋ฏธ์: ๊ณ ๊ธ ๊ธฐ๋ฅ, ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ์ฐ์ค๋ฌดํด ์ง์์ด ํ์ํ ๋ถ์ฐ๋ ํ์ ์ํ ๊ฒ์ ๋๋ค.
- ๊ถ๊ทน์: ํฅ์๋ ๋ณด์ ๋ฐ ๊ท์ ์ค์์ ํจ๊ป ๊ฐ๋ ฅํ ์ ๋ต๊ณผ ์คํ์ด ํ์ํ ๋น์ฆ๋์ค์ ์ ํฉํฉ๋๋ค.
- ๋ฌด๋ฃ: ๋ฌด์ ํ ๊ฐ์ธ ์ ์ฅ์ ๋ฐ ๋ฌด์ ํ ํ๋ก์ ํธ ๊ธฐ์ฌ์. ๋ซํ ํ๋ก์ ํธ๋ ๋ ๋ฒจ ๊ธฐ๋ฅ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ฌด๋ฃ, y
์ด๋ฆฐ ํ๋ก์ ํธ ๋ ๋ฒจ ๊ธฐ๋ฅ์ ์ ๊ทผํ ์ ์์ต๋๋ค ๋ดํ. - ๋ธ๋ก ์ฆ: ๊ณ ๊ธ ์ํฌํ๋ก ๊ธฐ๋ฅ์ ์ก์ธ์คํด์ผ ํ๋ ํ์ ์ํ ๊ฒ์ ๋๋ค.
- ์: ๋ณด๋ค ๊ฐ๋ ฅํ DevOps ๊ธฐ๋ฅ, ๊ท์ ์ค์ ๋ฐ ๋ณด๋ค ๋น ๋ฅธ ์ง์์ด ํ์ํ ํ์ ์ํ ๊ฒ์ ๋๋ค.
- ๋ดํ: ๋ค์ํ CI/CD ์์ ์ ์ ํฉํฉ๋๋ค. ์ด๋ ค ์๋ ๋ชจ๋ ํ๋ก์ ํธ๋ ์๊ธ์ ์ ๊ด๊ณ์์ด Gold ๊ธฐ๋ฅ์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com