์Šคํƒ€ํŠธ์—…์„ ์œ„ํ•œ CICD: ์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋Œ€๊ธฐ์—…๊ณผ ์œ ๋ช… ๊ธฐ์—…๋งŒ์ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 

CICD ๋„๊ตฌ ๊ฐœ๋ฐœ์ž๋Š” ์ข…์ข… Microsoft, Oculus, Red Hat, ์‹ฌ์ง€์–ด Ferrari ๋ฐ NASA์™€ ๊ฐ™์€ ๋Œ€๊ธฐ์—…์„ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๋ธŒ๋žœ๋“œ๋Š” ๋‘ ๋ช…์˜ ๊ฐœ๋ฐœ์ž์™€ ๋””์ž์ด๋„ˆ๋กœ ๊ตฌ์„ฑ๋œ ์Šคํƒ€ํŠธ์—…์ด ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’๋น„์‹ผ ์‹œ์Šคํ…œ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋„๊ตฌ์˜ ์ƒ๋‹น ๋ถ€๋ถ„์€ ์†Œ๊ทœ๋ชจ ํŒ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ์ฃผ์˜ํ•  ์ ์— ๋Œ€ํ•ด ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์Šคํƒ€ํŠธ์—…์„ ์œ„ํ•œ CICD: ์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋Œ€๊ธฐ์—…๊ณผ ์œ ๋ช… ๊ธฐ์—…๋งŒ์ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 
์‚ฌ์ง„ โ€” ํฌ์‚ฌ๋ฐ” ๋ฐœ๋ผ์ฆˆ โ€” ์–ธํ”Œ๋ž˜์‰ฌ

PHP ๊ฒ€์—ด

PHP์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์˜คํ”ˆ ์†Œ์Šค CI ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ”„๋กœ์ ํŠธ์˜ ํฌํฌ์ž…๋‹ˆ๋‹ค. PHPCI. PHPCI ์ž์ฒด๋Š” ์—ฌ์ „ํžˆ ๊ฐœ๋ฐœ ์ค‘์ด์ง€๋งŒ ์ด์ „๋งŒํผ ํ™œ๋ฐœํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

PHP Censor๋Š” GitHub, GitLab, Mercurial ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ์ €์žฅ์†Œ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋„๊ตฌ๋Š” Atoum, PHP Spec, Behat, Codeception ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์˜ˆ์ œ ํŒŒ์ผ ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์˜ ๊ตฌ์„ฑ:

test:
    atoum:
        args: "command line arguments go here"
        config: "path to config file"
        directory: "directory to run tests"
        executable: "path to atoum executable"

๊ณ ๋ คPHP Censor๋Š” ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ์— ์ ํ•ฉํ•˜์ง€๋งŒ ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž์ฒด ํ˜ธ์ŠคํŒ…). ์ด ์ž‘์—…์€ ์ƒ๋‹นํžˆ ์ƒ์„ธํ•œ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค. GitHub์— ์žˆ์–ด์š”.

๋ ‰์Šค

Rex๋Š” ์›๊ฒฉ ์‹คํ–‰(Remote Execution)์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ์—”์ง€๋‹ˆ์–ด์ธ Ferenc Erki๊ฐ€ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Rex๋Š” Perl ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€๋งŒ ๋„๊ตฌ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด ์–ธ์–ด๋ฅผ ์•Œ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…(์˜ˆ: ํŒŒ์ผ ๋ณต์‚ฌ)์€ ํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์„ค๋ช…๋˜์–ด ์žˆ์œผ๋ฉฐ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋Œ€๊ฐœ XNUMX์ค„์— ๋งž์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธํ•˜๊ณ  ๊ฐ€๋™ ์‹œ๊ฐ„์„ ์‹คํ–‰ํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

use Rex -feature => ['1.3'];

user "my-user";
password "my-password";

group myservers => "mywebserver", "mymailserver", "myfileserver";

desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub {
   my $output = run "uptime";
   say $output;
};

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„๊ตฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๊ฐ€์ด๋“œ ะธ ์ „์ž์ฑ…, ํ˜„์žฌ ์™„๋ฃŒ ์ค‘์ž…๋‹ˆ๋‹ค.

