• หลายผู้เช่า
  • saas
  • ซอฟต์แวร์
  • การพัฒนา
  • สถาปัตยกรรม

โมเดลการเช่าซื้อสำหรับแอปพลิเคชันหลายผู้เช่า

การเจาะลึกลงไปในแนวคิดของ "หลายผู้เช่า" และแบ่งปันข้อมูลเชิงลึกของเราเกี่ยวกับวิธีที่เรามองมัน

Guamian
Guamian
Product & Design

เราได้ยินบ่อยครั้งเกี่ยวกับความสำคัญของการสร้างแอปพลิเคชันหลายผู้เช่า โดยเฉพาะอย่างยิ่งในบริบทของการพัฒนาแอปพลิเคชัน Software as a Service (SaaS)

มีความสับสนเกี่ยวกับแนวคิดของแอปพลิเคชัน "หลายผู้เช่า" และโมเดลต่าง ๆ ที่ใช้ในการพัฒนาแอปพลิเคชันดังกล่าว ในบทความนี้ เราได้ตรวจสอบแนวคิดเหล่านั้นอย่างใกล้ชิดในทางปฏิบัติมากขึ้น

ทำความเข้าใจกับโมเดลการเช่าที่แตกต่างจากมุมมองทางเทคนิค

สถาปัตยกรรมผู้เช่าคนเดียว

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

single-tenant

ลักษณะ

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

ตัวอย่าง

  • โฮสติ้งที่เฉพาะตัว: ผู้ให้บริการเว็บโฮสติ้งแบบดั้งเดิมเสนออินสแตนซ์ผู้เช่าคนเดียวที่แต่ละลูกค้าจะได้รับทรัพยากร ฐานข้อมูล หรือการกำหนดค่าของตนเอง
  • ซอฟต์แวร์ในสถานที่: แอปพลิเคชันซอฟต์แวร์สำหรับองค์กรมากมาย เช่น ระบบการจัดการลูกค้าสัมพันธ์ (CRM) หรือระบบการจัดการทรัพยากรบุคคล (HRMS) มีตัวเลือกการปรับใช้แบบผู้เช่าคนเดียวสำหรับองค์กรที่มีความต้องการด้านความปลอดภัยของข้อมูลและการปรับแต่งอย่างเข้มงวด
  • SaaS ด้วยระดับพรีเมียม: ในบางข้อเสนอ Software as a Service (SaaS) ระดับพรีเมียมหรือองค์กรมีตัวเลือกเป็นผู้เช่าคนเดียวสำหรับลูกค้าที่ต้องการความปลอดภัย การปฏิบัติตามข้อกำหนด หรือการปรับแต่งสูงสุด

สถาปัตยกรรมผู้เช่าคนเดียวมักจะถูกใช้ในกรณีที่การปฏิบัติตามข้อกำหนดมีความสำคัญหรือมีความต้องการความปลอดภัยที่เฉพาะเจาะจง เช่น อุตสาหกรรมการเงิน การดูแลสุขภาพ และรัฐบาลที่มีข้อกำหนดข้อบังคับที่เคร่งครัด มักชื่นชอบโซลูชันผู้เช่าคนเดียวเพื่อให้แน่ใจว่ามีการปฏิบัติตามข้อกำหนด

แต่สำคัญที่ต้องสังเกตว่าสถาปัตยกรรมผู้เช่าคนเดียวอาจจะต้องใช้ทรัพยากรและการจัดการที่ซับซ้อนมากกว่าสถาปัตยกรรมหลายผู้เช่าเนื่องจากอินสแตนซ์ของลูกค้าแต่ละรายต้องการโครงสร้างพื้นฐานและการบำรุงรักษาของตนเอง ดังนั้น อาจจะเหมาะสมกว่าสำหรับแอปพลิเคชันที่มีลูกค้าน้อยแต่ขนาดใหญ่หรือที่ต้องการการปรับแต่งและการแยกตัว

สถาปัตยกรรมหลายผู้เช่า

