සංවර්ධනය සඳහා අතථ්ය යන්ත්ර භාවිතා කිරීමේ ප්රතිලාභ
වේගවත් මෘදුකාංග සංවර්ධන ලෝකය තුළ, සංවර්ධකයින් කාර්යක්ෂමව, ආරක්ෂිතව සහ නම්යශීලීව වැඩ කිරීමට අවශ්ය වේ. ව්යාපෘතිවලට බොහෝ පරායත්තතා, විවිධ මෙහෙයුම් පද්ධති අනුවාද සහ බහු පරිසරවල යෙදුම් පරීක්ෂා කිරීමේ අවශ්යතාවය ඇතුළත් විය හැකිය. අථත්ය යන්ත්ර (VM) ඉතා ප්රයෝජනවත් විසඳුමක් බවට පත්වන්නේ මෙහිදීය. අථත්ය යන්ත්ර අපට ප්රධාන පද්ධතිය වෙනස් නොකර, එහි මෙහෙයුම් පද්ධතිය සහ වින්යාසය සමඟ සම්පූර්ණ භෞතික පරිගණකයක් තුළ අථත්ය "පරිගණකයක්" ක්රියාත්මක කිරීමට ඉඩ සලසයි. මෙම ලිපිය සංවර්ධන අවශ්යතා සඳහා, විශේෂයෙන් තනි සංවර්ධකයින් සහ කණ්ඩායම් සඳහා අථත්ය යන්ත්ර භාවිතා කිරීමේ විවිධ වාසි සාකච්ඡා කරයි.
අතථ්ය යන්ත්රයක් යනු කුමක්ද?
අථත්ය යන්ත්රයක් යනු මෘදුකාංග අනුකරණය කරන ලද පරිගණක පරිසරයක් වන අතර එය තනි භෞතික පරිගණකයකට එකවර මෙහෙයුම් පද්ධති කිහිපයක් ක්රියාත්මක කිරීමට ඉඩ සලසයි. සෑම VM එකකටම තමන්ගේම සම්පත් (අථත්ය CPU, RAM, ගබඩාව සහ ජාලය) ඇති අතර ප්රධාන පද්ධතියෙන් (ධාරක) සහ අනෙකුත් VM වලින් හුදකලාව ක්රියාත්මක වේ. VM සාමාන්යයෙන් VirtualBox, VMware, Hyper-V, KVM වැනි අධි වයිසර් හෝ AWS, Azure සහ GCP වැනි වලාකුළු වේදිකා හරහා ධාවනය වේ.
සංවර්ධනය සඳහා, VMs බොහෝ විට ස්ථාවර සහ ස්ථාවර වැඩ පරිසරයක් සැකසීමට, හරස් වේදිකා පරීක්ෂණ සිදු කිරීමට සහ සත්කාරක පද්ධතියේ ආරක්ෂාව පවත්වා ගැනීමට භාවිතා කරයි.
1. සංවර්ධන පරිසරය හුදකලා කිරීම
VM එකක ඇති ලොකුම වාසියක් වන්නේ හුදකලාවයි. VM එකක නිශ්චිත පුස්තකාලයක්, මෙවලම් දාමයක් හෝ පරායත්තතාවයක් ස්ථාපනය කරන විට, එම වෙනස්කම් යටින් පවතින මෙහෙයුම් පද්ධතියට බලපාන්නේ නැත. සංවර්ධනය සඳහා බොහෝ විට නිශ්චිත මෘදුකාංග අනුවාද හෝ අවුල් සහගත වින්යාසයන් අවශ්ය වන බැවින් මෙය වැදගත් වේ.
උදාහරණ:
– නිශ්චිත ව්යාපෘතියක් සඳහා ඔබට Python හි පැරණි අනුවාදයක් උත්සාහ කිරීමට අවශ්ය විය හැකිය.
– ඔබ විශේෂ වින්යාසයකින් දත්ත සමුදාය ස්ථාපනය කළ යුතුය.
– ඔබට ධාවක, සේවා හෝ ජාල වින්යාසය සමඟ අත්හදා බැලීමට අවශ්යයි.
VM එකක් සමඟ, ඔබට සත්කාරක පද්ධතියට හානි කිරීමට බියෙන් තොරව මෙය කළ හැකිය, මන්ද සියල්ල සිදුවන්නේ වෙනම පරිසරයක බැවිනි.
2. අනුකූලතාව සහ ප්රතිනිෂ්පාදනය කිරීමේ හැකියාව
සංවර්ධනයේ සම්භාව්ය ගැටලුවක් වන්නේ "මගේ පරිගණකයේ එය ක්රියාත්මක වේ" යන වාක්යයයි. පරිසරය ස්ථාවර කර පහසුවෙන් ප්රතිනිර්මාණය කළ හැකි බැවින් VMs මෙම ගැටළුව අවම කිරීමට උපකාරී වේ.
VM රූපයක් හෝ සැකිල්ලක් නිර්මාණය කිරීමෙන්, කණ්ඩායම් වලට හරියටම එකම වින්යාසය බෙදා ගත හැකිය:
- මෙහෙයුම් පද්ධති අනුවාදය
– සම්පාදක/පරිවර්තක අනුවාදය
- දත්ත සමුදා වින්යාසය
- සහාය සේවා (Redis, RabbitMQ, Nginx, ආදිය)
එහි ප්රතිඵලයක් ලෙස, දෝෂ ප්රතිනිෂ්පාදනය කිරීම පහසු වන අතර, නිදොස්කරණය වේගවත් වේ. තවද, නව කණ්ඩායම් සාමාජිකයින් ඇතුළත් කිරීම බෙහෙවින් පහසු ය: ඔවුන් හුදෙක් පෙර-වින්යාස කරන ලද VM එකක් ක්රියාත්මක කරයි.
3. විවිධ මෙහෙයුම් පද්ධති පරීක්ෂා කිරීම
සියලුම යෙදුම් තනි වේදිකාවක ක්රියාත්මක නොවේ. සමහර විට ඔබ Windows, Linux හෝ macOS මත පවා ධාවනය කළ යුතු මෘදුකාංග සංවර්ධනය කරයි, නැතහොත් අවම වශයෙන් බහු Linux බෙදාහැරීම් සමඟ අනුකූල විය යුතුය.
බහු භෞතික උපාංග හිමිකර නොගෙන වේදිකා හරහා පරීක්ෂා කිරීම VM පහසු කරයි. ඔබට:
– පසු අන්ත සංවර්ධනය සඳහා උබුන්ටු ධාවනය කිරීම,
- ඩෙස්ක්ටොප් යෙදුම් පරීක්ෂාව සඳහා වින්ඩෝස් ධාවනය කිරීම,
– නිෂ්පාදන සේවාදායකයක් අනුකරණය කිරීම සඳහා CentOS/AlmaLinux වැනි නිශ්චිත බෙදාහැරීමක් ක්රියාත්මක කිරීම.
ඉලක්කගත පරිසරය තුළ යෙදුම හොඳින් ක්රියාත්මක වන බව සහතික කිරීමට මෙය ඉතා ප්රයෝජනවත් වේ, විශේෂයෙන් සංවර්ධකයා වින්ඩෝස් මත වැඩ කරන අතරතුර ලිනක්ස් සේවාදායකයක යෙදවීම සිදු කරන්නේ නම්.
4. වේගවත් ස්නැප්ෂොට් සහ ආපසු හැරීම
VM වල වටිනා ලක්ෂණයක් වන්නේ ස්නැප්ෂොට් ය. ස්නැප්ෂොට් මඟින් ඔබට නිශ්චිත වේලාවක VM හි තත්වය පිළිබඳ ස්නැප්ෂොට් එකක් ගැනීමට ඉඩ සලසයි. පසුව ගැටළුවක් ඇති වුවහොත් - උදාහරණයක් ලෙස, පරායත්තතා ස්ථාපනය අසාර්ථක වුවහොත්, වින්යාසයක් දූෂිත වුවහොත් හෝ යාවත්කාලීන කිරීමක් පද්ධතිය අස්ථායී කරයි - ඔබට මිනිත්තු කිහිපයකින් පෙර ස්නැප්ෂොට් වෙත ආපසු යා හැක.
සංවර්ධකයින් සඳහා, ස්නැප්ෂොට් ප්රයෝජනවත් වන්නේ:
– අවදානම් රහිත වින්යාස අත්හදා බැලීම්,
– යැපුම් අනුවාදය උත්ශ්රේණි කිරීමට උත්සාහ කරන්න,
– නව මෙවලම් ස්ථාපනය පරීක්ෂා කිරීම,
- ආරක්ෂක පරීක්ෂාව හෝ අනිෂ්ට මෘදුකාංග විශ්ලේෂණය (ආරක්ෂිත පරිසරයක).
වේගවත් ආපසු හැරීම අත්හදා බැලීමේ කාර්ය ප්රවාහය වඩාත් පහසු සහ අඩු ආතතියක් ඇති කරයි.
5. නිෂ්පාදන පරිසරය අනුකරණය කරන්න (දේශීය වේදිකාගත කිරීම)
VM බොහෝ විට භාවිතා කරනුයේ දේශීයව සමාන නිෂ්පාදන පරිසරයක් නිර්මාණය කිරීමටයි. උදාහරණයක් ලෙස, නිෂ්පාදන සේවාදායකයක් නිශ්චිත සැකසුමක් සමඟ Linux ධාවනය කළ හැකි අතර, සංවර්ධකයෙකුගේ පරිගණකය Windows ධාවනය කළ හැකිය. විවිධ දේශීය සැකසුම් මත රඳා නොසිට, සංවර්ධකයින්ට සේවාදායකයකට සමාන වන පරිදි වින්යාස කර ඇති Linux VM එකක් ධාවනය කළ හැකිය.
ප්රතිලාභ:
– OS සහ වින්යාස වෙනස්කම් හේතුවෙන් දෝෂ අඩු කර ඇත.
– යෙදවුම් ස්ක්රිප්ට් අපේක්ෂිත පරිදි ක්රියාත්මක වන බවට වග බලා ගන්න.
– නිකුත් කිරීමට පෙර යැපීම් සහ සහායක සේවා වලංගු කරන්න.
ඒකාබද්ධ කිරීමට හෝ මුදා හැරීමට පෙර පරීක්ෂා කිරීම වඩාත් ගැඹුරු විය හැකි වන පරිදි, පුද්ගලික "වේදිකාගත කිරීමේ" පරිසරයන් ගොඩනැගීම සඳහා VMs ද සුදුසු වේ.
6. ආරක්ෂාව සහ අවදානම් සීමාව
යෙදුම හුදකලාව ක්රියාත්මක වන නිසා VMs අමතර ආරක්ෂිත ස්ථරයක් සපයයි. ඔබ විභවයෙන් අනිෂ්ට මෘදුකාංග පරීක්ෂා කරන්නේ නම්, VM එකක් ධාවනය කිරීම එය සත්කාරක පද්ධතිය මත කෙලින්ම ධාවනය කිරීමට වඩා ආරක්ෂිත වේ.
සංවර්ධන සන්දර්භයක් තුළ, මෙය ප්රයෝජනවත් වන්නේ:
- විශ්වාස කළ නොහැකි මූලාශ්රවලින් අයදුම්පත් පරීක්ෂා කිරීම,
- ආරක්ෂක පරීක්ෂණ සිදු කරන්න,
- වැඩසටහන් වල දෝෂ, සූරාකෑම් හෝ අමුතු හැසිරීම් පිළිබඳව පර්යේෂණ කිරීම.
පරිපූර්ණ ආරක්ෂක පද්ධතියක් නොවුනත්, VM හුදකලාව තවමත් ප්රධාන පද්ධතියට සහ පුද්ගලික දත්ත වලට හානි වීමේ අවදානම අඩු කරයි.
7. කණ්ඩායම් යටිතල පහසුකම් සහ CI/CD සඳහා කාර්යක්ෂමතාව
කණ්ඩායමක් හෝ ව්යවසාය පරිමාණයකින්, VMs ක්රියාත්මක කිරීමට භාවිතා කළ හැක:
- අභ්යන්තර ගොඩනැගීමේ සේවාදායකය,
- ස්වයංක්රීය පරීක්ෂණ සේවාදායකය,
– QA සඳහා කැපවූ පරිසරය,
– ස්ථාවර CI/CD ධාවකය.
VM සමඟින්, කණ්ඩායම්වලට අවශ්ය පරිදි "යන්ත්ර" සකසා ඒවා ප්රමිතිගත ආකාරයකින් කළමනාකරණය කළ හැකිය. වලාකුළු සේවාවලදී පවා, වැඩ බර මත පදනම්ව VM සැපයීම සහ ප්රතිපාදන ඉවත් කිරීම කළ හැකිය. මෙය අමතර දෘඩාංග ආයෝජනයකින් තොරව පරිමාණය කිරීමට සහාය වේ.
8. විශේෂ මෙවලම් හෝ මෙහෙයුම් පද්ධති සමඟ සංවර්ධනය
නිශ්චිත මෙහෙයුම් පද්ධතියක පමණක් ලබා ගත හැකි හෝ වඩා ස්ථායී මෙවලමක් ඔබට අවශ්ය වන අවස්ථා තිබේ. උදාහරණයක් ලෙස:
– ඇතැම් මෙවලම් Linux මත වඩාත් ප්රශස්ත වේ,
– උරුම මෘදුකාංග සඳහා නිශ්චිත වින්ඩෝස් අනුවාදයක් අවශ්ය වේ,
- පරීක්ෂා කිරීම සඳහා විශේෂ කර්නල් වින්යාසයක් අවශ්ය වේ.
VM මඟින් ඔබට එදිනෙදා කටයුතු සඳහා ඔබේ ප්රධාන පරිගණකය භාවිතා කිරීමට ඉඩ සලසන අතර, නිශ්චිත අවශ්යතා සඳහා VM එකක කැපවූ මෙහෙයුම් පද්ධතියක් ක්රියාත්මක කරයි.
9. ලේඛනගත කිරීම සහ සැකසුම් ප්රමිතිකරණය පහසු කරයි
හොඳ සංවර්ධන පරිසරයක් සාමාන්යයෙන් හොඳින් ලේඛනගත කර ඇත. VGrant, Ansible, හෝ provisioning scripts වැනි මෙවලම් භාවිතයෙන් පරිසර වින්යාසය ප්රමිතිගත කළ හැකි අතර ස්වයංක්රීය කළ හැකි බැවින් VM උපකාරී වේ.
එබැවින්:
– dev සැකසුම වේගවත් වේ,
- කණ්ඩායම් සාමාජිකයන් අතර වෙනස්කම් අඩු වේ,
- අතින් වින්යාස දෝෂ අඩු කළ හැකිය.
කණ්ඩායම විශාල වන තරමට, මෙම ප්රමිතිකරණය වඩාත් වැදගත් වේ.
10. සම්පත් සහ උපාංග භාවිතය ප්රශස්ත කිරීම
සෑම පරීක්ෂණ අවශ්යතාවයක් සඳහාම සෑම කෙනෙකුටම බහු ලැප්ටොප් හෝ පරිගණක නොමැත. ප්රමාණවත් සම්පත් තිබේ නම්, තනි භෞතික උපාංගයකට එකවර බහු සංවර්ධන අවස්ථා හැසිරවීමට VMs ඉඩ දෙයි.
ඔබට එක් එක් VM හි අවශ්යතා මත පදනම්ව RAM සහ CPU වෙන් කිරීම් වින්යාසගත කළ හැකි අතර, භාවිතයේ නොමැති විට VM වසා දැමිය හැකිය. මෙය එක් එක් OS සහ පරීක්ෂණ අවශ්යතා සඳහා වෙනම උපාංග සැපයීමට වඩා ලාභදායී වේ.
නිගමනය
මෘදුකාංග සංවර්ධනය සඳහා අථත්ය යන්ත්ර බොහෝ ප්රතිලාභ ලබා දෙයි: හුදකලා කිරීම, පරිසර අනුකූලතාව, හරස් වේදිකා පරීක්ෂණ හැකියාව, වේගවත් ආපසු හැරවීම සඳහා ස්නැප්ෂොට්, වැඩිදියුණු කළ ආරක්ෂාව සහ නිෂ්පාදන පරිසරයන් ප්රතිනිර්මාණය කිරීමේ පහසුව දක්වා. තනි සංවර්ධකයින් සඳහා, VMs නම්යශීලී බව වැඩි කරන අතර මූලික පද්ධති බිඳ දැමීමේ අවදානම අඩු කරයි. කණ්ඩායම් සඳහා, VMs ප්රමිතිකරණය, වේගවත් ඇතුළත් කිරීම සහ ස්ථාවර CI/CD ක්රියාවලීන් සඳහා සහාය වේ.
ඔබ නිතර විවිධ පරායත්තතා සහිත ව්යාපෘති මාරු කරන්නේ නම්, බහු OS වල යෙදුම් පරීක්ෂා කිරීමට අවශ්ය නම්, හෝ පහසුවෙන් ප්රතිනිර්මාණය කළ හැකි සංවර්ධන පරිසරයක් අවශ්ය නම්, අථත්ය යන්ත්රයක් යනු සියල්ලටම වටිනා වැඩ ප්රවාහ ආයෝජනයකි.
ඔබ කැමති නම්, මට ලිපියේ අනුවාදයක් නිර්මාණය කිරීමටද උදව් කළ හැකිය:
- වඩාත් තාක්ෂණික (හයිපර්වයිසර්, VM vs බහාලුම්, සම්පත් සුසර කිරීම සාකච්ඡා කිරීම),
– සාමාන්ය පාඨකයින් සඳහා වඩාත් ජනප්රිය,
- හෝ නිශ්චිත සන්දර්භයකට (වෙබ් සංවර්ධනය, ජංගම, DevOps, ආරක්ෂාව) ගැලපෙන පරිදි සකස් කර ඇත.