4 ข้อแรก จาก 12-Factor App ที่ใช้อธิบายหลักปฏิบัติ ในการทำ Microservices
1 min readDec 5, 2020
ทำ Microservices มีหลักปฏิบัติยังไงบ้าง
- Code base
🚀 1.1 กรุณาทำ Single Repo (ซิงเกิ้ล เรโป) ถ้าหลาย เรโป ขอให้เรียก distributed system in app
⛵️ 1.2 กรณีใช้ code ชุดเดียวซ้ำกันในหลาย app ให้ใช้ dependency manager
คือทำให้มันเป็น package ที่คนอื่นดูดไป install ได้
🎠 1.3 ต่อจาก ข้อ 1.2 คือ เวลาที่เรา deploy code นั้นไป ก็ต้องดูได้นะ ว่า code นี้คือ version ไหน - Dependencies
ควรแยกส่วนประกาศ Dependency และ แยก environment ได้ด้วย
🍰 2.1 การประกาศ Dependency (Dependency Declaration)
เช่น npm, requirement.txt+pip ที่จะมีรายการว่าเราต้องใช้ library อะไรบ้าง
🎸 2.2 Dependency isolation คือ ตอนที่เอามา install 🍓 เรา install แยก environment ได้ เช่น - Config
เก็บ config พวกนี้ไว้ใน environment
1) Resource handle เช่น URL ปลายทางที่ใช้เก็บ รูป
2) Credentials to external services เช่น username / API token ที่ใช้ เวลาไปเรียก Log servicer
3) Per-Deploy value เช่น Canonical Hostname
โดยที่ควรจะตั้งชื่อ group ตามชื่อ deploy เช่น ใช้ชื่อ local-machine หรือ development, test, UAT, production อะไรแบบนี้ - Backing services
การทำงานที่เป็นส่วนเสริมใด ๆ ที่ใช้ผ่านระบบเครือข่าย เช่น ๆ
Datastore (พวก data ทั้งหลาย อย่าง MySQL, CouchDB)
หรือ
Messaging/Queueing (อย่างพวก RabbitMQ หรือ Beanstalkd)
หรือ
บริการ SMTP (อย่าง Postfix)
หรือ
ระบ Caching (เช่น Memcached)
การทำงานส่วนเสริมที่ sys admin ของเราจัดการเอง
หรือ
ระบบการจัดการที่ใช้บริการคนอื่นก็รวมด้วย(แบบว่าไปใช้บริการคนอื่น เช่น Amazon S3 หรือ ไปเรียก API อีกทีอย่าง Twitter, Google Maps)
ซึ่งเราสามารถมองของพวกนี้เป็น Resource ที่ถูก attach ถูกเอาไปใช้กับ app ของเรา (เหมือนการจ้างบริษัทจัดหาแม่บ้านมาทำความสะอาดออฟฟิศง่ะ)
ดังนั้น เราจะใช้เซอร์วิสยี่ห้อไหน ก็ให้ปรับค่าใน config ได้โดยไม่ต้องไปนั่งแก้โค้ด
พอ จบ เหนื่อย เดี๋ยวค่อยมาต่อ
เครดิตภาพ: ใครกำลังจะซื้อรถแมคโคร ดูรีวิว ได้นะคะ