ซอฟต์แวร์หลายผู้เช่า คือ สถาปัตยกรรมซอฟต์แวร์ ซึ่งมีอินสแตนซ์เดียวของ ซอฟต์แวร์ ที่รันบนเซิร์ฟเวอร์และให้บริการผู้เช่าหลายราย ระบบที่ออกแบบในลักษณะดังกล่าวคือ "แชร์" (แทน "ทุ่มเท" หรือ "แยกตัว") ผู้เช่าคือกลุ่มของผู้ใช้ที่มีการเข้าถึงร่วมกันพร้อมกับสิทธิพิเศษเฉพาะในอินสแตนซ์ซอฟต์แวร์ ด้วยสถาปัตยกรรมหลายผู้เช่า แอปพลิเคชันซอฟต์แวร์ ได้รับการออกแบบเพื่อให้ผู้เช่าทุกคนสามารถใช้งานอินสแตนซ์ได้ร่วมกัน รวมทั้งข้อมูล การกำหนดค่า การจัดการผู้ใช้ ฟังก์ชันเฉพาะผู้เช่า และ คุณสมบัติที่ไม่ใช่ฟังก์ชัน -- วิกิพีเดีย

multi-tenant

ลักษณะ

  • ทรัพยากรที่แชร์: ผู้เช่าหลายรายใช้โครงสร้างพื้นฐานเดียวกันรวมถึงเซิร์ฟเวอร์ ฐานข้อมูล และทรัพยากรเครือข่ายเพื่อเพิ่มประสิทธิภาพการใช้ทรัพยากร
  • การแยกตัว: ข้อมูลและการกำหนดค่าของผู้เช่าจะแบ่งแยกกันทางตรรกะเพื่อให้แน่ใจว่าข้อมูลมีความเป็นส่วนตัวและปลอดภัย
  • ประหยัดจากขนาด: หลายผู้เช่าสามารถลดค่าใช้จ่ายได้เนื่องจากค่าใช้จ่ายจะกระจายไปยังผู้ใช้หลายราย ลดค่าใช้จ่ายในการดำเนินงานและโครงสร้างพื้นฐาน
  • การปรับขนาด: สถาปัตยกรรมสามารถปรับขนาดได้ทั้งแนวนอนหรือแนวตั้งเพื่อตอบสนองผู้เช่าและผู้ใช้ที่เพิ่มขึ้น
  • การบำรุงรักษา: การอัปเดตและการบำรุงรักษาเป็นเรื่องง่ายเนื่องจากการเปลี่ยนแปลงมีผลต่อผู้เช่าทุกคนอย่างพร้อมเพรียง ลดความซับซ้อนในการจัดการ
  • การปรับแต่ง: แม้ว่าการปรับแต่งบางอย่างอาจเป็นไปได้ แต่จะมักจะจำกัดเมื่อเทียบกับสถาปัตยกรรมผู้เช่าคนเดียวเพื่อรักษาความสม่ำเสมอทั่วระบบ

ตัวอย่าง

  • SaaS บนคลาวด์: แอปพลิเคชัน Software as a Service (SaaS) ส่วนใหญ่ เช่น Google Workspace และ Salesforce ใช้การเช่าหลายผู้เพื่อให้บริการหลายองค์กรหรือผู้ใช้บนแพลตฟอร์มที่แชร์
  • โฮสติ้งที่แชร์: ในการให้บริการเว็บโฮสติ้ง บริการโฮสติ้งที่แชร์จะให้เว็บไซต์หลายแห่งใช้งานบนเซิร์ฟเวอร์เดียวกัน โดยเป็นของลูกค้าหรือองค์กรที่แตกต่างกัน
  • บริการคลาวด์สาธารณะ: ผู้ให้บริการคลาวด์สาธารณะ เช่น AWS และ Azure ใช้หลายผู้เช่าเพื่อตอบสนองลูกค้าที่หลากหลายด้วยทรัพยากรที่แยกตัวในศูนย์ข้อมูลที่แชร์
  • โซลูชันโครงสร้างพื้นฐานระดับองค์กร: เช่น คลัสเตอร์ Kubernetes ที่แชร์ที่ใช้โดยหน่วยธุรกิจหลายหน่วยในองค์กรเดียวกัน

การนิยามใหม่ของแอปหลายผู้เช่าในโลกแห่งความเป็นจริง

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

