"Multitenancy คือรากฐานที่ซ่อนอยู่ซึ่งทำให้ SaaS ขยายตัวได้อย่างยอดเยี่ยม"

  • มาร์จินที่สูงและความสามารถในการขยายตัวที่ดูเหมือนไร้ขีดจำกัดของโมเดล SaaS คือเหตุผลที่ตลาดหุ้น / นักลงทุน / ผู้ก่อตั้งจำนวนมากกระโจนเข้าสู่พื้นที่นี้
  • สิ่งที่ทำให้เกิดขึ้นได้ก็คือโครงสร้างพื้นฐาน โดยเฉพาะแนวคิดเรื่อง "Multitenancy"
  • ปัจจุบันแทบทุกบริษัทใช้คลาวด์และ SaaS และหัวใจสำคัญของการสร้างโซลูชันคลาวด์ก็คือ Multitenancy
  • Marc Benioff ผู้ก่อตั้ง Salesforce เคยกล่าวว่า "Multitenancy เป็นสิ่งจำเป็นสำหรับผู้ขาย SaaS ที่ต้องการประสบความสำเร็จ"
  • แล้ว Multitenancy คืออะไรกันแน่ และทำไมมันจึงสำคัญ?

Multitenancy: การสร้างระบบรถไฟใต้ดิน

  • มาทำความเข้าใจ Single Tenancy ก่อน
    • ลูกค้าแต่ละรายใช้แอปพลิเคชันและฐานข้อมูลที่เป็นของตนเองโดยเฉพาะ
    • กล่าวคือ ถ้ามีลูกค้า 100 ราย ก็จะมีเซิร์ฟเวอร์ 100 เครื่อง แอปพลิเคชัน 100 ชุด และฐานข้อมูล 100 ชุด
    • Single Tenancy ต้องใช้เวลา เงิน และความพยายามอย่างมากในการดูแลรักษาเมื่อขยายในระดับใหญ่
  • ถ้ามองในมุมการเดินทาง คุณอาจขับรถไปทำงานหรือนั่งรถไฟใต้ดินก็ได้
    • การขับรถสะดวกก็จริง แต่ต้องจ่ายค่ารถ ค่าน้ำมัน ค่าที่จอดรถ รวมถึงต้นทุนจากการจราจรติดขัดและมลพิษเพิ่มเติมด้วย
    • การนั่งรถไฟใต้ดินมีต้นทุนถูกกว่าเมื่อเทียบกัน ช่วยให้ถนนโล่งขึ้น และทำลายชั้นโอโซนน้อยลง
  • หากพนักงานทั้ง 50,000 คนใน World Trade Center (WTC) ต่างขับรถไปทำงานทั้งหมด ระบบก็จะซับซ้อนวุ่นวายมาก
  • เพราะเหตุนี้ Multitenancy แบบรถไฟใต้ดินจึงเกิดขึ้น เพื่อลดต้นทุน ลดค่าใช้จ่ายแฝง และลด "ความโกลาหล" ของสภาพแวดล้อมได้อย่างมาก