์˜คํ”ˆ ๋นŒ๋“œ ์„œ๋น„์Šค(OBS)

์ด๋Š” ๋ฐฐํฌํŒ ๊ฐœ๋ฐœ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ๊ณต๊ฐœ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ €์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์˜. ๋„๊ตฌ ์ž‘์„ฑ์ž๋Š” ํšŒ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋…ธ๋ฒจ. ๊ทธ๋…€๋Š” SuSE ๋ฐฐํฌํŒ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ–ˆ์œผ๋ฉฐ ์ด ํ”„๋กœ์ ํŠธ์˜ ์ดˆ๊ธฐ ์ด๋ฆ„์€ openSUSE Build Service์˜€์Šต๋‹ˆ๋‹ค. Open Build Service๋Š” ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค openSUSE, Tizen ๋ฐ VideoLAN์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Dell, SGI ๋ฐ Intel๋„ ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ค‘์—๋Š” ์†Œ๊ทœ๋ชจ ์Šคํƒ€ํŠธ์—…๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๊ทธ๋“ค์„ ์œ„ํ•ด ์ €์ž๋Š” (10 ํŽ˜์ด์ง€) ์‚ฌ์ „ ๊ตฌ์„ฑ๋จ ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€. ์‹œ์Šคํ…œ ์ž์ฒด๋Š” ์™„์ „ํžˆ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค. ๋ฐฐํฌํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŒ…์ด๋‚˜ ํ•˜๋“œ์›จ์–ด ์„œ๋ฒ„์—๋งŒ ๋ˆ์„ ํˆฌ์žํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์กด์žฌํ•˜๋Š” ๋™์•ˆ ์ด ๋„๊ตฌ๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ™•๋ณดํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋Š” ๊ฐœ๋ฐฉํ˜• OS ํ‘œ์ค€ํ™”๋ฅผ ๋‹ด๋‹นํ•˜๋Š” Linux ๊ฐœ๋ฐœ์ž ๋„คํŠธ์›Œํฌ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์–ด์š” ์ฃผ์ œ๋ณ„ ํฌ๋Ÿผ์—์„œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ฐพ์•„๋ณด์„ธ์š”. ๊ทธ๋Ÿฌ๋‚˜ Quora ์ฃผ๋ฏผ ์ค‘ ํ•œ ๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. IRC ์ฑ„ํŒ… Freenode์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์€ ๋งค์šฐ ์‰ฝ๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์„ค๋ช…๋˜์—ˆ์œผ๋ฏ€๋กœ ์†Œ๊ทœ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ฌธ์ œ๋Š” ์ „ ์ง€๊ตฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์—์„œ (PDF ๋ฐ EPUB). ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ฐพ์„ ์ˆ˜์žˆ๋‹ค OBS ์ž‘์—…์— ๋Œ€ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€(์˜ˆ์™€ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Œ)

๋Ÿฐ๋ฐํฌ

๋„๊ตฌ ์—ด๊ธฐ(GitHub์˜)๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋ฐ ํด๋ผ์šฐ๋“œ์˜ ์ž‘์—…์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ˆ˜ ์Šคํฌ๋ฆฝํŠธ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. Rundeck์€ ControlTier ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์˜ "๋”ธ"์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Rundeck์€ 2010๋…„์— ์ด ํšŒ์‚ฌ์—์„œ ๋ถ„๋ฆฌ๋˜์–ด Puppet, Chef, Git ๋ฐ Jenkins์™€์˜ ํ†ตํ•ฉ ๋“ฑ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ธ์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์€ ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์›”ํŠธ ๋””์ฆˆ๋‹ˆ ํšŒ์‚ฌ, ์„ธ์ผ์ฆˆ ํฌ์Šค ะธ Tickโ€‹โ€‹etmaster. ํ•˜์ง€๋งŒ ์ด ํ”„๋กœ์ ํŠธ๋Š” ์Šคํƒ€ํŠธ์—…์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Rundeck์ด Apache v2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด ๋„๊ตฌ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

