زبان Go نهتنها برای ساخت API و اپلیکیشنهای وب کاربرد داره، بلکه توی دنیای DevOps هم یک انتخاب فوقالعادهست. با کمک سرعت بالا، تولید فایل اجرایی مستقل، و دسترسی مستقیم به سیستم، میتونی ابزارهایی سریع، ساده و قابلحمل بسازی. تو این بخش یاد میگیریم چطور با Go ابزارهای خط فرمان بسازیم، به Docker وصل شیم، فایل اجرایی قابلحمل تولید کنیم و فرآیند انتشار رو انجام بدیم.
یکی از رایجترین استفادههای Go در DevOps، ساخت ابزارهای خط فرمان یا همون CLI Tool هست. با Go میتونی خیلی راحت ابزارهایی بسازی که توی لینوکس، ویندوز یا مک قابل اجرا باشن.
مثال ساده:
package mainimport ("flag""fmt")func main() {name := flag.String("name", "کاربر", "نام شما")flag.Parse()fmt.Printf("سلام %s!\n", *name)}
اجرای برنامه:
go run main.go -name=علی
میتونی از پکیجهایی مثل cobra یا urfave/cli هم برای ساخت ابزارهای حرفهایتر استفاده کنی.
برای کار با Docker بهصورت برنامهنویسیشده در Go، میتونی از پکیج رسمی moby/moby یا docker/docker/client استفاده کنی.
import ("context""github.com/docker/docker/api/types""github.com/docker/docker/client""fmt")func main() {cli, err := client.NewClientWithOpts(client.FromEnv)if err != nil {panic(err)}containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{})if err != nil {panic(err)}for _, container := range containers {fmt.Println(container.ID, container.Image)}}
با این کد، میتونی لیست کانتینرهای فعال داکر رو دریافت کنی.
یکی از قابلیتهای فوقالعاده Go، ساخت فایل اجرایی برای سیستمعاملهای مختلف فقط با یک خط دستوره.
ساخت فایل اجرایی برای لینوکس:
GOOS=linux GOARCH=amd64 go build -o app-linux
ساخت برای ویندوز:
GOOS=windows GOARCH=amd64 go build -o app.exe
ساخت برای مک:
GOOS=darwin GOARCH=amd64 go build -o app-mac
این یعنی میتونی بدون نیاز به ابزار جانبی، یک برنامه بنویسی و برای هر سیستمعاملی نسخه اجرایی بسازی.
بعد از ساخت ابزار یا اپلیکیشن با Go، برای انتشار میتونی:
خروجی build رو در یک مخزن GitHub بذاری.
با ابزارهایی مثل GitHub Actions فرآیند build و انتشار رو خودکار کنی.
فایل اجرایی رو روی سرورهایی مثل لینوکس با scp یا rsync منتقل کنی.
اگر API ساختی، روی سرورهای ابری مثل Render، Railway، DigitalOcean یا VPS شخصی مستقرش کنی.
در این بخش یاد گرفتیم چطور با Go ابزارهای DevOps بسازیم، به داکر متصل شیم، فایل اجرایی کراسپلتفرم تولید کنیم و اپلیکیشنمون رو منتشر کنیم. Go برای DevOps یه ابزار سبک، سریع و قابلاعتماد حساب میشه.