|
DevOps සහ CI/CD හැඳින්වීම: Software හදන එක, Test කරන එක, Deploy කරන එක Automate කරමු! 🚀

DevOps සහ CI/CD හැඳින්වීම: Software හදන එක, Test කරන එක, Deploy කරන එක Automate කරමු! 🚀

technology web development software engineering
By Rasanjana 2025-04-10 18:43:56

Software එකක් හදනවා කියන්නේ හරියට කෑමක් උයනවා වගේ වැඩක්. Developers ලා (Code ලියන අය 👨‍💻) තමයි ingredients එකතු කරලා recipe එක හදන්නේ. Operations ටීම් එක (Server, network බලන අය 🧑‍🔧) තමයි ඒ කෑම එක හරියට පිඟානකට බෙදලා කස්ටමර්ට දෙන්නේ.

හැබැයි ඉස්සර මේ දෙගොල්ලෝ වැඩ කලේ ටිකක් වෙන් වෙලා. හරියට කුස්සියේ දෙන්නෙක් දෙපැත්තකට වෙලා වැඩ කරනවා වගේ. 😠 මොකද වුනේ?


  • Code එක හදලා ඉවර වුනාට පස්සේ ඒක server එකට දාන්න (deploy කරන්න) කල් යනවා. ⏳
  • Deploy කරාට පස්සේ එක එක අවුල් (bugs 🐞) එනවා.
  • Developer ටීම් එකයි Operations ටීම් එකයි අතර ප්‍රශ්න ඇති වෙනවා. ("අපේ පැත්තේ අවුලක් නෑ, ඔයාලගේ code එකේ අවුල!" වගේ කතා 🤫).
  • අන්තිමේදී customer ට software එක පරක්කු වෙලා, අඩුපාඩුත් එක්ක ලැබෙන්නේ. 😥


මෙන්න මේ ප්‍රශ්නෙට විසඳුම තමයි DevOps කියන්නේ!

DevOps කියන්නේ මොකක්ද? 🤔


DevOps කියන්නේ එක ලොකු වචනයක් වුනාට, මේක ඇත්තටම සංස්කෘතියක් (Culture), ක්‍රියාවලියක් (Practices), සහ මෙවලම් (Tools) එකතුවක්.

සරලවම කිව්වොත්, Software හදන (Development) අයයි, ඒක පවත්වාගෙන යන (Operations) අයයි අතර තිබ්බ තාප්ප බිඳලා, දෙගොල්ලොම එකට එකතු වෙලා, මුළු software life cycle එකම (හදන තැන ඉඳන් customer අතට යනකම්) වේගවත්ව 💨 සහ කාර්යක්ෂමව කරන්න හදාගත්ත ක්‍රමයක්.


🤝 DevOps වල ප්‍රධාන අරමුණු:

  1. Collaboration (සහයෝගීතාවය): Dev සහ Ops ටීම් එකට වැඩ කරන එක. 🫂
  2. Automation (ස්වයංක්‍රීයකරණය): පුළුවන් තරම් වැඩ (build, test, deploy) machines ලවා automate කරවන එක. 🤖
  3. Faster Delivery (වේගවත් බෙදාහැරීම): අලුත් features, bug fixes ඉක්මනට customer ට දෙන එක. 🏎️
  4. Improved Quality (ගුණාත්මකභාවය): අඩුපාඩු අඩු, ස්ථාවර software එකක් දෙන එක. ✅
  5. Better Communication (හොඳ සන්නිවේදනය): ටීම් අතර පැහැදිලි communication එකක් තියාගන්න එක. 💬


DevOps කියන්නේ හරියට Formula 1 ටීම් එකක් වගේ. Driver (Developer), Pit Crew (Operations), Engineers හැමෝම එකට වැඩ කරලා තමයි race එක දිනන්නේ! 🏁

CI/CD කියන්නේ මොකක්ද? ⚙️


DevOps කියන සංකල්පය ප්‍රායෝගිකව ක්‍රියාත්මක කරන්න පාවිච්චි කරන ප්‍රධානම එන්ජිම තමයි CI/CD කියන්නේ. මේක DevOps වල Automation කොටසට අයිති වෙනවා.

