Бид бүгд л хар багаасаа Windows үйлдлийн системтэй компьютер хэрэглэж дадсан байх. Програмист болоод ажил дээр гараад ирэхээр өөрийн эрхгүй Windows-оосоо салж хагацах хэрэг гардаг. Учир юун гэхээр Windows орчинд хөгжүүлэлт хийхэд нэн бэрх, аргалаад явлаа ч дараа нь ихэнх нь linux/unix үйлдлийн системтэй сервер дээр кодоо ажиллуулж таардаг учир олон хөгжүүлэгчид Unix төст үйлдлийн системүүд болох Mac эсвэл Ubuntu, Centos зэрэг өөр үйлдлийн систем хэрэглэдэг болсон болов уу.
Миний хувьд ч энэ л шалтгааны дагуу IT-н ертөнцөд хөл тавьсан цагаасаа эхлээд Linux үйлдлийн систем хэрэглэж эхэлсэн билээ. Linux үйлдлийн систем хэрэглэснээр компьютер цаанаа юу хийж, бидний бүтээж буй веб, програмууд маань угтаа хэрхэн ажилладаг болохыг гүн гүнзгий ойлгоход тусалж мэргэжлийн чадвараа нэг шат ахиулахад түлхэц болсон юм. Мөн Linux нь үнэгүй, нээлттэй эхийн програм тул үнэгүй ашиглаж болно. Windows-г бол насаараа л crack-дсан даа хөөрхий. Одоо бол ажил дээрээ crack-тай Windows хэрэглэвэл эвгүйтэж магадгүй цаг үе. Linux дээр ажиллахад terminal буюу command line interface-тэй үй зайгүй найзууд болох хэрэг гарна. Зарим хүмүүст энэ нь төвөгтэй, хэцүү санагддаг тул ихэнх хөгжүүлэгчид арай амраар нь Mac үйлдлийн системтэй компьютерүүдийг голчлон хэрэглэдэг. Mac нь өөрөө Unix төст үйлдлийн систем учир linux үйлдлийн систем дээрх ихэнх командууд mac дээр ажиллах боломжтой байдаг. Энэ нь хөгжүүлэгчдэд Windows-г бодвол маш том давуу тал олгодог. Гэхдээ Mac компьютерүүд суга үзүүлэлттэй, эд анги нэмээд тоноглоод сайжруулж болдоггүй мөртлөө асар үнэтэй зэрэг асуудалтай тул нийт хөгжүүлэгчдийн бараг тал нь Windows хэрэглэсэн хэвээр байна. Үлдсэн талын тал нь mac, тал нь linux үйлдлийн систем хэрэглэдэг байна.
Саяхан би гэрийнхээ компьютерийг Windows 10 LTSC үйлдлийн системээр форматлав. Та магадгүй LTSC гэдэг үгийг анх удаа харж байж магадгүй. Энэ нь харьцангуй шинэ нэр томъёо бөгөөд Long-Term Servicing Channel гэсэн үгний товчлол юм. Windows starter, basic, home, ultimate, pro, enterprise гэх мэт олон төрлүүд байдаг. Тэгвэл LTSC нь тэдэн дээр бүл нэмж буй бас нэгэн төрөл бөгөөд 10 хүртэлх жилийн support-той. LTSC-н гол ялгагдах давуу тал бол Microsoft-н Windows 10 дээр нэвтрүүлсэн Windows App store, Cortana зэрэг хэрэгтэй хэрэггүй илүү дутуу баахан нэмэлт апп-уудыг хассан хувилбар юм. Эдгээрийг хассан хувилбар нь хэрэглэхэд яг гоё тохирох бөгөөд бас нэг гоё юм нь update нь энгийн windows шиг байн байн хийгдээд байхгүй, зөвхөн сардаа нэг удаа security update хийгдэх юм. LTSC-г хэрэглэхэд мэдүүштэй гол зүйлс нь LTSC нь хоёроос гурван жилд нэг удаа шинэчлэгдэж гарах бөгөөд тэр хугацаанд update хийгдэхдээ нэг ч шинэ feature нэмэгдэхгүй, зөвхөн security fix-үүд л орох юм. Хэрвээ та өдөр бүр Windows-оо update хийж үргэлж шинэ feature-үүдийг түрүүлж хэрэглэх дуртай бол LTSC тийм ч зөв сонголт биш юм.
За эргээд үндсэн сэдэврүүгээ оръё. Windows үйлдлийн систем дээр хөгжүүлэлт хийхэд хамгийн гол нэг асуудал нь бичсэн кодоо дараа нь linux сервер дээр ажиллуулчихдагтай л холбоотой. Хэрвээ Windows дээр хөгжүүлээд Windows сервер дээр ажиллуулдаг бол энэ тийм ч том асуудал болохгүй. Харамсалтай нь дэлхий дээрх нийт серверүүдийн 1~2% нь Windows сервер ашигладаг байна. Иймд Windows дээр код бичээд Linux дээр ажиллуулахад наад зах нь програмууд суухдаа өөр өөрөөр сууж ажиллана, file permission, user group зэрэг ойлголтууд нь тэс өөр, kernel-тэй ажиллах боломж, file system, driver, firewall, service manager зэрэг бүх зүйл нь өөр тул эдгээрийг дагаад тоо томшгүй олон асуулт асуудлууд үүсдэг. Тэгвэл энэ бүх асуудлыг маш гоёор, энгийнээр шийдэж чадаж буй технологи бол container буюу docker юм. Docker-г энгийнээр тайлбарлавал таны компьютер дээр бичил Virtual Machine буюу container үүсч байгаа юм. Тэрхүү container нь docker engine-аар дамжин ажиллах бөгөөд тухайн container дотор болж буй бүх зүйл docker engine суусан ямар ч компьютер дээр яг адилхан ажиллах боломжийг олгож байгаа нь docker-г од болгосон гол зүйл юм. Гэртээ Windows компьютер дээр ажиллаж байгаад ажил дээрээ очоод Linux хэрэглэхэд бүх зүйл нь яг адилхан ажиллана гэдэг бол маш том боломж юм. Өөр өөр үйлдлийн систем ч гэлтгүй 2 нөхөр зэрэгцэж сууж байгаад нэг ижил програм татаад суулгахад нэгнийх дээр нь ажиллаад нөгөөх дээр нь асуудал үүсгээд ажиллахгүй байх тохиолдол ч зөндөө бий. Тэгвэл одоо тэр бүх зовлонт үеүдээ мартацгаая.
VS Code бол Microsoft-оос гаргасан нээлттэй эхийн text editor төрлийн програм бөгөөд нийт хөгжүүлэгчдийн талаас илүү нь өдөр тутамдаа ашигладаг байна. VS Code дээр remote development буюу бичсэн кодоо алсын зайнаас өөр компьютер дээр ажиллуулах боломжийг уг нэмэлтийг суулгаснаар ашиглах боломжтой. Энэ удаад би Remote — Containers нэмэлтийг ашиглан өөрийн компьютер дээрх docker-той холбосон юм. Ингэснээр linux сервер дээрх бүх боломжийг docker container маань надад олгоод зогсохгүй тэрхүү container дотроо өөрийн програм болон тухайн програмын хэлний compiler эсвэл runtime-уудыг урьдчилан суулгаж бэлтгэсэн бэлэн image-үүдийг шууд хэрэглэх боломжтой. Жишээлбэл би өөрийнхөө компьютер дээр огт python, nodejs, mysql зэргийг суулгаагүй хэрнээ тэдгээрийг суулгасан docker container ажиллуулаад тэрхүү container-уудруугаа өөрийн VS Code дээрх кодоо шууд холбочихож байгаа юм. Код л миний компьютер дээр байхаас үлдсэн нь docker container дотор ажиллана.
Extension-оо суулгасан бол CTRL+P эсвэл F1-ээ дараад > Remote-Containers: Open Folder in Container… эсвэл Try a Sample… цэснээс сонгож өөрийн кодоо сонгосон container-т ажиллуулна. Жишээлбэл би python 3 гэсэн image-г сонгоод ажиллуулж буй зургаа орууллаа. Vs Code дээрээ шинэ terminal нээх үед автоматаар container дотор terminal нээгдсэн байх болно.