Ikaw ba ay isang developer, system architect, o IT manager na naghahanap ng solusyon upang mabawasan ang mga gastos, mapalakas ang scalability, at ma-secure ang iyong mga cloud-based na application?
Kung ito ang kaso, maaaring multi-tenancy ang iyong sagot.
Sa post na ito, titingnan natin ang mga pangunahing kaalaman sa multi-tenancy, mga alternatibong pamamaraan para sa pagpapatupad nito, at mahahalagang salik na dapat isaalang-alang. Ang gabay na ito ay mag-aalok sa iyo ng lahat ng kailangan mo upang makapagsimula.
Ano ang Eksaktong Multitenancy?
Ang isang software ay maaaring maghatid ng maraming kliyente (mga nangungupahan) sa ilalim ng multi-tenancy na konsepto ng arkitektura ng software. Ang bawat nangungupahan ay may sariling data, configuration, at user interface at lohikal na nakahiwalay sa iba.
Ipinahihiwatig nito na ang data ng bawat nangungupahan ay naiiba sa data ng ibang mga nangungupahan at hindi naa-access ng ibang mga nangungupahan. Sa cloud-based na software, kung saan maraming kliyente ang nagbabahagi ng parehong imprastraktura, ang multi-tenancy ay madalas na ginagamit.
Ang multi-tenancy ay isang konsepto sa loob ng ilang sandali, ngunit sa paglago ng cloud computing, ito ay naging mas kilala kamakailan. Sa cloud-based na software, ang multi-tenancy ay isang mahusay na diskarte para makatipid ng mga gastos, mapalakas ang scalability, at mapataas ang flexibility.
Bakit Ito Mahalaga?
Nagmula ang multi-tenancy sa mga tradisyonal na disenyo ng mainframe kapag nagbahagi ang ilang program at user ng iisang processing hardware platform. Sa pagpapakilala ng kontemporaryong hardware-assisted virtualization, ang multi-tenancy ay nakakita ng boom sa katanyagan.
Ang kakayahang magbahagi ng hardware sa maraming mga pagkakataon ng software, tulad ng mga virtual machine at kanilang mga application, ay lumitaw bilang isang kritikal na tampok sa cloud-based na software.
Ang multi-tenancy ay karaniwang ginagamit sa mga lokal na data center at naka-host na mga imprastraktura gaya ng colocation at shared IT services, na nagbibigay-daan sa ilang user na magbahagi ng pinaghihigpitan o shared hardware infrastructure.
Dahil sa kapasidad nitong bawasan ang mga gastos, pahusayin ang scalability, at palakasin ang seguridad sa cloud-based na software, ang multi-tenancy ay naging isang mahalagang paradigma sa disenyo ng software.
Paano Ito Nakamit?
Virtualization, containerization, at cloud computing ay ilan sa mga diskarte at teknolohiyang ginagamit upang magawa ang multi-tenancy.
Binibigyang-daan ng virtualization ang maraming virtual computer o operating system na gumana sa isang pisikal na makina, na nagpapahintulot sa iba't ibang nakahiwalay na kapaligiran na malikha.
Ang containerization, sa kabilang banda, ay nagbibigay-daan sa pagbuo ng magaan, hiwalay, at portable na kapaligiran na may parehong kernel ng operating system.
Ang cloud computing ay isang lubos na nasusukat at madaling ibagay na arkitektura na nagbibigay-daan sa maraming user na magbahagi ng on-demand na pool ng mga mapagkukunan ng computer.
Ang mga teknolohiyang ito, kapag ipinares sa iba't ibang diskarte sa pamamahala at seguridad, ay nagbibigay-daan sa pagbuo ng isang multi-tenant na kapaligiran na nagsisiguro sa paghihiwalay, seguridad, at pagganap ng bawat nangungupahan.
Pagkakaiba sa Pagitan ng Single Tenant vs Multi-Tenant
Ang pangunahing pagkakaiba sa pagitan ng single-tenant at multi-tenant na kapaligiran ay ang isang customer sa isang single-tenant na kapaligiran ay may nakalaang instance ng application at pagsuporta sa imprastraktura, samantalang maraming customer ang nagbabahagi ng parehong aplikasyon at imprastraktura sa isang multi-tenant na kapaligiran.
Ang data ng bawat customer ay pinaghihiwalay mula sa data ng iba pang mga customer sa isang multi-tenant na kapaligiran, ngunit pareho sila ng codebase at imprastraktura. Binabawasan nito ang mga gastos ng vendor sa mga sitwasyong maraming nangungupahan dahil maaari silang maghatid ng ilang kliyente sa isang pagkakataon ng programa.
Ang mga setting ng nag-iisang nangungupahan, sa kabilang banda, ay nagbibigay ng higit na kontrol, pagpapasadya, at seguridad dahil ang bawat kliyente ay may kanilang mga nakalaang mapagkukunan at ang mga aksyon ng isang customer ay hindi nakakaapekto sa mga aksyon ng iba.
Mga Benepisyo ng Multi-tenancy
- Pag-save ng Gastos: Dahil nagbibigay-daan ang multi-tenancy sa maraming customer na magbahagi ng parehong imprastraktura, parehong makakatipid ng pera ang nagbebenta ng software at ang mga customer.
- Pinahusay na Scalability: Nagbibigay-daan ang multi-tenancy sa mga software provider na sukatin lamang ang kanilang imprastraktura upang matugunan ang mga hinihingi ng kanilang mga kliyente nang hindi kinakailangang mag-deploy ng bagong hardware at software para sa bawat customer.
- Nadagdagang Flexibility: Ang multi-tenancy ay nagbibigay sa parehong software vendor at sa mga consumer ng higit na kalayaan. Maaaring baguhin ng mga customer ang kanilang pagkonsumo kung kinakailangan, habang ang mga supplier ng software ay maaaring magbigay ng iba't ibang antas ng serbisyo at mga scheme ng presyo.
- Mas mahusay na Seguridad: Dahil ibinubukod ng multi-tenancy ang data ng bawat nangungupahan at pinipigilan ang ibang mga nangungupahan na ma-access ito, tumataas ang seguridad.
- Pinahusay na Paggamit ng Mapagkukunan: Binibigyang-daan ng multi-tenancy ang mga supplier ng software na gamitin nang husto ang kanilang mga mapagkukunan ng hardware, na nagreresulta sa pinahusay na pagganap at kahusayan.
Mga diskarte sa Multi-tenancy
Mga Hiwalay na Database
Ang bawat nangungupahan ay may database nito sa ilalim ng diskarteng ito. Ito ang pinakasimpleng solusyon at nagbibigay ng kabuuang data segregation sa pagitan ng mga nangungupahan. Ang bawat nangungupahan ay may kumpletong kontrol sa kanilang database at maaaring i-configure ito ayon sa gusto nila.
Ang diskarteng ito, gayunpaman, ay maaaring magastos dahil ang bawat nangungupahan ay nangangailangan ng kanilang database instance. Higit pa rito, ang pangangasiwa ng ilang mga database ay maaaring kumplikado at nakakaubos ng oras.
Nakabahaging Database, Hiwalay na Schema
Ang lahat ng nangungupahan sa diskarteng ito ay nagbabahagi ng isang database, ngunit ang bawat nangungupahan ay may natatanging schema sa loob ng database na iyon. Dahil ang lahat ng mga nangungupahan ay nagbabahagi ng isang halimbawa ng database, ang diskarteng ito ay gumagawa ng epektibong paggamit ng mga mapagkukunan.
Pinapadali din nito ang pamamahala at pagpapanatili dahil mayroon lamang isang database na hahawakan.
Gayunpaman, maaari itong maging mas mahirap na i-deploy dahil ang schema ng bawat nangungupahan ay dapat na maingat na binuo at mapanatili upang matiyak ang sapat na paghihiwalay ng data. Ang pamamaraang ito ay perpekto para sa mga sitwasyon kung saan ang mga nangungupahan ay may maihahambing mga kaayusan ng data ngunit nangangailangan ng paghihiwalay ng data.
Nakabahaging Database, Nakabahaging Schema
Ang lahat ng mga nangungupahan sa modelong ito ay nagbabahagi ng isang database at isang solong schema sa loob ng database na iyon. Ito ang pinaka-mahusay na mapagkukunan na opsyon dahil nangangailangan lamang ito ng isang instance ng database at isang schema upang mangasiwa.
Gayunpaman, maaaring mahirap ang pagpapanatili ng sapat na data segregation sa mga nangungupahan. Ang pamamaraang ito ay angkop para sa mga sitwasyon kung saan ang mga nangungupahan ay may magkaparehong istruktura ng data at hindi nangangailangan ng kabuuang paghihiwalay ng data.
Iba't ibang Pagsasaalang-alang para sa Multi-tenancy
Paghihiwalay ng Data
Ang paghihiwalay ng data ay isa sa pinakamahalagang aspeto ng multi-tenancy.
Upang maiwasan ang hindi gustong pag-access, dapat panatilihing hiwalay at secure ang data ng bawat nangungupahan. Madalas itong nagagawa sa pamamagitan ng paggamit ng lohikal o pisikal na mga diskarte sa paghihiwalay tulad ng iba't ibang database, schema, o talahanayan.
Mahalagang tiyakin na ang data ay pinaghihiwalay upang mapangalagaan ang privacy at seguridad ng data ng bawat nangungupahan.
Onboarding ng Nangungupahan
Ang proseso ng pagpapakilala ng bagong nangungupahan sa isang multi-tenant system ay tinutukoy bilang onboarding ng nangungupahan. Ang pamamaraang ito ay dapat na maingat na pinamamahalaan upang matiyak na ang mga bagong umuupa ay maayos na nakasakay habang nagdudulot ng pinakamaliit na halaga ng pagkaantala sa mga kasalukuyang nangungupahan.
Binubuo ito ng pagbibigay ng mga bagong mapagkukunan, paglikha ng mga bagong account, at pag-configure sa kapaligiran ng nangungupahan.
Ang isang pinasimpleng pamamaraan sa onboarding ay maaaring makatulong upang mabawasan ang mga gastos at mapabuti ang kahusayan sa pamamahala ng nangungupahan.
pagganap
Ang multi-tenancy ay may potensyal na pababain ang pagganap ng system, lalo na kung ang mga nangungupahan ay nagbabahagi ng mga mapagkukunan tulad ng kapangyarihan sa pagpoproseso, memorya, o storage. Dahil sa malakas na epekto ng kapitbahay, ang mga aktibidad ng isang nangungupahan ay maaaring magkaroon ng epekto sa pagganap ng ibang mga nangungupahan.
Ang maingat na paglalaan at pagsubaybay ng mapagkukunan ay maaaring makatulong upang mabawasan ang problemang ito at magagarantiya na ang pagganap ng bawat nangungupahan ay hindi masasaktan.
Pag-customize
Ang kapasidad ng bawat nangungupahan na i-personalize ang kanilang kapaligiran upang tumugma sa kanilang mga hinihingi ay kilala bilang pag-customize. Bagama't maaaring pataasin ng pagpapasadya ang halaga ng isang multi-tenant system para sa bawat nangungupahan, maaari rin nitong itaas ang pagiging kumplikado at gastos ng administrasyon.
Makakatulong ang pagkamit ng balanse sa pagitan ng pag-customize at standardization sa pagtiyak na ang system ay nasusukat at napapanatili habang natutugunan pa rin ang mga partikular na pangangailangan ng bawat nangungupahan.
Mga halimbawa ng Multi-tenancy
Public Cloud Multi-tenancy
Gumagamit ang mga customer sa public cloud multi-tenancy ng mga pagkakataon ng mga mapagkukunan at serbisyo upang bumuo ng isang arkitektura na angkop para sa pagho-host ng isang application sa negosyo.
Ang bawat mapagkukunan ng ulap o serbisyo ay nagbabahagi ng pinagbabatayan na kapasidad ng hardware at network, at habang ang diskarteng ito ay maaaring magbigay sa mga mamimili ng mga nakalaang mapagkukunan, ito ay ang pagbubukod sa halip na ang panuntunan.
Upang makamit ang multi-tenancy, gumagamit ang mga pampublikong cloud provider ng hanay ng mga pamamaraan, kabilang ang VM-based at container-based na mga diskarte.
Hardware — VM at lalagyan
Maramihang mga virtual machine at virtual na lalagyan ay maaaring mabuo at ma-host sa isang server gamit ang virtualization ng hardware, na ang bawat VM ay nagpapatakbo ng isang hiwalay na application o serbisyo na pinamamahalaan ng ibang stakeholder, departamento, o kliyente.
Ang multi-tenancy ng hardware ay karaniwan sa modernong data center at colocation environment, at isa itong kritikal na enabler para sa lahat ng cloud computing.
SaaS multi-tenancy
Dahil ang mga provider ng software bilang isang serbisyo (SaaS) ay kadalasang ikinakategorya bilang mga provider ng cloud, isa itong bersyon ng public cloud multi-tenancy.
Halimbawa, ang isang provider ng SaaS ay maaaring magpatakbo ng isang instance ng programa nito sa isang instance ng isang database at magbigay ng online na access sa ilang mga kliyente. Sa kasong ito, ang data ng bawat nangungupahan ay nakahiwalay at hindi nakikita ng ibang mga nangungupahan.
Ang multi-tenancy ay maaari ding ipakilala sa mga multi-tier system tulad ng SAP.
Pribadong Cloud Multi-Tenancy
Multi-tenancy sa isang pribadong cloud. Ang isang pribadong ulap ay katulad ng isang pampublikong ulap sa mga tuntunin ng multi-tenancy, ngunit ang isang pribadong ulap ay nakatuon sa isang kumpanya o grupo, samantalang ang isang pampublikong ulap ay nagsisilbi sa mga pangangailangan ng maraming kliyente o organisasyon.
Multi-tenancy na walang server
Ang serverless computing ay isang cloud service na gumagamit ng mga event para i-load at patakbuhin ang code ng customer bago i-dismiss ang imprastraktura kapag ginawa ang code.
Maraming mga programa ang maaaring magbahagi ng parehong function, at ang function ay naglo-load at nagpapatakbo sa anumang nakabahaging imprastraktura ng hardware na magagamit.
Ano ang Mga Posibleng Kakulangan?
Ang isa sa mga pangunahing kawalan ay ang posibilidad ng mga pagtagas ng data. Dahil ang ilang mga nangungupahan ay nagbabahagi ng parehong imprastraktura, ang isang depekto sa seguridad sa isang aplikasyon ng isang nangungupahan ay maaaring ilagay sa panganib ang data ng lahat ng iba pang mga nangungupahan.
Ang isa pang disbentaha ay ang posibilidad ng maingay na epekto ng kapitbahay, kung saan ang mga gawi sa paggamit ng isang nangungupahan ay maaaring makabawas sa pagganap ng mga aplikasyon ng ibang nangungupahan.
Gayundin, ang mga pagbabago at pagsasama ay maaaring mahirap i-deploy, at ang ilang mga nangungupahan ay maaaring humiling ng mga natatanging setting o mga bersyon ng programa na hindi tugma sa iba pang mga nangungupahan.
Sa wakas, maaaring hindi angkop ang multi-tenancy para sa maraming application, lalo na sa mga nangangailangan ng mataas na antas ng bilis o mahigpit na paghihiwalay ng data.
Mga Direksyon sa Hinaharap para sa Multi-tenancy sa Cloud-based na Software
Ang hinaharap ng multi-tenancy ay mukhang maliwanag habang ang cloud-based na software ay patuloy na lumalawak at umaangkop. Ang serverless computing, na nagbibigay-daan para sa mas butil-butil na paglalaan at pagkonsumo ng mapagkukunan, ay lalong nagiging popular.
Ito ay may potensyal na pahusayin ang multi-tenancy sa pamamagitan ng pagbibigay-daan para sa higit na paghihiwalay at paggamit ng mapagkukunan. Ang mga microservice at container, na nagbibigay ng mas mataas na flexibility at modularity, ay isa pang ruta para sa multi-tenancy.
Higit pa rito, ang machine learning at artificial intelligence na teknolohiya ay may potensyal na i-optimize ang paglalaan ng mapagkukunan at pagganap sa mga multi-tenant system.
Sa wakas, ang hinaharap ng multi-tenancy sa cloud-based na software ay magbabago bilang resulta ng mga teknolohikal na pagpapabuti at pagbabago ng mga pangangailangan sa negosyo.
Mag-iwan ng Sagot