ระบบงานี่พัฒนาด้วย OpenFaaS นั้น
ในการ build และ deploy จะสร้าง container image ในรูปแบบของ OCI
นั่นทำให้เราสามารถ deploy ระบบได้หลากหลายวิธี
ยกตัวอย่างเช่น
- Docker
- Docker + Buildkit
- Buildkit standalone
- Img
- Pouch
- Podman
- Buildah
- K3s
- Kanico
เยอะไปไหนนะ ?
แต่เรามาลอง deploy ด้วยบางตัวกันนิดหน่อย
เริ่มด้วยวิธีมาตรฐานคือใช้ Docker + Dockerfile
ซึ่งผมใช้ middleware template ของภาษา Go
[gist id="27b4f375aa6b8dc8a49b6cd4197626b8" file="1.txt"]โดยไฟล์หลัก ๆ ที่ generate ขึ้นมาที่น่าสนใจคือ ไฟล์ /first/Dockerfile
[gist id="27b4f375aa6b8dc8a49b6cd4197626b8" file="Dockerfile"]การ build และ deploy ของ OpenFass นั้น
ก็ต้องใช้งาน Docker นั่นเอง
มาทำการ build และ run นิดหน่อยดังนี้
เท่านี้ก็ใช้งานได้แล้ว
มาลอง Deploy ด้วย Docker + Buildkit
แน่นอนว่าทำได้ แต่เราทำไปทำไม ?
มันมีข้อดีอะไรบ้าง ?
ครั้งแรกจะนานพอสมควร
แต่ว่าระบบ caching ดีมาก ๆ เร็วกว่าแบบปกติมาก ๆ ระบบ caching ดีมาก ๆ
ชอบเลย
ทำการ enable buildit ขึ้นมาได้ดังนี้
หรือลองใช้ Buildkit แบบ standalone ก็ได้
ซึ่งใช้ได้บน Linux เท่านั้น
[gist id="27b4f375aa6b8dc8a49b6cd4197626b8" file="4.txt"]จะได้ container image ที่เราสามารถนำไปสร้าง container ได้ต่อไป
จากที่ลองมาหลาย ๆ วิธี
เราจะได้เห็นรูปแบบที่หลากหลาย
และน่าสนใจมาก ๆ ลองเล่นกันดูครับ มันสนุกมาก ๆ
ตัวอย่าง code อยู่ที่นี่ GitHub::Up1