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 เบื้องต้น หากต้องการ

ท่านสงสัยตรงไหนก็ถามมาละกัน  บางทีผมก็ไม่รู้จะอธิบายให้ท่านเข้าใจอย่างถ่องแท้ได้อย่างไร