සාම්ප්රදායිකව මෘදුකාංගයක් නිර්මාණය කිරීමේදී Code එක ලියූ පසු එය පරීක්ෂා කිරීමට සහ Server එකට දැමීමට (Testing & Deployment) මිනිස් ශ්රමය විශාල වශයෙන් වැය විය. මෙහිදී අතපසුවීම් හෝ වැරදි සිදුවීමට ඇති ඉඩකඩ වැඩිය. CI/CD Pipeline එකක් මඟින් සිදු කරන්නේ මෙම සම්පූර්ණ ක්රියාවලිය ස්වයංක්රීය (Automated) මෘදුකාංග “pipeline” එකක් හරහා ගෙන යාමයි.
1. CI – Continuous Integration
Developer කෙනෙක් තමන්ගේ Code එක මධ්යම පද්ධතියකට (උදා: GitHub, GitLab) යොමු කළ සැනින් මෙම පියවර ආරම්භ වේ.
– Build: පද්ධතිය විසින් ස්වයංක්රීයව අලුත් Code එක සහ පරණ Code එක එකතු කර අලුත් මෘදුකාංග පිටපතක් සාදයි.
– Automated Testing: ලියන ලද Code එකේ දෝෂ (Bugs) තිබේදැයි පරිගණකය විසින්ම පරීක්ෂා කරයි. මෘදුකාංගය නිකුත් කිරීමට පෙර එහි ගුණාත්මකභාවය තහවුරු කරන්නේ මෙහිදීය.
– Feedback: කිසියම් පරීක්ෂණයක් අසාර්ථක වුවහොත්, එම මොහොතේම Developer හට පණිවිඩයක් ලැබේ. එවිට වැරැද්ද ඉක්මනින් නිවැරදි කළ හැකිය.
2. CD – Continuous Delivery / Deployment
CI පියවර සාර්ථකව අවසන් වූ පසු, මෘදුකාංගය සජීවීව පාරිභෝගිකයා අතට පත් කරන ක්රියාවලිය මින් සිදු වේ.
– Continuous Delivery: මෙහිදී මෘදුකාංගය Server එකට දැමීමට සූදානම් කර තබන නමුත්, එය සජීවී කිරීමට (Go Live) මනුෂ්යයෙකුගේ අනුමැතිය අවශ්ය වේ.
– Continuous Deployment: කිසිදු මැදිහත්වීමකින් තොරව, පරීක්ෂණ සමත් වූ සැණින් Code එක ස්වයංක්රීයවම Server එකට (Production) යාවත්කාලීන වේ.
CI/CD පයිප්පයකින් ලැබෙන වෘත්තීය වාසි
1) Faster Feedback: Code එකේ වැරැද්දක් තිබේ නම් මිනිත්තු කිහිපයකින් එය දැනගත හැකිය.
2) Reduced Risk: කුඩා කොටස් වශයෙන් Code එක යාවත්කාලීන කරන නිසා සහ සෑම විටම පරීක්ෂාවට ලක් වන නිසා පද්ධතිය බිඳ වැටීමේ අවදානම ඉතා අඩුය.
3) Automation: අතින් කරන්නට ගියහොත් පැය ගණනක් ගතවන කාර්යයන් තත්පර කිහිපයකින් නිම වේ.
ප්රධාන වශයෙන් භාවිත වන මෙවලම් (Tools)
වෘත්තීය මට්ටමේදී මේ සඳහා වැඩිපුරම භාවිත කරන්නේ පහත සඳහන් මෘදුකාංගයන් ය:
– Jenkins
– GitHub Actions
– GitLab CI/CD
– CircleCI
අවසාන වශයෙන්: CI/CD Pipeline යනු මෘදුකාංගයක් ලියන මොහොතේ සිට එය පරිශීලකයා අතට පත්වන තෙක් සියලු පියවර නිරවද්යව සහ වේගවත්ව සිදු කරන ස්වයංක්රීය පාලම් පද්ධතියකි.
සරල උදාහරණයකින් තේරුම් ගනිමු:
හිතන්න ඔබ කේක් සාදා විකුණන ව්යාපාරයක් කරනවා කියලා. මෙහිදී CI (Continuous Integration) යනු ඔබ කේක් මිශ්රණය සෑදූ සැණින්, එය නියමිත පදමට තිබේදැයි සහ රස නිවැරදිදැයි ස්වයංක්රීය යන්ත්රයක් මඟින් පරීක්ෂා කිරීමයි. එහි දෝෂයක් නැත්නම් පමණක් එය බේක් කිරීමට යොමු වේ. CD (Continuous Deployment) යනු එම බේක් වූ කේක් එක ස්වයංක්රීයවම ඇසුරුම් කර, කිසිදු ප්රමදයකින් තොරව පාරිභෝගිකයාගේ නිවසටම බෙදා හැරීමයි. මෘදුකාංග ලෝකයේදීත් සිදුවන්නේ මෙලෙසම කේතය (Code) ලිවූ මොහොතේ සිට එය පාවිච්චි කරන අය අතට පත්වන තෙක් ක්රියාවලිය ස්වයංක්රීය වීමයි.
උපුටා ගැනීම : Toyar
