Moving to Microservices (การย้ายไปสู่ไมโครเซอร์วิส)

ไมโครเซอร์วิส มาพร้อมกับความซับซ้อน มาก มากพอที่เหตุผลในการใช้มันต้องได้รับการพิจารณาอย่างจริงจัง ผมยังคงเชื่อมั่นว่าโมโนลิธแบบ single-process ธรรมดาเป็นจุดเริ่มต้นที่สมเหตุสมผลอย่างยิ่งสำหรับระบบใหม่ เมื่อเวลาผ่านไป เราเรียนรู้สิ่งต่างๆ และเริ่มเห็นว่า สถาปัตยกรรมของระบบ ปัจจุบันของเราไม่เหมาะสมกับวัตถุประสงค์อีกต่อไปอย่างไร ณ จุดนั้น การมองหาการเปลี่ยนแปลงก็ เหมาะสม

สำคัญมากที่ต้องเข้าใจ สิ่งที่ คุณกำลังพยายามได้จากสถาปัตยกรรมไมโครเซอร์วิส เป้าหมายคืออะไร ผลลัพธ์เชิงบวกอะไรที่คุณคาดหวังว่าการเปลี่ยนไปใช้ไมโครเซอร์วิสจะนำมาให้ ผลลัพธ์ที่คุณมุ่งหวังจะส่งผลโดยตรงต่อ วิธีที่ คุณแยกโมโนลิธของคุณออกจากกัน ถ้าคุณกำลังพยายามเปลี่ยนสถาปัตยกรรมของระบบเพื่อรองรับสเกลได้ดีขึ้น คุณจะทำการเปลี่ยนแปลงที่ต่างจากถ้าตัวขับเคลื่อนหลักของคุณคือการปรับปรุงความเป็นอิสระขององค์กร ผมพูดถึงเรื่องนี้เพิ่มเติมใน Chapter 3 และลงรายละเอียดมากขึ้นไปอีกในหนังสือของผมเรื่อง Monolith to Microservices

ปัญหาหลายอย่างของไมโครเซอร์วิสจะปรากฏชัดก็ต่อเมื่อคุณขึ้น production แล้วเท่านั้น ดังนั้นผมขอแนะนำอย่างยิ่งให้ค่อยๆ แยกโมโนลิธที่มีอยู่ออกจากกันแบบวิวัฒนาการ แทนที่จะเขียนใหม่แบบ "big bang" ระบุไมโครเซอร์วิสที่คุณต้องการสร้าง แยกฟังก์ชันการทำงานที่เหมาะสมออกจากโมโนลิธ deploy ไมโครเซอร์วิสตัวใหม่ลง production และเริ่มใช้งานมันจริงจัง จากนั้นคุณจะเห็นว่าคุณกำลังช่วยขับเคลื่อนไปสู่เป้าหมายของคุณหรือไม่ แต่คุณก็จะได้เรียนรู้อะไรมากมายที่จะทำให้การแยกไมโครเซอร์วิสตัวถัดไปง่ายขึ้น หรือบางทีมันอาจบอกคุณว่าไมโครเซอร์วิสอาจไม่ใช่ทางไปข้างหน้าสำหรับคุณเลยก็ได้!