ทำไมต้องเป็นตอนนี้?

  • เหตุผลของการเปลี่ยนไปใช้รถไฟใต้ดินคืออะไร? ถ้ามันดีขนาดนั้น แล้วทำไมก่อนหน้านี้ถึงไม่เลือกใช้?
  • คำตอบอยู่ที่ "คลาวด์" ความนิยมของ Cloud Computing และธุรกิจ SaaS กำลังเติบโตแบบก้าวกระโดด
  • หากดูตลาดสาธารณะ จะเห็นว่าบริษัทที่เคยขายผลิตภัณฑ์แบบ Self-hosted กำลังหันไปสู่คลาวด์อย่างรวดเร็ว
  • บริษัทอย่าง Atlassian, Autodesk, Elastic และ Microsoft ต่างนำเสนอโซลูชันแบบ Cloud-hosted และทำรายได้เติบโตแบบก้าวกระโดด
  • Atlassian เพิ่มลูกค้าใหม่มากกว่า 10,000 รายในไตรมาสที่ผ่านมาเพียงไตรมาสเดียว หากต้องดูแลลูกค้า 10,000 รายด้วย Single Tenancy บริษัทจะเผชิญความยากลำบากจากงานวิศวกรรมเฉพาะราย การจัดการทรัพยากร ความซับซ้อน และการขาดแคลนบุคลากรที่จะมาแก้ปัญหาธุรกิจหลัก
  • ดังนั้นสตาร์ตอัประยะเริ่มต้นอาจเลือกเริ่มจากสภาพแวดล้อม Single Tenancy แบบ 'Quick-and-Dirty' (ทำเร็ว แบบง่าย ๆ) ได้ แต่เมื่อมีขนาดใหญ่ขึ้นและเริ่มเติบโต ก็จะต้องเผชิญกับหนี้ทางเทคนิคที่หลีกเลี่ยงไม่ได้ ซึ่งแก้ได้ด้วยสภาพแวดล้อม Multitenant เท่านั้น
  • เมื่อ Cloud Computing และธุรกิจ SaaS เติบโตขึ้น ค่าใช้จ่ายแฝงของโซลูชัน Single Tenant ก็เพิ่มขึ้น และความต้องการ Multitenancy ก็เพิ่มขึ้นเช่นกัน

ข้อดีของ Multitenancy

  • Multitenancy มอบเวทมนตร์หลายอย่างให้กับผู้ขาย SaaS
  • ความสามารถในการแชร์โครงสร้างพื้นฐานร่วมกันตลอดฐานลูกค้านั้นถือเป็นตัวเปลี่ยนเกม
  • และข้อดีของ Multitenancy ไม่ได้มีแค่เรื่องสเกลเท่านั้น แต่ยังมีข้อได้เปรียบสำคัญอื่น ๆ อีก

กำไรจากการขาย (Margins)

  • การใช้โครงสร้างพื้นฐานร่วมกันส่งผลโดยตรงต่อกำไรของผู้ให้บริการ ยิ่งใช้โครงสร้างพื้นฐานมากเท่าไร ผลตอบแทนก็ยิ่งดีขึ้น
  • Multitenant ต้องใช้ทรัพยากรน้อยกว่า ทั้งในด้านบุคลากรและต้นทุนซอฟต์แวร์/ฮาร์ดแวร์ ทั้งทางตรง (ในมุมต้นทุนสินค้าที่ขาย) และทางอ้อม (ในแง่ที่บุคลากรหลักสามารถนำพลังงานไปโฟกัสเรื่องอื่นได้)
  • ส่งผลให้กำไรรวมสูงขึ้น และท้ายที่สุดก็สร้างกระแสเงินสดอิสระ (Free Cash Flow) ซึ่งนำไปสู่การได้มูลค่าประเมินในตลาดที่สูงขึ้น

การมองเห็น (Visibility)

  • การใช้ Multitenancy มีข้อได้เปรียบมากในการทำความเข้าใจประสิทธิภาพของโครงสร้างพื้นฐาน หรือดูว่าต้นทุนถูกสะท้อนไปยังกลุ่มลูกค้าเฉพาะหรือไม่
    • ข้อมูลควรถูก query ได้ทั้งในภาพรวมและแยกตามลูกค้า
  • ในโครงสร้างพื้นฐานแบบ Single Tenant ข้อมูลของลูกค้ากระจัดกระจายอยู่หลายแห่ง ทำให้การวิเคราะห์ตัวชี้วัดแบบ Cross-Customer ทำได้ยากมาก
  • แต่ในโครงสร้างพื้นฐานแบบ Multitenant คุณสามารถมองเห็นฐานลูกค้าทั้งหมดและตรวจสอบแนวโน้มมหภาคได้
    • สิ่งนี้ตรวจสอบได้ในระดับ logging, ระดับ DB หรือระดับ Application Performance Monitoring และเป็นประโยชน์อย่างมากต่อ Cross-Functional Team

ความซับซ้อนของ Multitenancy

  • ทุก "เวทมนตร์" ย่อมมีปัญหา และ Multitenancy ก็ไม่ใช่ข้อยกเว้น