อย่างไรก็ตาม ธุรกิจและผลิตภัณฑ์มีความหลากหลายมากและมีความต้องการเฉพาะกรณีหลายอย่าง ไม่มีโซลูชันที่เหมาะกับทุกกรณี

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

ในการพัฒนาผลิตภัณฑ์ SaaS ในทางปฏิบัติ มันเป็นเรื่องธรรมดาที่จะพบว่าแอปพลิเคชันถูกออกแบบด้วยโมเดลการเช่าหลาย ๆ แบบเป็นหลัก อย่างไรก็ตาม บางแง่มุมของสถาปัตยกรรมหรือทรัพยากรอาจจะไปสู่แนวทาง "การเช่าคนเดียว"

AWS ใช้กรณีนี้เป็นตัวอย่างในการสื่อสารแนวคิดนี้: การเช่าหลายคนเป็นแนวคิดที่กว้างและขึ้นอยู่กับกรณีเพื่อรวมและเลือกกลยุทธ์ที่เหมาะสมที่จะกำหนดสิ่งที่คุณต้องการให้เกิดขึ้นกับทรัพยากรที่แชร์และการแยกข้อมูล

mixed-tenant

อีกนัยหนึ่ง บางครั้งผู้คนยังเรียกรูปแบบนี้ว่า "หลายผู้เช่า" ดังนั้น ในคำจำกัดความของหลายผู้เช่าที่กว้าง มันไม่ได้บอกนัยว่าทุกองค์ประกอบในโซลูชันนั้นเป็นการแชร์ แทนที่จะบอกว่าอย่างน้อยที่สุดบางองค์ประกอบของโซลูชั่นถูกนำกลับมาใช้ใหม่กับผู้เช่าหลายราย

การเข้าใจคำนี้อย่างกว้าง ๆ สามารถช่วยให้คุณเข้าใจความต้องการของลูกค้าและที่มาของมันได้ดีขึ้น

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

การพิจารณาที่สำคัญเพื่อกำหนดกลยุทธ์โมเดลการเช่าของคุณ

คำถามนี้มาถึง คุณจะเสนอแนะกลยุทธ์การเช่าสำหรับผลิตภัณฑ์ของคุณได้อย่างไร? นี่คือคำถามสำคัญบางส่วนที่ควรพิจารณา:

  • เป้าหมายทางธุรกิจของคุณคืออะไร?
  • ผลิตภัณฑ์ผู้เช่าคนเดียวสามารถรองรับแผนการเติบโตในอนาคตของคุณได้หรือไม่?
  • ทีมงานปฏิบัติการของคุณมีขนาดเท่าไร และคุณสามารถทำให้งานการจัดการโครงสร้างพื้นฐานอัตโนมัติได้มากแค่ไหน? คุณสนใจในความคล่องตัวและประสิทธิภาพด้านค่าใช้จ่ายหรือไม่?
  • ลูกค้าของคุณสะดวกใจกับตัวเลือกการเช่าหลายผู้แบบต่าง ๆ หรือไม่?
  • แต่ละตัวเลือกส่งผลกระทบต่อการปฏิบัติตามข้อกำหนดของคุณและลูกค้าอย่างไร?
  • คุณมีความคาดหวังที่จะปฏิบัติตามข้อตกลงระดับการให้บริการ (SLAs) หรือมีเป้าหมายระดับการให้บริการเฉพาะ (SLOs) หรือไม่?
  • คุณได้พิจารณาเรื่องความปลอดภัย ค่าใช้จ่าย ประสิทธิภาพ ความน่าเชื่อถือ และการตอบสนองต่อความต้องการของผู้เช่ารายย่อยทั้งหมดแล้วหรือไม่?

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

ถัดไป

เราได้พูดคุยเกี่ยวกับ "คำจำกัดความใหม่" ของแอปหลายผู้ แต่ว่าเกี่ยวกับการแยกตัวของผู้เช่า รหัสประจำตัว และการพิจารณาว่ารหัสประจำตัวของคุณควรแยกกันหรือไม่? หมายความว่าอย่างไรสำหรับรหัสประจำตัวที่จะ"แยก"?

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

เราจะตอบคำถามเหล่านี้ในชุดบทความต่อ ๆ ไปของเรา โปรดติดตาม!