Have a Goal (มีเป้าหมาย)
Microservices ไม่ใช่เป้าหมาย คุณไม่ได้ "ชนะ" เพียงเพราะมี microservices การนำสถาปัตยกรรม microservice มาใช้ควรเป็นการตัดสินใจอย่างมีสติ ที่อิงอยู่บนการตัดสินใจอย่างมีเหตุผล คุณควรคิดที่จะย้ายไปสู่สถาปัตยกรรม microservice ก็ต่อเมื่อคุณหาวิธีที่ง่ายกว่าในการมุ่งไปสู่เป้าหมายปลายทางของคุณด้วยสถาปัตยกรรมปัจจุบันไม่ได้แล้วเท่านั้น
หากไม่มีความเข้าใจที่ชัดเจนว่าคุณกำลังพยายามบรรลุอะไร คุณอาจตกหลุมพรางของการสับสนระหว่างกิจกรรมกับผลลัพธ์ ผมเคยเห็นทีมที่หมกมุ่นกับการสร้าง microservices โดยไม่เคยถามว่าทำไม นี่เป็นปัญหาที่ร้ายแรงมาก เมื่อพิจารณาถึงแหล่งความซับซ้อนใหม่ ๆ ที่ microservices สามารถนำมาได้
การจดจ่ออยู่กับ microservices แทนที่จะเป็นเป้าหมายปลายทาง ยังหมายความว่าคุณมีแนวโน้มที่จะหยุดคิดถึงวิธีอื่น ๆ ที่คุณอาจใช้เพื่อสร้างการเปลี่ยนแปลงที่คุณต้องการด้วย ยกตัวอย่างเช่น microservices สามารถช่วยให้คุณ scale ระบบของคุณได้ แต่ก็มักมีเทคนิคการ scale ทางเลือกอื่น ๆ อีกหลายอย่างที่ควรพิจารณาก่อน การเปิดสำเนาเพิ่มเติมของระบบ monolithic ที่มีอยู่ของคุณไว้หลัง load balancer อาจช่วยให้คุณ scale ระบบของคุณได้อย่างมีประสิทธิภาพมากกว่าการผ่านกระบวนการแบ่งย่อยไปสู่ microservices ที่ซับซ้อนและยาวนานเสียอีก
Tip (เคล็ดลับ)
Microservices ไม่ใช่เรื่องง่าย ลองสิ่งที่ง่ายกว่าก่อน
สุดท้ายนี้ หากไม่มีเป้าหมายที่ชัดเจน มันจะยากที่จะรู้ว่าควรเริ่มต้นตรงไหน ควรสร้าง microservice ตัวไหนก่อน หากไม่มีความเข้าใจภาพรวมว่าคุณกำลังพยายามบรรลุอะไร คุณก็กำลังบินโดยไม่เห็นทาง
ดังนั้นจงชัดเจนว่าคุณกำลังพยายามสร้างการเปลี่ยนแปลงอะไร และพิจารณาวิธีที่ง่ายกว่าในการบรรลุเป้าหมายปลายทางนั้นก่อนที่จะพิจารณา microservices ถ้า microservices เป็นวิธีที่ดีที่สุดในการเดินหน้าต่อจริง ๆ ก็ติดตามความคืบหน้าของคุณเทียบกับเป้าหมายปลายทางนั้น และปรับเปลี่ยนทิศทางตามความจำเป็น