vagrant คืออะไร
vagrant เป็นเซิฟเวอร์จำลองพร้อมใช้สำหรับนักพัฒนา PHP
vagrant ถูกสร้างต่อยอดขึ้นมาบนเทคโนโลยี virtual machine อีกทอดหนึ่งจำพวก virtualbox, vmware แต่ตอนใช้งานเราไม่ได้จำเป็นจะต้องไปรู้เรื่อง virtual machine หรอกแค่ติดตั้งโปรแกรมแล้วลืมมันไปเลย โฟกัสแค่คำว่า vagrant โปรดักษ์ 2 ตัวในตระกูล ผมแนะนำให้ใช้ virtualbox เพราะมันฟรี
vagrant กำเนิดมาเพื่อ?
ในสภาพแวดล้อมของ Windows เวลาที่เราจะเขียนโค้ดเชื่อมต่อกับบริการแปลกๆ หรือโปรแกรมแปลกๆ เช่นฐานข้อมูล mongo , ฐานข้อมูล cassandra, elasticsearch มันลำบากมากถ้าเราใช้สภาพแวดล้อมแบบวินโดว โปรแกรมบางตัวติดตั้งบนวินโดวแล้วง่อยๆ ไม่เหมือนติดตั้งบนลีนุก อย่างงาม memcache เป็นต้น ผมว่าใครใช้ xampp จะเข้าใจดี
มันจึงมีคนคิดว่า งั้นเอาอย่างงี้ดีกว่า ให้ Dev พัฒนาโปรแกรมบน Linux โดยใช้สภาพแวดล้อมของวินโดว งงมะ คือสร้างเครื่องจำลองขึ้นมาในวินซะ เครื่องจำลองนั้นก็ติดตั้ง Linux แล้วแชร์โฟลเดอร์จาก Windows ให้ Linux มองเห้น เวลาพัฒนาก็พัฒนาบนวินโดว เวลาทดสอบโค้ดก็เปิดหน้าเว็บโดยใช้ IP ของ Linux
เหยดดดดดด….
ทีนี้มันยังมีปัญหาหนึ่งตามมาคือการติดตั้ง Linux นั้นมันคอนฟิกลำบาก ต้องมีพื้นฐานเน็ตเวิร์คมาบ้าง มันเลยดูจะเป็นการเสียเวลาหากจะให้โปรแกรมเมอร์ต้องไปรู้เรื่องการติดตั้งโปรแกรมบน Linux และคอนฟิกเพื่อให้พร้อมสำหรับเขียนโค้ด PHP
เอาล่ะก็ปั้นๆ Linux ที่ติดตั้งโปรแกรมสำหรับงานพัฒนา เช่น apache, mysql, php และคอนฟิกพร้อมใช้งาน ให้เป็นก้อนไว้ จัดไว้ให้พร้อม แค่เอาไปคลายออกผ่านกระบวนการนิดหน่อย ก็ได้เซิฟเวอร์พร้อมใช้งานเลย ไอ้ตัวช่วยจัดการกระบวนการมันคือ vagrant
แล้ว xampp ล่ะ
xampp ก็ใช้ได้นี่ ไม่เห็นต้องไปรู้จัก vagrant อีกเลย โปรแกรมเมอร์บางคนอาจจะรู้สึกอย่างนั้น ผมก็เห็นด้วยนะ จนกว่าเราอยากใช้ memcache, cassandra, elasticsearch เป็นต้น โปรแกรมพวกนี้ถึงมันจะสามารถติดตั้งบนวินโดวได้ก็จริง แต่เหมือนคนสร้างมันไม่ค่อยเต็มใจ คอนฟิกยากบ้าง มีปัญหาบ้าง ไม่รู้เหี้ยไรมัน แต่ถ้าลงบนลีนุกนะ ดีเว่อ ติดตั้งก็ง่าย เสถียรอีก เวอร์ชั่นใหม่ออกมาไม่ต้องรอ บางตัวไม่มีสำหรับวินโดวอีก ด้วยประการฉะนี้แล
เอออีกอย่าง PHP นี่เวลาเราทำเสร็จ เราเอามันไปรันบนโฮสต์ที่ติดตั้ง Linux อยู่ดี
แถมให้อีกอย่าง หากใช้ vagrant คุณจะได้ศึกษาคำสั่ง Linux เบื้องต้น หากต้องการ
ท่านสงสัยตรงไหนก็ถามมาละกัน บางทีผมก็ไม่รู้จะอธิบายให้ท่านเข้าใจอย่างถ่องแท้ได้อย่างไร
Leave a Reply