CI/CD කියන්නේ අකුරු දෙකක් එකතු වෙලා හැදුනට, මේකේ කොටස් දෙකක් තියෙනවා:

  1. CI = Continuous Integration (නිරන්තර ඒකාබද්ධ කිරීම) 🔄
  2. CD = Continuous Delivery / Continuous Deployment (නිරන්තර බෙදාහැරීම / නිරන්තර යෙදවීම) ➡️


1. Continuous Integration (CI) 🧐

Developer කෙනෙක් අලුතෙන් code එකක් ලිව්වම හරි, තියෙන code එකේ වෙනසක් කරාම හරි, ඒ code එක නිතරම අනිත් අයගේ code එක්ක එකතු කරලා (integrate/merge කරලා) ප්‍රධාන code repository එකකට (Git වගේ) push කරනවා.

ඒ push කරපු ගමන් මොකද වෙන්නේ? 🤔

CI server එකක් (Jenkins, GitLab CI, GitHub Actions වගේ tool එකක්) මේක අඳුනගෙන ස්වයංක්‍රීයව (automatically) පහල දේවල් ටික කරනවා:

  • Code එක Build කරනවා: Code එක compile කරලා දුවන්න පුළුවන් software එකක් හදනවා. 🏗️
  • Automated Tests Run කරනවා: Unit tests, integration tests වගේ test ගොඩක් run කරලා බලනවා අලුත් code එකෙන් මොකුත් කැඩිලාද, අවුලක් ඇවිල්ලද කියලා. 🧪

CI වලින් වෙන දේ:

  • Code එකේ bugs 🐞 තියෙනවනම් ඉක්මනටම අල්ලගන්න පුළුවන්.
  • Developers ලා නිතරම code merge කරන නිසා integration ප්‍රශ්න අඩුයි.
  • Code quality එක වැඩි වෙනවා. 👍

හරියට කෝකියෙක් කෑම එක උයන ගමන් හැම වෙලේම රස බලනවා වගේ. අඩුපාඩුවක් තිබ්බොත් එතනම හදාගන්න පුළුවන්! 😋


2. Continuous Delivery (CD) 🚚

CI එකෙන් පස්සේ එන පියවර තමයි මේ. CI එකේදී Build කරලා, Test කරලා 'හොඳයි' ✅ කියලා pass වුන code එක, Deployment එකට සම්පූර්ණයෙන්ම සූදානම් (ready) කරන එක තමයි Continuous Delivery වලින් වෙන්නේ.

ඒ කියන්නේ, build එක හැම test එකක්ම pass වුනොත්, ඒක ඕනෑම වෙලාවක production server එකට (customer පාවිච්චි කරන live environment එකට) deploy කරන්න පුළුවන් තත්වෙට ගේනවා. 📦

හැබැයි, Deployment එක කරන්නේ manually. ඒ කියන්නේ, manager කෙනෙක් හරි, team lead කෙනෙක් හරි බොත්තමක් ඔබලා තමයි deploy කරන්නේ. Release එකට කලින් අන්තිම check එකක් කරන්න, නැත්නම් business එකට ඕන වෙලාවක release කරන්න මේකෙන් ඉඩ ලැබෙනවා. 👀🖱️


3. Continuous Deployment (CD) 🚀

මේක Continuous Delivery එකේ ඊලඟ අදියර. මෙතනදී, CI එකෙන් build කරලා, test කරලා pass වුන code එක, කිසිම මනුස්සයෙක්ගේ අතගැහීමක් නැතුව (no manual intervention), ස්වයංක්‍රීයවම production server එකට deploy වෙනවා. 🤯

CI -> Automated Tests Pass ✅ -> Automatically Deploy to Production 🌍

මේක සුපිරිම advanced ක්‍රමයක්! හැබැයි මේකට ගොඩක් හොඳ automated testing system එකක් සහ ලොකු විශ්වාසයක් තියෙන්න ඕනේ. හැම පොඩි වෙනසක්ම කෙලින්ම customer අතට යනවා!


