Sunday, June 18, 2017

எங்கேயும் எப்போதும் எல்லாமே தானாகவே இயங்கும் – ஜென்கின்ஸ்


சொல்வனம், மே 2017 இதழில் வெளியான கட்டுரை...
அதுவொரு காலம். இண்டர்நெட் எக்ஸ்ப்ளோரரை திறக்கும் முன்பாக, திரள் கோப்பை (Batch file) தட்டியெழுப்பி, வலை வழங்கியை (Java webserver) இயக்கவேண்டும். சர்வெலெட் கோப்புகள் தொகுக்கப்பட்டு இயக்கம் ஆரம்பமாகும்வரை காத்திருக்கவேண்டும். அருமை தெரியாத பொறுமை! write once, run anywhere, anytime தத்துவமெல்லாம் தெரிந்தாலும், ஒவ்வொரு முறையும் ஜாவா நிரலை இயக்குவதற்கு முன்பாக தொகுக்கப்படும (compile). தொடரியல் வழுவெல்லாம் (syntax error) தொடர்ந்து வந்தால் ஆரம்பத்திலேயே சரிசெய்துவிடலாம். பேபி ஜாவா நிரல் எழுதுபவருக்கே உரிய சகல அலட்சியங்களும் உண்டு. எக்ளிப்ஸ் என்னும் IDE வந்தபின்னர்தான் நிம்மதியாக நிரல் எழுத முடிந்தது.
ஜாவா மெய்நிகர் பொறி தொடங்கி சகலத்தையும் இயக்கி, இனொனரு முறை தொகுத்து, இயக்கி, தயாராவதற்கு சற்று நேரமாகும். ஆனால், திரள் கோப்பு இல்லாத வாழ்க்கையை நினைத்துக்கூட பார்க்கமுடியாது. எலிக்குட்டி (மௌஸ்) கண்டுபிடிக்காத முற்காலத்தில் செய்யப்பட்ட முதல் செய்பொருளாக்க (Automation) பணி, திரள் கோப்பு உருவாக்குவதாகத்தான் இருந்திருக்கவேண்டும். அப்போதெல்லாம் திரள் கோப்பை தட்டிவிட்டு, டீ சாப்பிட்டு வந்துவிடலாம். எண்டர் கீ மூலமாக குண்டலினியை எழுப்பிவிட்டு, சகல நிரல்களையும் சந்துக்கு கொண்டு வரும் திரள் தொகுப்பு கலாச்சாரம், இன்னும் இருக்கத்தான் செய்கிறது.
கட்டற்ற மென்பொருள்களின் அறிமுகம், அதைத்தொடர்ந்த தொடர்ச்சியான பயன்பாடு நம்மை எங்கேயோ அழைத்துச் சென்றுவிட்டது. நிரல் எழுதத்தொடங்கும் அதே நேரத்தில் நிரலில் இயக்கமும் ஆரம்பமாகிவிடுகிறது. எங்கேயோ உட்கார்ந்துகொண்டு, எதையோ இயக்குமளவுக்கு இன்றைய தொழில்நுட்பம், உச்சம் பெற்றுள்ள நிலையில், எழுதப்பட்ட நிரல்களை நிர்வகிப்பதும், மேம்படுத்துவதும் முக்கியமான பணி. அதை விட முக்கியமான விஷயம், எழுதப்பட்டதை தொடர்ச்சியான இடைவெளியில் இயக்குவது. அதன் மூலம் பெறப்படும் முடிவுகளை வீடியோ கேம்ஸ் விளையாடிக்கொண்டிருக்கும் வாடிக்கையாளரின் மின்னஞ்சலில் சேர்ப்பதற்கும் ஒரு தொண்டன் தேவை. எத்தகைய அடியையும் தாங்கிக்கொண்டு அசராமல், அசுரகதியில் உழைத்துக்கொண்டே இருக்கும் அடிமாடுதான் ஜென்கின்ஸ்.
உங்களது நிரல், எதில் வேண்டுமானாலும் எழுதப்பட்டதாக இருக்கட்டும். எங்கே, யாரிடம் வேண்டுமானாலும் இருக்கட்டும். அதை இயக்கி, முடிவுகளை சரியானவர்களிட்ம் சேர்ப்பிக்கும் அஞ்சலக பணியாளர் பணியைத்தான் ஜென்கின்ஸ் செய்கிறது. இதென்ன கட்டண சேவையா? இல்லை. உரிமம் வாங்கவேண்டுமா? தேவையே இல்லை. முழுவதும் இலவசம். கட்டற்ற சுதந்திரம்!
ஜென்கின்ஸ், தகவல்தொழில்ப புரட்சியின் முக்கியமான மந்திரம். நிரல் எழுத, ஏராளமான IDE உண்டு. அதை விட அதிகமான கணிணி மொழிகளும் உண்டு. ஜென்கின்ஸை நிரல் எழுதுபவர்களும் பயன்படுத்திக்கொள்ளலாம். அதை பரிசோதிப்பதாக பீதியுட்டுபவர்களும் பயன்படுத்தமுடியும். ‘யார் வேணும்னாலும் எதுல வேணும்னாலும் எழுதித் தொலைங்கய்யா…எங்கே, எப்ப வேணுமோ அப்போ எக்ஸ்கியூட் பண்ணி, ரிசல்ட் காட்டுறேன்’ என்று சொல்லும் நல்லவர்கள் மிகக்குறைவு. ஸ்லீப்பர் ஷெல் தாக்குதல் போல், ஒரே நிரலை, ஒரே நேரத்தில் வெவ்வேறு இடங்களில் இயக்கி, மிரள வைக்கலாம்.
2004ல் ஜாவாவோடு சேர்த்து சன்மைக்ரோ சிஸ்டம், ஜென்கின்ஸையும் வளர்த்தது. ஹட்சன் என்னும் பெயரில் அப்போது பிரபலமாகியிருந்த இந்த நுட்பத்திற்கு ஆரக்கிள் பங்காளியானது. 2010ல் சன் மைக்ரோ சிஸ்டத்தை ஆரக்கிள் வாங்கியதும் ஆரம்பமான பிரச்னை அது. பஞ்சாயத்தின் முடிவில் ஹட்சன் என்னும் பெயர் மாற்றப்பட்டு ஜென்கின்ஸ் ஆனது. ஹட்சனாக இருந்த காலத்திலேயே மாவேன் வகையறாக்களுடன் இணைந்து… சரி, அதெல்லாம் கடந்த காலம். கதை சொல்லி, போரடிக்காமல் நேராக விஷயத்திற்கு வந்துவிடலாம்.
ஜென்கின்ஸ், அதை எப்படி இயக்குவது? அதுதானே நமக்கு முக்கியம். நிரல் எழுதுபவர் அதை முழுமையாக்கியதும், ஜென்கின்ஸ் அதனுடன் கரம் மசாலா சேர்த்து, நிரல் தொகுப்பாக மாற்றுகிறது. பின்னர், எப்போது அல்லது எப்போதெல்லாம் தேவையோ அப்போதெல்லாம் அதை இயக்குகிறது. நிரல் இயக்கப்பட்டு, அதனால் பெறப்படும் முடிவுகளை ஜென்கின்ஸ் முகப்பு பெட்டியில் (Dashboard) பார்ககமுடியும். நிரல் வெற்றிகரமாக இயக்கப்பட்டதும் அதன் முடிவுகளை மின்னஞ்சல் வழியாகவும் சகலருக்கும் தெரிவித்துவிடுகிறது. ஏதாவது பிரச்னை ஏற்படடு, சுருண்டுகொண்டாலும் ஒட்டுமொத்த தகவல்களையும் முகப்பு பெட்டியிலேயே பார்த்துவிடமுடியும்.
ஜென்கின்ஸ் இயங்க ஜாவா வேண்டும். டிகாஷன் இருந்தால்தான் அது காபி. இல்லாவிட்டால் அது வெறும் பால். ஜாவா இல்லாமல் ஜென்கின்ஸ் இல்லை. ஏற்கனவே குறிப்பிட்டபடி எந்தவொரு இயங்குதளமாகவும் இருக்கலாம். நிரல்கள், எந்த மொழியில் வேண்டுமானாலும் எழுதப்பட்டிருக்கலாம். குறைந்தபட்சம் 2 ஜிபி ராம் வேண்டும். நிரல்களை சேமித்து வைக்க, ஒரளவு இடமிருந்தால் போதும். வேறெதுவும் தேவையில்லை.
ஜென்கின்ஸை அதன் தளத்திலிருந்து தரவிறக்கிக்கொள்ளலாம். பின்னர் Tomcat சர்வரை தரவிறக்கி, நிறுவி கொள்ளுங்கள். ஜாவா உள்ள இடத்திற்கு போய், jenkins.war என்று தட்டினால், தானாகவே இயங்கி, நிறுவிவிடும். வலைச்சட்டகத்தை திறந்து, http://localhost:8080 தட்டினால், ஜென்கின்ஸ உங்களை வரவேற்கும்.
ஜென்கின்ஸை நம்முடைய தேவைக்கு தக்கப்படி மாற்றுவது முக்கியமான பணி. ஜென்கின் சம்பந்தப்பட்ட அனைத்து ஆணைகளும், நிரல்களும், தொகுப்பு பற்றிய விபரங்கள் XML கோப்பாக அதன் ஹோம் டைரக்டரியில் சேகரித்து வைக்கப்பட்டிருக்கும். நிரல் தொகுப்பின் ஒட்டுமொத்த வரலாறும் இங்குதான் இருக்கும். தேவையான நிரல் தொகுப்பை நீக்க, புதியதை சேர்க்க வேண்டியிருககும். இதையெல்லாம் ஜென்கின்ஸ் முகப்பு பெட்டியில் செய்துவிடலாம். ஒவ்வொரு நிரல் தொகுப்பை இயங்குவதற்கு எடுத்துக்கொள்ளப்படும் நேரம், முடிவுகள், எதெல்லாம் வரிசைப்படுத்தப்பட்டுள்ளன என அனைத்து புள்ளி விபரங்களும் முகப்பு பெட்டியில் பார்க்கமுடியும். கண்ணைப் பறிக்கும் வரைபடங்கள் மூலமாகவும் தெரிந்து கொள்ளலாம். எத்தனை நோடு, எந்த நோடில் எப்போது இயக்கலாம் என்பதையும் தீர்மானிக்க முடியும். சர்வர் நிரல் எழுதி, அங்கிருந்தே இயக்கி ஸ்தம்பிக்கவும் வைக்கலாம்.
இத்தகைய பணிகளைச் செய்ய ஏராளமான தொகுப்பாணைகள் (plugin) இலவசமாக கிடைக்கின்றன. பில்ட் ஹிஸ்டரி, செக் ஸ்டைல், கோட் அனாலிசிஸ், ஸ்டாடிக் அனாலிசிஸ் கலெக்டர், பைன்ட்பக் என ஏராளமானவை உண்டு. ஆனால், இவற்றையெல்லாம் தேடித் தேடித்தான் நிறுவ வேண்டியிருக்கும். ஒவ்வொன்றையும் தனித்தனியாக தரவிறக்கி, சோதிக்க வேண்டும். ஏதாவது தொகுப்பாணை மீது சந்தேகமிருந்தால் தயவு தாட்சண்யம் பார்க்காமல் நீக்கிவிடவேண்டும். தொகுப்பாணை என்னும் பெயரில் வலை விரித்துப் பிடிப்பது சகஜமான விஷயம். சரியானதை தேடிக் கண்டுபிடிப்பதில் கவனம் தேவை. வாழ்விலே ஒரு முறைதானே.. சலிக்காமல் செய்துவிடுங்கள். எல்லாம் முடிந்தபின்னர், http://localhost:8080/jenkins/restart தட்டினால் ஜென்கின்ஸ் ரெடி.
ஜென்கின்ஸ் பற்றிய ஐந்து நாள் பயிற்சி வகுப்பு அது. முதல் நாள், ஜென்கின்ஸ் பிறந்த கதை பேசி, ஜாவா, மாவென் என்றெல்லாம் அலைந்து மாலையில் ஜென்கின்ஸை தரவிறக்கி, நிறுவியாகியாகிவிட்டது. மறுநாள் முழுவதும் அதை இயக்கச் செய்வதிலேயே ஒட்டுமெர்த்த நேரமும் போனது. கட்டற்ற மென்பொருள் என்பதால் முறையான வழிகாட்டுதலோ, உதவிக்குறிப்புகளோ கிடையாது. ‘ஜென்கின்ஸை வைத்து என்ன வேண்டுமானாலும் செய்யலாம், ஆனால் எப்படி செய்வது என்பதை மட்டும் என்னிடம் கேட்காதீர்கள். ஏனென்றால் எனக்குத் தெரியாது’ என்றார் பயற்சியாளர். உண்மைதான். தெரியாத கடலில் மூழ்கி முத்தெடுப்பதுதான் சவலான காரியம். ஆழமும், ஆபத்தும் தெரியாமல் ஆரம்பத்தில் எதுவும் பிடிபடாமல் போய்விடும். பித்து கூட பிடிக்கலாம். ஆனால், தேடலின் முடிவில் சர்வ நிச்சயமாக முத்து கிடைக்கும்.