Rundeck๊ณผ โ€‹โ€‹ํ•จ๊ป˜ ์ผํ–ˆ๋˜ Reddit ๊ฑฐ์ฃผ์ž, ะณะพะฒะพั€ะธั‚, ๋Œ€๋ถ€๋ถ„์˜ ์–ด๋ ค์›€์„ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๊ฒƒ์œผ๋กœ ๊ทธ๋ฅผ ๋„์™”์Šต๋‹ˆ๋‹ค ๋ฌธ์„œ ๋ฐ ์ „์ž์ฑ…, ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ์œผ๋กœ ๋„๊ตฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ์”จ๋””

๋„๊ตฌ ์—ด๊ธฐ(GitHub์˜) ์ฝ”๋“œ ๋ฒ„์ „ ์ œ์–ด๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค. 2007๋…„ ํšŒ์‚ฌ์—์„œ ์ถœ์‹œํ•œ ์ œํ’ˆ์ž…๋‹ˆ๋‹ค. ThoughtWorks โ€” ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋Š” Cruise๋ผ๊ณ  ๋ถˆ๋ ธ์Šต๋‹ˆ๋‹ค.

GoCD๋Š” ์˜จ๋ผ์ธ ์ž๋™์ฐจ ํŒ๋งค ์‚ฌ์ดํŠธ AutoTrader, ๊ณ„๋ณด ์„œ๋น„์Šค Ancestry ๋ฐ ์‹ ์šฉ์นด๋“œ ์ œ๊ณต์—…์ฒด Barclaycard์˜ ์—”์ง€๋‹ˆ์–ด๋“ค์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋„๊ตฌ ์‚ฌ์šฉ์ž์˜ XNUMX๋ถ„์˜ XNUMX์€ ์ค‘์†Œ๊ธฐ์—…์— ์†ํ•œ๋‹ค.

์Šคํƒ€ํŠธ์—… ์‚ฌ์ด์—์„œ ์ด ์„œ๋น„์Šค์˜ ์ธ๊ธฐ๋Š” ๊ฐœ๋ฐฉ์„ฑ์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” Apache v2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— GoCD ๊ทธ๊ฒƒ์€์ด ํƒ€์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด(์ธ์ฆ ์‹œ์Šคํ…œ ๋ฐ ํด๋ผ์šฐ๋“œ ์†”๋ฃจ์…˜)์™€์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ. ์ง„์ •ํ•œ ์‹œ์Šคํ…œ ๊ฝค ๋ณต์žกํ•˜๋‹ค ๋งˆ์Šคํ„ฐ๋ง์—๋Š” ๋งŽ์€ ์ˆ˜์˜ ์šด์˜์ž์™€ ํŒ€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ถ€ ์‚ฌ์šฉ์ž๋Š” ์—ด์•…ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ํ•„์š” ํ™•์žฅ์„ ์œ„ํ•ด ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ€ํŠธ์—…์„ ์œ„ํ•œ CICD: ์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋Œ€๊ธฐ์—…๊ณผ ์œ ๋ช… ๊ธฐ์—…๋งŒ์ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 
์‚ฌ์ง„ โ€” ๋งคํŠธ ์™€์ผ๋“œ๋ณด์–ด โ€” ์–ธํ”Œ๋ž˜์‰ฌ

GoCD๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ์›น์‚ฌ์ดํŠธ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ. ์ถ”๊ฐ€ ์ •๋ณด์˜ ์ถœ์ฒ˜๋กœ๋„ ์ถ”์ฒœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GoCD ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ๊ทธ ๋งค๋‰ด์–ผ ํฌํ•จ ์„ค์ •์œผ๋กœ.

์  ํ‚จ์Šค

