αž―αž€αžŸαžΆαžšαž™αŸ„αž„αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αžαŸ’αž„αŸƒαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž–αžΆαž€αŸ’αž™αž“αŸαŸ‡ αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž€αžΆαžšαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž CI αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž§αž”αž€αžšαžŽαŸαž–αŸαž‰αž“αž·αž™αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαžΆαŸ”

αž―αž€αžŸαžΆαžšαž™αŸ„αž„αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš
/flickr/ Altug Karakoc / CC BY / αžšαžΌαž”αžαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚

αžšαž™αŸˆαž–αŸαž›

αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‚αž˜αŸ’αžšαŸ„αž„αž‰αžΉαž€αž‰αžΆαž”αŸ‹ αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž€αžΌαžŠαŸ”

αž‚αŸ„αž›αžŠαŸ…αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜αž’αžΆαž…αž‘αžŸαŸ’αžŸαž“αŸαž‘αžΆαž™αž”αžΆαž“ αž“αž·αž„αžšαž€αžƒαžΎαž‰αž€αŸ†αž αž»αžŸ αž“αž·αž„αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž’αžΆαž…αž€αžΎαžαž˜αžΆαž“αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αžΆαž“αž–αŸαž›αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αžŸαž‡αž»αž›αžœαžΆαŸ”

αž–αžΆαž€αŸ’αž™β€‹αžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜β€‹αž”αž“αŸ’αžβ€‹αž”αžΆαž“β€‹αž›αŸαž…β€‹αž‘αžΎαž„β€‹αžŠαŸ†αž”αžΌαž„β€‹αž€αŸ’αž“αž»αž„β€‹αž†αŸ’αž“αžΆαŸ† αŸ‘αŸ©αŸ©αŸ‘αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αžŠαŸ„αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž—αžΆαžŸαžΆ UML Grady Butch (Grady Booch) αŸ” αžœαž·αžŸαŸ’αžœαž€αžšαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž“αŸƒ CI αžŠαŸ‚αž›αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž Booch. αžœαžΆαž”αž„αŸ’αž€αž”αŸ‹αž“αŸαž™αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž”αž“αŸ’αžαŸ‚αž˜αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸ…αž–αŸαž›αžšαž…αž“αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžœαžαŸ’αžαž»αŸ” Gradi αž˜αž·αž“αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŽαžΆαž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ’αžšαŸ„αž™αž˜αž€αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹ "αž€αžΆαžšαžœαž·αž—αžΆαž‚ αž“αž·αž„αž€αžΆαžšαžšαž…αž“αžΆαžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžœαžαŸ’αžαž»αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ"αž‚αžΆαžαŸ‹αž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆαž‚αŸ„αž›αžŠαŸ…αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ "αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„" αŸ”

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

αž“αŸ…αž†αŸ’αž“αžΆαŸ† 1996 CI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž˜αŸαžαžŠαŸ„αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αž›αžΆαŸ†αž„ (XP) - αžαŸαž“ αž”αŸαž€ (Kent Beck) αž“αž·αž„ αž›αŸ„αž€ Ron Jeffries (Ron Jeffries) αŸ” αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‘αžΆαŸ†αž„αžŠαž”αŸ‹αž–αžΈαžšαž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αžŸαŸ’αžαžΆαž”αž“αž·αž€αž“αŸƒ XP αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΈαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž CI αž“αž·αž„αž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž–αžΈαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαŸ”

αž“αŸ…αžŠαžΎαž˜αž‘αžŸαžœαžαŸ’αžŸαžšαŸαž†αŸ’αž“αžΆαŸ† 2000 αžŸαŸ’αžαžΆαž”αž“αž·αž€αž˜αŸ’αž“αžΆαž€αŸ‹αž“αŸƒαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Agile αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž›αžΎαž€αž€αž˜αŸ’αž–αžŸαŸ‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” Martin Fowler ( Martin Fowler ) αŸ” αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž‡αžΆαž˜αž½αž™ CI αž”αžΆαž“αž“αžΆαŸ†αž‘αŸ…αžŠαž›αŸ‹αž§αž”αž€αžšαžŽαŸαžŸαžΌαž αŸ’αžœαžœαŸ‚αžšαžŠαŸ†αž”αžΌαž„αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αŸαŸ‡ - CruiseControl αŸ” αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαž αžŸαŸαžœαž·αž€αžšαž”αžŸαŸ‹ Martin αž‚αžΊ Matthew Foemmel αŸ”

