มาทำ Package ต่างๆของ Golang ให้อยู่บน Gitlab Private กัน
เนื่องจากเราจะทำให้ Golang เป็น Micorservices ซึ่งหลักความจริงมันไม่ได้มีแค่ Module Booking แน่ๆและการจะมาเขียน Code อยู่ใน Folder เดียวก็ไม่ใช่จุดประสงค์ของการทำ Microservices อยู่แล้วเพราะเราต้องแยกขึ้น Lambda เป็น Module ไปซึ่งจะทำให้มันมองไม่เห็นกัน ซึ่งจะยิง API CALL ไปก็ไม่ใช่วิธีแก้ปัญหาที่ถูกต้องเลยมีตัว Git ที่จะมาช่วยเราในวันนี้ มาดูส่วนที่ผมจะแยกออกไปเป็น function connect mongodb
คือตัว ConnectMongoDB ทำไมต้องแยกส่วนนี้ก่อนเพราะเราได้นำมันไปใช้หลายที่มากๆแน่ๆโดยเราจะถือมันเป็น Libary สำหรับเชื่อมฐานข้อมูล
โดยผมไปที่ตัว gitlab และสร้าง project ว่า mongodb ให้อยู่ thamrong-group/example-go/library
ผมสร้างเสร็จก็ git clone ลงมาก่อน
หลังจากนั้นผม ก็ทำการ go mod init ตามด้วย url ที่เราจะเอาไปวางไม่ต้องใส่ http นะครับ
ทำการสร้าง file main.go
จากนั้นเอา coppy code ไปแปะแล้วทำการ go mod tidy
จากนั้น run ดูมันจะขึ้นแบบดังรูป…ถูกต้องแล้วครับเพราะเราไม่ได้ให้เป็น package main
จากนั้นผมก็ทำการเอาขึ้น git แบบปกติเลยครับ
และลองทำการ go get gitlab.com/thamrong-group/example-go/library/mongodb.git จาก project booking ซึ่งมันจะ error เพราะเรายังไม่ได้เซท env ให้กับ GOPRIVATE,GONOSUMDB,GONOPROXY
go env -w GOPRIVATE=”gitlab.com/thamrong-group/example-go”
go env -w GONOSUMDB=”gitlab.com/thamrong-group/example-go”
go env -w GONOPROXY=”gitlab.com/thamrong-group/example-go”
เราถือว่าเราเซท env แล้วเราลองมา ge get อีกรอบ
มันจะทำการ download มาติดตั้ง
และผมก็ประกาศชื่อให้มันว่า mongoClient เพราะมันไปชนกับ code mongo ที่ใช้อยู่ใน microservice booking ของเราอยู่
จากนั้นหน้าตา source code เราจะเป็นดังภาพจะสังเกตุว่าสั้นลงเพราะเราเอาบางส่วนไปไว้ใน gitlab
ส่วนที่เปลี่ยนก็จะมีการเรียก function ConnectMongoDB บน gitlab แทนจากเรียกบนหน้าตัวเอง
เท่านี้เราก็สามารถทำให้ microservices เราเห็นกันได้ทั้งหมดด้วยวิธีเอาขึ้น git private ที่เอาไว้ใช้เฉพาะเราจริงๆ
ก็จบไปแล้วสำหรับบทความนี้น่าจะมีประโยชน์ๆไม่มากก็น้อยสำหรับทำการ Microservices เท่านี้ Microservices ของเราก็มองเห็นกันหมดแล้วครับ ลองเอา module booking ขึ้น gitlab private แล้วลองสร้าง module อะไรซักอันเรียกใช้
ลองเล่นๆดูก็ได้นะครับ ข้อดีการทำ microservices maintenance ง่าย ส่งต่องานง่าย และยังทำกันหลายคนได้แบบสบายๆ เหมาะสำหรับทำงานเป็นทีมมากๆแยกกันทำไปเลยยยยยยย ขอให้ทุกคนโชคดีครับรอติดตามงานใหม่ๆผมได้เรื่อยๆครับ
บทความ golang ที่เกี่ยวข้องเผื่อใครงงว่าอยู่ๆ code นี้โผล่มาจากไหน
( CR. ธำรงค์ ไชยวงค์ )