ในแง่ของสถาปัตยกรรมซอฟต์แวร์และการออกแบบ microservices "stack up" (เล่นสำนวนเจตนา) กับมิดเดิลแวร์อย่างไร ฉันมาจาก Java และดูเหมือนว่าเมื่อคุณย้ายออกจาก REST แบบตรงเป็น API และแยกแยะเลเยอร์และพารามิเตอร์การเชื่อมต่อต่าง ๆ อย่างน้อยที่สุดใน Java คุณเกือบจะกลับมาที่ความคิดเก่า ๆ . เราได้กลับมาสู่การจำลองเสมือน ... ซึ่ง JVM นั้นเสมือนจริงอยู่แล้ว
ด้วยวิธีที่ไม่เชื่อเรื่องพระเจ้าคุณสามารถและฉันจะเถียงข้อได้เปรียบที่เป็นนามธรรม, สงบเงียบ API กับ CORBA หรือในทางที่มีจาวาเป็นศูนย์กลางมากกว่า JMS หรือ MDB
ในครั้งเดียว EJB เป็นเรื่องใหญ่ใน Java แล้วมันได้รับการยอมรับว่าเป็นกลุ่มของคลัสเตอร์ แต่ตอนนี้เรากลับไปที่จุดเริ่มต้นหรือไม่?
หรือ microservices เสนอสิ่งที่ CORBA หรือดีกว่า MDB ขาดหรือไม่ เมื่อฉันอ่าน (TLDR) มาร์ตินฟาวเลอร์อธิบายการใช้ไมโครไซต์มันจะทำให้ฉันเป็นทางออกที่ดีสำหรับปัญหาที่ไม่ดีถ้าคุณต้องการ หรือค่อนข้างเป็นวิธีการปิดที่เปิดใจซึ่งนำเสนอระดับของความซับซ้อนเพียงผลักดันปัญหาไปรอบ ๆ หากบริการเป็นจริงอย่างแท้จริงและมีจำนวนมากแล้วแต่ละคนมีค่าเงินดอลลาร์ในการทำงานและบำรุงรักษา
นอกจากนี้หากหนึ่งในบริการขนาดเล็กในหมู่หลาย ๆ เปลี่ยนแปลง API ของมันแล้วทุกอย่างขึ้นอยู่กับการแบ่งบริการที่ มันดูเหมือนจะไม่คู่กันหลวม ๆดูเหมือนว่าจะตรงกันข้ามกับความคล่องตัว หรือฉันใช้คำเหล่านั้นในทางที่ผิด?
แน่นอนว่ายังมีตัวเลือกจำนวนไม่แน่นอนระหว่างสุดขั้วเหล่านี้
ฉลามกับกอริลลา ... ไปกันเลย! (สำหรับเรื่องอื้อฉาวนั่นหมายถึงแดกดันและไม่ใช่ความตั้งใจของฉันเลยคำถามจะต้องถูกนำมาใช้ที่มูลค่าหากคำถามสามารถปรับปรุงได้โปรดทำเช่นนั้นหรือแสดงความคิดเห็นและฉันจะแก้ไข )
จินตนาการ microservices มากมายที่ทำงานใน docker ทั้งหมดในเครื่องเดียวพูดคุยกัน ... บ้าคลั่ง ยากต่อการบำรุงรักษาหรือผู้ดูแลและถัดจากสิ่งที่เป็นไปไม่ได้ที่จะเปลี่ยนแปลงสิ่งใดเลยเนื่องจากการเปลี่ยนแปลงใด ๆ จะเรียงซ้อนและทำให้เกิดข้อผิดพลาดที่คาดเดาไม่ได้ บริการเหล่านี้กระจัดกระจายไปทั่วเครื่องต่างกันอย่างไร และถ้าพวกมันกระจายแล้วเทคนิคของโรงเรียนที่เก่าแก่มาก ๆ ก็จะถูกแก้ไขอย่างน้อยก็จนถึงระดับหนึ่ง
เหตุใดการขยายในแนวนอนจึงแพร่หลายมากหรือเป็นที่ต้องการอย่างน้อยที่สุด
giant blob
ต้องมีอินเทอร์เฟซดังนั้นแต่ละส่วนที่เริ่มจากเคอร์เนลคือ MS ทีมใดเริ่มต้นเขียนโค้ดคือการยอมรับข้อกำหนดที่ v0.0.1