มาเรียนรู้พื้นฐานการ Deploy งานกัน
สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video
มาสู่การ Deploy งานกัน
มาสู่หัวข้อสุดท้าย เราจะพูดถึงเรื่องของการ deploy งาน go application ขึ้น server จริงกัน โดยจะเปลี่ยนจากการ run go application จากเครื่องคอมพิวเตอร์ของเราเอง (จากนี้จะเรียกว่า local คือเครื่องที่สามารถเข้าถึงได้จากอินเตอร์เน็ตภายใน) ไปวางบน server หรือเครื่องที่สามารถเข้าถึงจาก internet จากเครื่องอื่นๆได้
ปัจจุบัน การ Deploy งานขึ้น Server ของ Go นั้นจะมี 2 วิธีใหญ่ๆที่สามารถทำได้คือ
- Deploy ขึ้น server go ตรงๆ โดยการใช้คำสั่ง
go build
เพื่อทำการ compile application ออกมาและนำ binary file นั้นไปวางบน Host server ออกมาได้
- สำหรับการทำ web app นั้น โดยปกติจะต้อง setup environment และ configuration ของ web server เพื่อให้สามารถ support กับ golang ได้ (เช่น ใช้ nginx ในการ deploy งาน)
- โดยสา มารถเลือกวางบน Server ใน platform ต่างๆได้เช่น Heroku, AWS, Google Cloud Platform, Digital Ocean เป็นต้น ซึ่งแต่ละ platform ก็จะมีวิธีการ deploy ที่แตกต่างกันไป
- กับอีกวิธีคือ การ build application ให้เป็น Container โดยการ build go application เป็น image เพื่อให้สามารถนำ image นั้นไป deploy ต่อเป็น Container ได้
- โดยเราจะใช้เทคโนโลยีอย่าง Docker สำหรับการ build ตัว image เพื่อนำไป deploy เป็น Container ต่อ
- สำหรับผม จะขอแนะนำเป็น Container เนื่องจากนำไป horizontal scale ต่อด้วยรูปแบบของ Container ง่ายกว่า เช่น การ deploy ร่วมกับ kubernetes เป็นต้น