Jenkins๋Š” ๋„๋ฆฌ ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฉฐ ๊ณ ๋ ค CICD ๋ถ„์•ผ์˜ ์ผ์ข…์˜ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  CICD๊ฐ€ ์—†์œผ๋ฉด ์ด ์„ ํƒ์ด ์™„์ „ํžˆ ์™„๋ฃŒ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” 2011๋…„์— ๋“ฑ์žฅํ–ˆ์œผ๋ฉฐ, ์ ์  Oracle์˜ Project Hudson ํฌํฌ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์  ํ‚จ์Šค์™€ ํ•จ๊ป˜ ั€ะฐะฑะพั‚ะฐัŽั‚ NASA, Nintendo ๋ฐ ๊ธฐํƒ€ ๋Œ€๊ทœ๋ชจ ์กฐ์ง์—์„œ. ํ•˜์ง€๋งŒ ๋” 8 % ์‚ฌ์šฉ์ž๋Š” ์ตœ๋Œ€ XNUMX๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋œ ์†Œ๊ทœ๋ชจ ํŒ€์„ ๊ณ„์ •์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ์€ ์™„์ „ ๋ฌด๋ฃŒ์ด๋ฉฐ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ. ๊ทธ๋Ÿฌ๋‚˜ Jenkins๋ฅผ ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์šฉ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•…๊ธฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ๋™์•ˆ ๊ทธ ์ฃผ์œ„์—๋Š” ๋Œ€๊ทœ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ˜•์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ํ†ตํ•ด ์ ๊ทน์ ์œผ๋กœ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋”ง ะธ Google ๊ทธ๋ฃน์Šค. Jenkins์˜ ์ž๋ฃŒ๋Š” Habrรฉ์—๋„ ์ •๊ธฐ์ ์œผ๋กœ ๊ฒŒ์žฌ๋ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ผ์›์ด ๋˜์–ด Jenkins์™€ ํ˜‘๋ ฅ์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ ะธ ๊ฐœ๋ฐœ์ž ๊ฐ€์ด๋“œ. ๋˜ํ•œ ๋‹ค์Œ ๊ฐ€์ด๋“œ์™€ ์ฑ…๋„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

Jenkins์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ์ธก๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ. ๋„๊ตฌ์— ๋Œ€ํ•œ ๊นŠ์€ ์ง€์‹์ด ์—†๋Š” ๊ด€๋ฆฌ์ž๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ๊ธฐ ์‰ฌ์šด API๋ฅผ ํ†ตํ•ด Jenkins๋ฅผ ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์  ํ‚จ์Šค X ํด๋ผ์šฐ๋“œ๋ฅผ ์œ„ํ•ด. ์ผ๋ถ€ ์ผ์ƒ์ ์ธ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ IT ์ธํ”„๋ผ์— ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ œ๊ณต์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ ๋ด‡

์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ์ฃผ๊ธฐ๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์†์ ์ธ ํ†ตํ•ฉ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ด ๋„๊ตฌ์˜ ์ž‘์„ฑ์ž๋Š” ์—”์ง€๋‹ˆ์–ด Brian Warner์˜€์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๊ทธ ์‚ฌ๋žŒ์€ ๊ทผ๋ฌด ์ค‘์ด์•ผ ๋ณ€๊ฒฝ๋จ XNUMX๋ช…์˜ ๊ฐœ๋ฐœ์ž๋กœ ๊ตฌ์„ฑ๋œ Buildbot ๊ฐ๋… ์œ„์›ํšŒ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ ๊ทธ๋ฃน.

๋นŒ๋“œ ๋ด‡ ์‚ฌ์šฉ ๋œ LLVM, MariaDB, Blender ๋ฐ Dr.Web๊ณผ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ. ๊ทธ๋Ÿฌ๋‚˜ wxWidgets ๋ฐ Flathub์™€ ๊ฐ™์€ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ๋ชจ๋“  ์ตœ์‹  VCS๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด Python์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์—ฐํ•œ ๋นŒ๋“œ ์„ค์ •์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ๊ทธ๋“ค ๋ชจ๋‘๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ ์˜ˆ๋ฅผ ๋“ค์–ด ์ œXNUMX์ž ํŠœํ† ๋ฆฌ์–ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. IBM ๋งค๋‰ด์–ผ.

๋ฌผ๋ก , ๊ทธ๊ฒŒ ๋‹ค๊ฐ€ ์•„๋‹ˆ์•ผ ์†Œ๊ทœ๋ชจ ์กฐ์ง๊ณผ ์Šคํƒ€ํŠธ์—…์ด ์ฃผ๋ชฉํ•ด์•ผ ํ•  DevOps ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋Œ“๊ธ€๋กœ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๋‹ค์Œ ์ž๋ฃŒ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋„๊ตฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํšŒ์‚ฌ ๋ธ”๋กœ๊ทธ์— ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€