์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ GitLab ์‹คํ–‰ํ•˜๊ธฐ  

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ๋„์ปค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ถ„์‚ฐํ˜• GitLab ๊ตฌ์ถ•ํ•˜๊ธฐ

Last updated

ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ์™€ ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์— ์žˆ์–ด์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฃผ์š” ํŠธ๋ Œ๋“œ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋„๋ฆฌ ์ด์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ๋„์ปค(Docker) ์ด๋ฏธ์ง€ ํฌ๋งท ๋ฐ ๋ฐฐํฌ ๋ชจ๋ธ ๋“ฑ ์‚ฌ์šฉ์˜ ์šฉ์ด์„ฑ์— ๋ชฉํ‘œ๋ฅผ ๋‘” ํ‘œ์ค€๋“ค์ด ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์˜ ์ฃผ์š” ์œ ์Šค ์ผ€์ด์Šค ์ค‘ ํ•˜๋‚˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌ, ํ™•์žฅ, ์œ ์ง€๋ณด์ˆ˜ ๋ฉด์—์„œ ๋›ฐ์–ด๋‚œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


‘์ฝ”๋“œ ๋ณด๊ธฐ’ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด GitHub์—์„œ ํ•œ๊ธ€ README ํŒŒ์ผ์„ ์„ ํƒํ•˜์—ฌ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

By Ryan Moe, Animesh Singh

Overview

์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปจํ…Œ์ด๋„ˆ์˜ ์žฅ์  ๋ฐ ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ผ์šฐ๋“œ๋กœ ์‰ฝ๊ฒŒ ์ด์ „ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•œ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง• ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๊ธฐ์กด์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์œผ๋กœ ์ด์ „ํ•˜๋Š” ๋ฐ ์žˆ์–ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์š”๊ตฌ๋˜๋Š” ์ „์ฒด ๋กœ๋“œ๋งต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ผ๋ฐ˜์ ์ธ ๋ฉ€ํ‹ฐ ์ปดํฌ๋„ŒํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋ฐ˜์˜ IBM Bluemix ์ปจํ…Œ์ด๋„ˆ ์„œ๋น„์Šค์— ๊ตฌ์ถ•๋˜๋Š” ์ ˆ์ฐจ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

GitLab์€ ์ „ํ˜•์ ์ธ ๋ฉ€ํ‹ฐ-ํ‹ฐ์–ด ์•ฑ์œผ๋กœ, ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๋งˆ๋‹ค ์ž์ฒด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ๋“ค์ด ์›น ํ‹ฐ์–ด์™€ ์ƒํƒœ/์ž‘์—… ๋‚ด์šฉ ์บ์‹ฑ์„ ์œ„ํ•œ Redis, ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ์œผ๋กœ PostgreSQL์— ์ด์šฉ๋ฉ๋‹ˆ๋‹ค.

Flow

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด, ๋˜๋Š” GitHub ์ €์žฅ์†Œ์— ์ฝ”๋“œ๋ฅผ ํ‘ธ์‹œํ•˜์—ฌ GitLab์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. GitLab ์ปจํ…Œ์ด๋„ˆ๋Š” NGINX์™€ gitlab-workhorse(ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๋˜๋Š” Git ํ‘ธ์‹œ/ํ’€๊ณผ ๊ฐ™์€ ๋Œ€๋Ÿ‰์˜ HTTP ์š”์ฒญ์„ ์œ„ํ•œ ๋ฆฌ๋ฒ„์‹œ ํ”„๋ก์‹œ ์—ญํ• ์„ ํ•˜๋Š”) ๋’ค์—์„œ ๋ฉ”์ธ Ruby on Rails ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. GitLab์€ HTTP/HTTPS๋ฅผ ํ†ตํ•ด ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•จ๊ณผ ๋™์‹œ์—, GitLab API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ถŒํ•œ๋ถ€์—ฌ ๋ฐ ์ ‘๊ทผ๊ถŒํ•œ์„ ํ•จ์œผ๋กœ์จ Git ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ ๋ฐ ๊ถŒํ•œ๋ถ€์—ฌ ํ™•์ธ ํ›„์—, GitLab Rails ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒˆ๋กœ์ด ์š”์ฒญ๋˜๋Š” ์ž‘์—…, ์ž‘์—… ์ •๋ณด, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋“ฑ์„ ๋น„์˜๊ตฌ์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์—ญํ• ์„ ํ•˜๋Š” Redis ์ž‘์—… ๋Œ€๊ธฐ์—ด๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  3. Git ์ €์žฅ์†Œ๊ฐ€ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  4. ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์ž, ์—ญํ• , ๋ณ‘ํ•ฉ ์š”์ฒญ, ๊ทธ๋ฃน ๋“ฑ์„ ์ƒ์„ฑํ•˜๋ฉด, PostgreSQL์— ๋ชจ๋‘ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  5. ์‚ฌ์šฉ์ž๊ฐ€ Git ์‰˜์„ ํ†ตํ•˜์—ฌ Git ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.

Components

Kubernetes Cluster

๋‚˜๋งŒ์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋ฅผ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๊ณ , ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitLab

GitLab์€ ์ด์Šˆ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, CI, CD ๋“ฑ์„ ๋‹จ์ผ UI๋กœ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค

Redis

Redis๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ๋กœ์„œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์บ์‹œ, ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๋“ฑ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค

PostgreSQL

์ •๊ตํ•œ ์˜คํ”ˆ์†Œ์Šค ๊ฐ์ฒด๊ด€๊ณ„ํ˜• DBMS๋กœ, ๊ฑฐ์˜ ๋ชจ๋“  SQL ๊ตฌ์กฐ๋“ค์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค

Technologies

ํด๋ผ์šฐ๋“œ

์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ปดํ“จํŒ… ๋ฐ IT ๋ฆฌ์†Œ์Šค์— ์—‘์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค

์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

์ปจํ…Œ์ด๋„ˆํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ, ์Šค์ผ€์ผ๋ง ๋ฐ ๊ด€๋ฆฌ์˜ ์ž๋™ํ™”.

Databases

๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ €์žฅ์†Œ.

Related Blogs

๊ท€ํ•˜๊ฐ€ ์ž…๋ ฅํ•œ ์‡ผํŠธ์ฝ”๋“œ ๊ฒ€์ƒ‰์กฐ๊ฑด์— ๋งค์น˜๋˜๋Š” ํฌ์ŠคํŒ…์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Related Links