Shopify รายงานถึงการร้บโหลดช่วง Black Friday ที่ผ่านมา ที่ยอดสั่งซื้อสูงมาก แม้บริษัทจะใช้แอป Ruby on Rails พร้อมกับ MySQL โดยก่อนหน้านี้ Shopify เคยระบุว่าแอปภายในเป็น monolith ขนาด 2.8 ล้านบรรทัด แม้จะ แยกโมดูลเป็น components ก็ตามที
ระบบฐานข้อมูลของ Shopify อาศัย MySQL ทั้ง 5.7 และ 8 รองรับการคิวรีสูงสุด 19 ล้านครั้งต่อวินาทีในช่วงเทศกาล ตัวแอปคอร์หลักรองรับรีเควสสูงสุด 967,000 ครั้งต่อวินาที ตลอดเทศกาลรองรับคำสั่งซื้อรวม 9.3 พันล้านดอลลาร์สหรัฐฯ ช่วงสูงสุดเมื่อวันศุกร์มีคำสั่งซือ 4.2 ล้านครั้งต่อนาที
เมื่อปี 2020 Sam Newman ผู้เขียนหนังสือ Building Microservices เคย พูดถึงการออกแบบสถาปัตยกรรมซอฟต์แวร์ว่าไม่ได้ต้องทำเป็น microservices เสมอไป แต่สามารถออกแบบส่วนประกอบในซอฟต์แวร์ monolith ให้ดีเป็นโมดูลก็ทำงานได้เหมือนกัน
ที่มา - Shopify
Comments
Ruby on Rails
keyword มันอยู่ที่ modules นั่นแหละ พอเป็น modules ได้มันก็เลือกกระจายโหลดด้วยมือ หรือตามโหลดจริงให้เหมาะสมได้ เพราะจริงๆ พวก Microservices มันก็ใช้พื้นฐานเดียวกัน เพียงแต่มีเครื่องมือช่วยกระจายโหลด ไม่ต้องเข้าไปจัดการเอง บางทีคนเราก็ไปสนใจสิ่งไม่สำคัญ จนเอาปัญหาไปกองรวมกันทำให้พอตีมูลค่ารวมมันสูงเกินจริง ทั้งที่บางทีปัญหาหลักมันมีไม่ถึง 20% ที่จำเป็นต้องออกแบบให้สเกลได้