ฉันมีปัญหา. มาใช้ Microservices กันเถอะ! ตอนนี้ฉันมีปัญหากระจาย 13 ครั้ง
การแบ่งระบบของคุณออกเป็นองค์ประกอบที่หุ้มห่อหุ้มแน่นและแยกส่วนเป็นความคิดที่ดี ช่วยให้คุณจัดการปัญหาต่าง ๆ แยกกัน แต่คุณสามารถทำได้อย่างสมบูรณ์แบบในการปรับใช้แบบเสาหิน (ดูFowler: Microservice Premium ) ท้ายที่สุดนี่คือสิ่งที่ OOP ได้สอนมานานหลายสิบปี! หากคุณตัดสินใจที่จะเปลี่ยนส่วนประกอบของคุณให้เป็นไมโครไซต์คุณจะไม่ได้รับผลประโยชน์ทางสถาปัตยกรรมใด ๆ คุณได้รับความยืดหยุ่นเกี่ยวกับการเลือกเทคโนโลยีและอาจเป็นไปได้ (แต่ไม่จำเป็น!!) แต่คุณรับประกันได้ว่าจะมีอาการปวดหัวอันเนื่องมาจาก (a) ลักษณะการกระจายของระบบและ (b) การสื่อสารระหว่างส่วนประกอบ การเลือก microservices หมายความว่าคุณมีปัญหาอื่น ๆ ที่กดดันให้คุณยินดีที่จะใช้ microservices แม้จะมีปัญหาเหล่านี้
หากคุณไม่สามารถออกแบบเสาหินที่แบ่งออกเป็นส่วนประกอบได้อย่างสมบูรณ์คุณจะไม่สามารถออกแบบระบบบริการไมโคร ในฐานรหัสเสาหินความเจ็บปวดจะค่อนข้างชัดเจน ตามหลักแล้วโค้ดจะไม่คอมไพล์หากโค้ดเสียอย่างน่ากลัว แต่ด้วย microservices แต่ละบริการอาจได้รับการพัฒนาแยกต่างหากอาจจะเป็นภาษาที่แตกต่างกัน ปัญหาใด ๆ ในการโต้ตอบของคอมโพเนนต์จะไม่ปรากฏจนกว่าคุณจะรวมส่วนประกอบของคุณและ ณ จุดนั้นมันสายเกินไปที่จะแก้ไขสถาปัตยกรรมโดยรวม
แหล่งที่มาของข้อบกพร่องหมายเลข 1 คืออินเทอร์เฟซที่ไม่ตรงกัน อาจมีข้อผิดพลาดที่เห็นได้ชัดเช่นพารามิเตอร์ที่หายไปหรือตัวอย่างที่ละเอียดอ่อนมากขึ้นเช่นการลืมตรวจสอบรหัสข้อผิดพลาดหรือลืมตรวจสอบเงื่อนไขก่อนที่จะเรียกวิธีการ การพิมพ์แบบสแตติกจะตรวจจับปัญหาดังกล่าวให้เร็วที่สุด: ใน IDE ของคุณและในคอมไพเลอร์ก่อนที่รหัสจะทำงาน ระบบไดนามิกไม่มีความหรูหรานี้ จะไม่ระเบิดจนกว่าจะมีการเรียกใช้รหัสที่ผิดพลาด
ความหมายสำหรับไมโครไซต์นั้นน่ากลัวมาก Microservices เป็นพลวัตโดยเนื้อแท้ ถ้าคุณไม่ย้ายไปใช้ภาษาคำอธิบายบริการอย่างเป็นทางการคุณจะไม่สามารถตรวจสอบความถูกต้องของการใช้อินเทอร์เฟซของคุณได้ คุณต้องทดสอบทดสอบทดสอบ! แต่การทดสอบมีราคาแพงและมักจะไม่ครบถ้วนซึ่งทำให้ความเป็นไปได้ที่ปัญหาอาจยังคงมีอยู่ในการผลิต ปัญหานั้นจะเกิดขึ้นเมื่อใด เฉพาะเมื่อเส้นทางที่ผิดพลาดถูกนำมาใช้ในเวลาทำงานในการผลิต ความคิดที่ว่าปัญหาแยงจะนำไปสู่ข้อเสนอแนะที่เร็วกว่าคือสนุกสนาน ผิดพลาดที่เป็นอันตรายเว้นแต่คุณจะได้รับความสนุกสนานจากการสูญหายของข้อมูล