αžœαžŠαŸ’αžαž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‡αžΆαžŠαŸαž˜αž·αž“αžŠαŸ‚αž›αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αžŽαŸ‚αž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠαŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž’αžΆαž…αž‘αžΆαž‰αž™αž€αž”αžΆαž“αž“αŸ…αžαŸ’αž„αŸƒαž“αŸαŸ‡ - αžœαžΆαŸ” αž…αŸ‚αž€αž…αžΆαž™β€‹αžŠαŸ„αž™ αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαžŠαžΌαž… BSD αŸ”

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž˜αž€αžŠαž›αŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CI αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ” αž™αŸ„αž„αžαžΆαž˜αž€αžΆαžšαžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαžšαž”αžŸαŸ‹ Forrester [αž‘αŸ†αž–αŸαžš 5 αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ] αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2009 86% αž“αŸƒαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž…αŸ†αž“αž½αž“ XNUMX αž”αžΆαž“αžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž”αžΆαž“αž”αŸ’αžšαžΎ αž¬αž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž CI αŸ”

αžŸαž–αŸ’αžœβ€‹αžαŸ’αž„αŸƒβ€‹αž“αŸαŸ‡ αž€αžΆαžšβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜β€‹αž”αž“αŸ’αžβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αžŠαŸ„αž™β€‹αž’αž„αŸ’αž‚αž€αžΆαžšβ€‹αž˜αž€β€‹αž–αžΈβ€‹αž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜β€‹αž™αŸ‰αžΆαž„β€‹αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αŸ” αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2018 αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€αžŠαŸαž’αŸ†αž˜αž½αž™αž”αžΆαž“αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž•αŸ’αž“αŸ‚αž€αž–αŸαžαŸŒαž˜αžΆαž“αžœαž·αž‘αŸ’αž™αžΆαž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž€αžΆαžšαž’αž”αŸ‹αžšαŸ† αž“αž·αž„αž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αŸ’αž“αž€αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž–αžΆαž“αŸ‹αž“αžΆαž€αŸ‹ 58% αž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆαž–αž½αž€αž‚αŸαž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸ CI αž“αž·αž„αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ”

αžαžΎαž€αžΆαžšαž„αžΆαžšαž“αŸαŸ‡

αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαž§αž”αž€αžšαžŽαŸαž–αžΈαžšαŸ– αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αžŽαŸ‚ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ CI αŸ” αž€αŸ’αžšαŸ„αž™αž˜αž€αž‘αŸ€αžαž’αžΆαž…αž‡αžΆαž§αž”αž€αžšαžŽαŸαžšαžΌαž”αžœαž“αŸ’αž αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž–αž–αž€αŸ” αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž”αž„αŸ’αž αŸ„αŸ‡αž€αžΌαžŠαžαŸ’αž˜αžΈαž˜αŸ’αžαž„ αž¬αž…αŸ’αžšαžΎαž“αžŠαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ CI αž…αž˜αŸ’αž›αž„αžœαžΆαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαžœαžΆαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž―αž€αžαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CI αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž›αŸαžαž€αžΌαžŠαŸ”

αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΌαž‘αŸ…αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ†αžŽαžΆαž„αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜:

αž―αž€αžŸαžΆαžšαž™αŸ„αž„αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž CI αž”αž„αŸ’αž€αžΎαžαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ–

  • αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž—αŸ’αž›αžΆαž˜αŸ—αŸ” αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹ CI αž–αžΈαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αžΆαžšαž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸαž‚αžΊαž‡αžΆαž’αžΆαž‘αž·αž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αž”αŸ†αž•αž»αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ”
  • αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžαŸ’αžšαžΌαžœαžαŸ‚αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜ αž“αž·αž„αž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αžœαžΆαž‡αžΆαž“αž·αž…αŸ’αž…αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž‡αžΆαžšαžΏαž™αŸ—αž˜αžΆαž“αž€αžΆαžšαž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› αž”αŸ’αžšαŸ‚αž…αŸαž‰ αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ”
  • αž’αŸ’αžœαžΎαžŸαž“αŸ’αž“αž·αž”αžΆαžαž±αŸ’αž™αž”αžΆαž“αž‰αžΉαž€αž‰αžΆαž”αŸ‹αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αŸ” αž˜αŸ’αžαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αŸ”

αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž

αž”αž‰αŸ’αž αžΆαž‘αžΈαž˜αž½αž™αž‚αžΊαž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αž–αžŸαŸ‹αŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž˜αž½αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸ CI αž”αžΎαž€αž…αŸ†αž  (αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž–αŸαž›αž€αŸ’αžšαŸ„αž™) αžœαžΆαž“αžΉαž„αž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž…αŸ†αžŽαžΆαž™αž”αŸ’αžšαžΆαž€αŸ‹αž›αžΎαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž–αž–αž€αž’αžΆαž…αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ”

αž–αž½αž€αžœαžΆαžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžαŸ’αž“αžΆαžαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ” αž”αžΌαž€αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ‹ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž‡αž½αž™αžŸαž“αŸ’αžŸαŸ†αžŸαŸ†αž…αŸƒαž›αžΎαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ”

αž“αŸαŸ‡β€‹αž”αžΎβ€‹αžαžΆαž˜β€‹αž€αžΆαžšβ€‹αžŸαŸ’αž‘αž„αŸ‹β€‹αž˜αžαž· [αž‘αŸ†αž–αŸαžš ៑ៀ αž’αžαŸ’αžαž”αž‘] αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαž“αž”αž“αŸ’αž‘αž»αž€αž›αžΎαž”αž»αž‚αŸ’αž‚αž›αž·αž€αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ (αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αžŠαŸ†αž”αžΌαž„)αŸ” αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαžšαŸ€αž“αž§αž”αž€αžšαžŽαŸαžαŸ’αž˜αžΈ αž αžΎαž™αž˜αž·αžαŸ’αžαžšαž½αž˜αž€αžΆαžšαž„αžΆαžšαž˜αž·αž“αžαŸ‚αž„αžαŸ‚αž‡αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈαŸ—αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž‘αžΈαž”αžΈαž‚αžΊαž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αŸ” αž’αž„αŸ’αž‚αž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αž“αž½αž“αž…αŸ’αžšαžΎαž“αž“αŸƒαž€αžΌαžŠαž€αŸαžšαŸ’αžαž·αŸαžŠαŸ†αžŽαŸ‚αž›αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž”αŸ’αžšαžˆαž˜αž˜αž»αžαž“αžΉαž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ” αž“αŸαŸ‡αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž›αŸαžαž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž»αž“αž–αŸαž›αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž–αŸαž‰αž›αŸαž‰αž“αŸƒ CI αŸ”

αž―αž€αžŸαžΆαžšαž™αŸ„αž„αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜αž”αž“αŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš
/flickr/ αž’αžΆαž› / CC BY-SA

αž’αŸ’αž“αž€αžŽαžΆαž”αŸ’αžšαžΎ

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž™αž€αŸ’αžŸ IT αž‚αžΊαž‡αžΆαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαŸ†αž”αžΌαž„αž‚αŸαžŠαŸ‚αž›αž–αŸαž‰αž…αž·αžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αŸ” Google αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜αž”αž“αŸ’αžαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž‘αžŸαžœαžαŸ’αžŸαžšαŸαž†αŸ’αž“αžΆαŸ† 2000 αŸ” CI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž–αž“αŸ’αž™αžΆαžšαž–αŸαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŸαŸ’αžœαŸ‚αž„αžšαž€αŸ” αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž”αžΆαž“αž‡αž½αž™αž±αŸ’αž™αžšαž€αžƒαžΎαž‰ αž“αž·αž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž”αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ CI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž‚αŸ’αžšαž”αŸ‹αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒ IT αž™αž€αŸ’αžŸαŸ”

αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž€αŸαž‡αž½αž™αžŠαž›αŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžαžΌαž…αŸ—αž•αž„αžŠαŸ‚αžš αž αžΎαž™αž§αž”αž€αžšαžŽαŸ CI αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž’αž„αŸ’αž‚αž€αžΆαžšαž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž» αž“αž·αž„αžαŸ‚αž‘αžΆαŸ†αžŸαž»αžαž—αžΆαž–αž•αž„αžŠαŸ‚αžšαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ… Morningstar αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž”αžΆαž“αž‡αž½αž™ Patch αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡ 70% αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“αŸ” αž αžΎαž™αžœαŸαž‘αž·αž€αžΆαžœαŸαž‡αŸ’αž‡αžŸαžΆαžŸαŸ’αžαŸ’αžš Philips Healthcare αž’αžΆαž…αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž‘αŸ’αžœαŸαžŠαž„αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ”

αž§αž”αž€αžšαžŽαŸ

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαž–αŸαž‰αž“αž·αž™αž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CIαŸ–

  • Jenkins αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’ CI αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αžαž˜αž½αž™αŸ” αžœαžΆαž‚αžΆαŸ†αž‘αŸ’αžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‡αžΆαž„αž˜αž½αž™αž–αžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™ VCS αžœαŸαž‘αž·αž€αžΆαž–αž–αž€ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž™αžΎαž„αž€αŸαž”αŸ’αžšαžΎ Jenkins αž“αŸ… 1cloud: tool αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ DevOps αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”. αž‚αžΆαžαŸ‹αžαŸ‚αž„αžαŸ‚αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžŸαžΆαžαžΆ Git αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ†αžŽαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ”
  • Buildbot - αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ python αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžšαžŸαŸαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž§αž”αž€αžšαžŽαŸαžŠαŸ†αž”αžΌαž„αž‚αžΊαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŽαžΆαžŸαŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŸαŸ†αžŽαž„αžŠαŸ„αž™αž‡αž˜αŸ’αžšαžΎαžŸαž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αž’αŸ†αž‘αžΌαž›αžΆαž™αŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž“αŸƒαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαŸ†αž›αŸαž…αž“αžΌαžœαž’αžΆαŸ†αž„αžαž„αŸ‹αžŸαŸŠαžΈαžαŸαž’αž“αž’αžΆαž“αž‘αžΆαž”αžšαž”αžŸαŸ‹αžœαžΆαŸ”
  • αžŸαŸŠαžΈαž’αžΆαž™αžŸαŸŠαžΈ αž‚αžΊαž‡αžΆ Server αž–αžΈ Pivotal αžŠαŸ‚αž›αž”αŸ’αžšαžΎ Docker containersαŸ” Concourse CI αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ†αžŽαŸ‚αžŽαžΆαž˜αž½αž™αŸ” αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž‚αžΊαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž„αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž“αŸƒαž‘αŸ†αž αŸ†αžŽαžΆαž˜αž½αž™αŸ”
  • Gitlab CI αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ†αžŽαŸ‚ GitLab αŸ” αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž–αž–αž€ αž αžΎαž™αž”αŸ’αžšαžΎαž―αž€αžŸαžΆαžš YAML αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αžŠαžΌαž…αž‡αžΆ Concourse, Gitlab CI αž’αž“αž»αžœαžαŸ’αž αž’αž»αž„ Docker αžŠαŸ‚αž›αž‡αž½αž™αž”αŸ†αž”αŸ‚αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αž–αžΈαž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αŸ”
  • αž€αžΌαžŠ αž‚αžΊαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ CI αž–αž–αž€ αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™ GitHub, GitLab αž“αž·αž„ BitBucket αŸ” αžœαŸαž‘αž·αž€αžΆαž“αŸαŸ‡αž˜αž·αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŠαŸ†αž”αžΌαž„αž™αžΌαžšαž‘αŸ - αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš CI αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž‡αžΆαž˜αž»αž“αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Codeship αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž“αžΆαžαžαžΌαž… (αžšαž αžΌαžαžŠαž›αŸ‹ 100 αžŸαžΆαž„αžŸαž„αŸ‹αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ‚) αž“αž·αž„αž‚αž˜αŸ’αžšαŸ„αž„αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  Codeship αž’αžΆαž…αžšαž€αž”αžΆαž“αžŠαŸ„αž™αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαŸ”

αžŸαž˜αŸ’αž—αžΆαžšαŸˆαž–αžΈαž”αŸ’αž›αž»αž€αžŸαžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