ปัญหาที่ 1: ความพร้อมใช้งานและเพื่อนบ้านเสียงดัง

  • สมมติว่าอีคอมเมิร์ซรายหนึ่งเก็บข้อมูลลูกค้าทั้งหมดไว้ในฐานข้อมูลเดียว โดยผู้ใช้ส่วนใหญ่ซื้อของเดือนละหนึ่งหรือสองชิ้น แต่มีผู้ใช้คนหนึ่งซื้อวันละ 5,000 ชิ้น
    • หากฐานข้อมูลไม่แข็งแรงพอจะรับโหลดที่พุ่งขึ้นจากลูกค้ารายนี้ได้ ฐานข้อมูลทั้งหมดอาจล่มและทำให้ลูกค้ารายอื่นซื้อสินค้าไม่ได้
  • นี่เป็นความท้าทายใหญ่ และนำไปสู่การตัดสินใจเรื่อง Data Partitioning
    • Silo Partitioning (แยก DB ต่อ tenant) vs. Pooled Partitioning (แชร์ DB ระหว่าง tenant)
    • Silo Partitioning อาจแก้ปัญหาของลูกค้าบางรายได้ แต่ก็จะย้อนกลับไปเจอปัญหาเดิมคือต้องจัดการอินสแตนซ์จำนวนมาก
    • Pooled Partitioning ทำงานได้ดี แต่ถ้าลูกค้าคนหนึ่งสร้างโหลดจนเกิดปัญหา ก็อาจทำให้ระบบช้าหรือถึงขั้นล่มได้

ปัญหาที่ 2: ทรัพยากรที่ใช้ร่วมกันและความปลอดภัยของข้อมูล

  • ลูกค้าทุกคนใช้ทรัพยากรร่วมกัน และเนื่องจากไม่มีมาตรฐานการติดตั้งใช้งาน Multitenant แบบเดียวตายตัว จึงอาจเกิดบั๊กทางเทคนิคที่ทำให้ข้อมูลข้ามกันระหว่าง tenant ต่าง ๆ ได้
  • หากคุณให้บริการลูกค้าที่แข่งขันกันอยู่พร้อมกัน นี่อาจเป็นปัญหาที่อันตรายมาก
  • ทีมเทคนิคต้องประเมินกฎหมาย Data Sovereignty และข้อกำหนดต่าง ๆ ที่มีผลต่อการแยก tenant

การแก้ความซับซ้อน

  • Multitenant ได้กลายเป็นหนึ่งในเสาหลักสำคัญของแอปพลิเคชัน SaaS แต่ในการนำไปใช้งานจริงก็ยังมีความซับซ้อนอีกมากที่ต้องพิจารณา
  • CEO ของ Cloudinary เน้นว่า "Multitenancy เป็นกุญแจสู่การบรรลุ Operational Excellence แต่การทำให้ถูกต้องต้องอาศัยความรู้และการลงทุนจำนวนมาก"
  • Boldstart และ F2 (ผู้เขียนบทความนี้) ได้ลงทุนในสตาร์ตอัปแห่งหนึ่งที่กำลังแก้ปัญหา Multitenancy เหล่านี้อยู่ (ปัจจุบันยังอยู่ใน stealth mode)
  • แม้ระบบ Multitenant จะมีเรื่องซับซ้อนมากมาย แต่เมื่อคิดถึงหนี้ทางเทคนิคที่เกิดขึ้นตอนขยายระบบ Single Tenant ก็แทบไม่ต้องลังเลอีกต่อไป
    • เพราะการแก้หนี้ทางเทคนิคนี้ต้องใช้ทีมวิศวกรระดับแนวหน้า และทำให้ต้องใช้ทรัพยากรไปกับส่วนที่ไม่ใช่ธุรกิจหลัก
    • สตาร์ตอัปที่ฉลาดจึงเลือกวางแผน สร้าง และดูแลสภาพแวดล้อมแบบ Multitenant ตั้งแต่แรกเริ่ม

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น