CI/CD වලින් වෙන දේ:

  • Release process එක සුපිරි වේගවත් වෙනවා. 💨
  • Manual වැඩ අඩු නිසා වැරදීම් (human errors) අඩු වෙනවා. 👇
  • Developers ලට ඉක්මනට feedback ලැබෙනවා. 👂
  • Customer ට අලුත් features, fixes ඉක්මනට ලැබෙනවා. 😊

Automated Pipeline එකක් කියන්නේ මොකක්ද? ⛓️


CI/CD ක්‍රියාවලිය වැඩ කරන්නේ Pipeline එකක් හරහා. මේක හරියට factory එකක assembly line එකක් වගේ. එක දිගට සම්බන්ධ වුන, ස්වයංක්‍රීයව වැඩ කරන steps ටිකක්.

සාමාන්‍ය Pipeline එකක තියෙන ප්‍රධාන steps:

  1. Commit: Developer කෙනෙක් code එක ලියලා repository එකට push කරනවා. 💾
  2. Build: CI server එක code එක අරගෙන build කරනවා. 🏗️
  3. Test: එක එක විදියේ automated tests (Unit, Integration, Security, Performance) run කරනවා. 🧪🔬🛡️💨
  4. Deploy (to Staging): Tests pass වුනොත්, code එක Staging environment එකකට (Production එකට සමාන test environment එකක්) deploy කරනවා. ➡️💻 (අන්තිම test වලට)
  5. Deploy (to Production): Staging එකෙත් අවුලක් නැත්නම් (සහ Continuous Deployment නම්), code එක Production එකට deploy වෙනවා. 🚀➡️🌍 (Customer අතට!)

මේ හැම step එකක්ම automate කරලා තියෙන්නේ. එක step එකක් fail වුනොත්, pipeline එක එතනින් නවතිනවා, අදාල අයට notification එකක් යනවා. 🚨 එතකොට ඉක්මනටම ප්‍රශ්නේ හඳුනගෙන හදන්න පුළුවන්.


ප්‍රසිද්ධ CI/CD Tools කීපයක්:

  • Jenkins (ගොඩක් ජනප්‍රිය, open-source)
  • GitLab CI/CD (GitLab එක්කම එන නියම tool එකක්)
  • GitHub Actions (GitHub එක්ක integrate වෙලා වැඩ)
  • CircleCI
  • AWS CodePipeline, Azure DevOps (Cloud platforms එක්ක එන services)


ඉතින්, මේ ඔක්කොම වැදගත් ඇයි? 🤔

සරලවම:

  • වේගය: Software updates ඉක්මනට දෙන්න පුළුවන්. ⚡
  • ගුණාත්මකභාවය: Automated testing නිසා bugs අඩුයි. ✅
  • විශ්වාසනීයත්වය: Deployment process එක ස්ථාවරයි, predictable. 👍
  • කාර්යක්ෂමතාවය: Manual වැඩ අඩු නිසා developers ලට coding වලට වැඩි වෙලාවක් යොදවන්න පුළුවන්. 🤓
  • සතුට: Team එකට stress අඩුයි, customer සතුටුයි! 😄🥳


DevOps සහ CI/CD කියන්නේ අද කාලේ software හදන company එකකට නැතුවම බැරි දෙයක් වෙලා. මේවා හරියට පාවිච්චි කරොත්, software development process එක ගොඩක් smooth, වේගවත්, සහ quality එකක් බවට පත්කරගන්න පුළුවන්.

හොඳයි මචං, ඔන්න DevOps සහ CI/CD ගැන මූලික හැඳින්වීමක් දුන්නා. මේක මුල විතරයි, මේ මාතෘකාව ඇතුලේ තව ගොඩක් දේවල් ඉගෙනගන්න තියෙනවා. 🤓

කොහොමද පාඩම? තේරුණාද? 😊 මොනවාහරි ප්‍රශ්න තියෙනවනම් අහන්න, අපි තව කතා කරමු! 👇

දිගටම මේ වගේ දේවල් ඉගෙනගන්න කැමතිනම් කියන්න,! 😉👋


Rasanjana

Rasanjana

Member since 2025-04-09 13:55:06

Comments

Please login to post a comment.

No comments yet. Be the first to comment!