අද මට මගේ පළමු CI (Continuous Integration) පයිප්ලයින් සකස් කරලා. පළමු වාරයේ පරීක්ෂණය අසාර්ථක වුණා – වැරදි වචනයක් නිසා නොව, පයිප්ලයින් ඇප් එකට අවශ්ය සියලු සේවාවන් පරීක්ෂා නොකිරීම නිසා.
GitHub Actions හි .github/workflows ෆෝල්ඩරයට යොදපු YAML ගොනුවේ, Docker Compose භාවිතා කරලා docker compose up -d --build කියලා සම්පූර්ණ ස්ටැක් එක ඇරඹුනේ. එතැනින් curl --fail http://localhost:5000 මඟින් ඇප් එකට ප්රතිචාර ලැබේද කියලා පරීක්ෂා කරනවා. මුල් උත්සාහයේ, Docker run එකක් පමණක් භාවිතා කරලා, Redis කන්ටේනර් එක නොගෙන, ඇප් එක තනිව ධාවනය කළා.
ඒ නිසා curl එක 500 දෝෂයක් (Internal Server Error) ලබාදෙන්නා. 500 දෝෂය කියන්නේ සර්වරය ඉල්ලීමේදී අභ්යන්තර ගැටළුවක් ඇතිවීම, එනම් ඇප් එක Redis සම්බන්ධතාවයක් බලාපොරොත්තු වූවත්, ඒ සම්බන්ධතාවයක් නොමැති වීම නිසා. app.py ෆයිලයේ cache.incr("hits") කියන කොටස එම අසමත්කමට හේතුව.
ඉන්පසු, YAML ගොනුවේ docker compose up පියවර එකතු කිරීමෙන්, web සහ redis දෙකම එකවර ඇරඹුනා. Redis සක්රිය වීමත් සමඟ 500 දෝෂය අතුරුදහන් වී, පයිප්ලයින් පූර්ණ වරදකින් රතු නොවී, හරිත තලයකින් පෙනී සිටියා.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සමාජය තවමත් DevOps හා CI/CD පද්ධති ගැන ඉගෙන ගැනීමට නවීන වේලාවකයි. මෙම කතාවෙන් සිසුන්ට, නව සංවර්ධකයින්ට, ව්යාපාරිකයින්ට පහත ලාභ ලැබෙනවා:
- ඇප් එකේ සියලු ධාරිතාවයන් (Redis, DB, Cache) එක්ක පරීක්ෂා කිරීමේ වැදගත්කම තේරුම් ගැනීම.
- GitHub Actions වැනි නොමිලේ සේවාවන් භාවිතා කරලා, ස්වයංක්රීය පරීක්ෂණයක් ඉක්මනින් සකස් කරගැනීම.
- දෝෂය පෙනෙන්නා පළමු මොහොතේම හඳුනාගැනීමෙන්, නිෂ්පාදන පරිසරයට ගෙනයන වැරදි අවම කිරීම.
- දෙවන පියවරේ Docker Compose භාවිතයෙන් සංකීර්ණ පරිසරයක් අඩු පිරිවැයෙන් සකස් කරගැනීම.
මෙම පියවරයන් අනුගමනය කළොත්, ලංකාවේ තොරතුරු තාක්ෂණ ව්යාපාරයන්ට තත්ත්වය උසස් කිරීම, කාර්ය සාධනය වැඩි කිරීම, සහ ග්ලෝබල් තලයේ තරඟකාරීත්වය වැඩි කිරීමේ හැකියාව ලැබේ.
අවසන් වශයෙන්, CI පයිප්ලයින් එකක් සකස් කරද්දී “ඇප් එකේ සියලුම ධාරිතාවයන් සකස් කරගෙන පරීක්ෂා කරන්න” කියන මූලික නීතිය අමතක නොකළොත්, 500 දෝෂයක් ඔබට ඉගෙනුමක් ලබාදෙන හොඳ මිතුරක් බවට පත්වේ.