แอปพลิเคชันผู้เช่าหลายคนคืออะไร


16

ตามคำจำกัดความที่มีออนไลน์คือ " Multi-tenancy เป็นสถาปัตยกรรมที่อินสแตนซ์เดียวของแอปพลิเคชันซอฟต์แวร์ให้บริการลูกค้าหลายราย " หมายถึงฉันมีเว็บไซต์ร้านอาหารหรือโรงเรียนและฉันให้การเข้าถึงร้านอาหารหรือโรงเรียนต่าง ๆ เพื่อใช้แอปพลิเคชันของฉันกับข้อมูลของตัวเองโดยใช้ข้อมูลประจำตัวของพวกเขาที่ฉันให้เมื่อพวกเขาซื้อผลิตภัณฑ์การจัดการโรงเรียน เช่นเดียวกับเว็บไซต์ของฉันเหมือนschoolmanagement.comและฉันมอบโดเมนย่อยที่แตกต่างให้กับลูกค้าโรงเรียนต่าง ๆ เช่นschool1.schoolmanagement.com & school2.schoolmanagement.comแต่รหัสนั้นเหมือนกันทั้งสองโดเมนย่อยเหล่านี้ โรงเรียนทั้งสองแห่งมีฟังก์ชั่นหรือธีมที่แตกต่างกันขึ้นอยู่กับฐานข้อมูลแยก ดังนั้นฉันต้องให้schoolmanagement.comเพื่อเข้าสู่ระบบและเมื่อเข้าสู่ระบบของลูกค้าของพวกเขาขึ้นอยู่กับการเข้าสู่ระบบการรับรองฉันเปลี่ยนเส้นทางไปยัง URL ของตนเช่นschool1.schoolmanagement.com

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


1
คุณหมายถึงอะไรโดย "มีแอปพลิเคชันหลายผู้เช่าออนไลน์ที่ฉันสามารถผ่านได้" คุณต้องการที่จะได้รับแหล่งที่มาหรือลองเป็นผู้เช่าหรือเรียกใช้ในฐานะโฮสต์? ตามที่คุณทราบโฮสติ้งโดเมนเป็นตัวอย่างของผู้เช่าหลายรายที่มีทั้ง บริษัท โฮสติ้งขนาดใหญ่และขนาดเล็ก Google Apps for Business (หรืออะไรก็ตามที่เป็นตราสินค้าในปัจจุบัน) ก็เป็นแอพที่มีผู้เช่าหลายรายกระจายอยู่ค่อนข้างกว้าง
Kristian H

1
จนถึงตอนนี้คุณอยู่ในเส้นทางที่ถูกต้อง Mult-tenancy เกี่ยวข้องกับการเป็นเจ้าของข้อมูล ข้อมูลถูกแบ่งส่วนโดย tenans (เจ้าของ) แอปพลิเคชันใช้เหมือนกันด้วยเหตุผลง่ายๆ: ประหยัดจากขนาด การจัดเก็บข้อมูลอาจเหมือนกันหรืออาจแตกต่างกันสำหรับแต่ละ tenan ข้อมูลไม่ถูกแชร์ได้อย่างน่าเชื่อถือในหมู่ tenans (หรือโดยปกติแล้วพวกเขาไม่ใช่ฉันรู้แล้ว)
Laiv

@ Kristian ขอบคุณสำหรับตัวอย่างโดเมนโฮสติ้งฉันได้รับมัน
Nomi Ali

@Laiv ดังนั้นเราสามารถมีฐานข้อมูลที่แตกต่างกันสำหรับลูกค้าแต่ละคนด้วยการกำหนดค่าแยกต่างหากของพวกเขา?
Nomi Ali

2
ใช่. นั่นคือ (IMO) วิธีที่นิยมกว่า แต่มันก็แพงเช่นกัน เมื่อฉันพูดฐานข้อมูลที่แตกต่างกันพวกเขาอาจเป็น:) schema ที่แตกต่างกันหรืออินสแตนซ์ฐานข้อมูลภายใน RDBMS เดียวกันหรือข) RDBMS ที่แตกต่างกันโดยสิ้นเชิง
Laiv

คำตอบ:


10

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

หลายครอบครองเป็นเรื่องเกี่ยวกับระบบซอฟแวร์และการแยกข้อมูล ตัวอย่างบางส่วน:

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

1

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


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

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

2
ดังนั้นถ้าฐานข้อมูลของฉันที่โดดเดี่ยวซึ่งครอบครอง tenans ทั้งหมดล้มเหลวหรือถูกบุกรุก ... ที่ลดต้นทุนไปที่ไหน และจะเกิดอะไรขึ้นเมื่อแต่ละ tenan มีความต้องการทรัพยากรและประสิทธิภาพแตกต่างกัน? ถ้าพวกเขาต้องการเข้าถึงการจัดเก็บข้อมูล? ... ใช่ ที่เก็บข้อมูลที่แตกต่างกันต่อ tenan และ schemas ที่แตกต่างกันคือ multitenacy นี่คือกลยุทธ์ทางธุรกิจและบริการที่เราต้องการมอบให้กับลูกค้าที่สำคัญกว่ารายละเอียดการใช้งาน Multi-tenancy คือฟีเจอร์ซึ่งเป็นค่าที่ต่างกัน ยิ่งใกล้ชิดกับความต้องการของลูกค้ามากเท่าไหร่
Laiv


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

0

Multi-tenancy เป็นสถาปัตยกรรมที่อินสแตนซ์เดียวของแอปพลิเคชันซอฟต์แวร์ให้บริการลูกค้าหลายราย ลูกค้าแต่ละรายเรียกว่าผู้เช่า ผู้เช่าอาจได้รับความสามารถในการปรับแต่งบางส่วนของแอปพลิเคชันเช่นสีของส่วนติดต่อผู้ใช้ (UI) หรือกฎเกณฑ์ทางธุรกิจ แต่พวกเขาไม่สามารถปรับแต่งรหัสของแอปพลิเคชันได้

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

โปรดดูที่https://whatis.techtarget.com/definition/multi-tenancyสำหรับข้อมูลเพิ่มเติม ..

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

ฉันหวังว่านี้ตอบคำถามของคุณ.


1
ยินดีต้อนรับสู่วิศวกรรมซอฟต์แวร์ ! โปรดแก้ไขคำตอบของคุณที่จะรวมถึงการอ้างอิงถึงแหล่งที่มาของ ; ตอนนี้มันเป็นกรณีของการขโมยความคิด
Glorfindel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.