معماری Horizon
قسمت اول
- 20 خرداد |
- مهسا محمودی راد |
- مجازی سازی(Virtualization)

معماری Horizon
این مقاله یکی از مجموعههایی است که VMware Workspace ONE و VMware Horizon Reference Architecture را توضیح میدهد، که شامل architecture, design considerations و پیادهسازی Workspace ONE و Horizon میباشد و برایHorizon 8 and 7 کاربرد دارد.
مقدمه
VMware Horizon یک پلتفرم برای مدیریت و ارائه دسکتاپها و برنامههای مجازی یا میزبانی شده بهend users است. Horizon به شما اجازه میدهد تا به دسکتاپ مجازی ویندوز(Windows virtual desktops)، دسکتاپ مجازی لینوکس(Linux virtual desktops) ،Remote Desktop Server (RDS)–hosted applications و desktops, Linux-hosted applications و Windows physical machines، اتصالات ایجاد کنید. این مقاله از معماری مرجع، ملاحظات معماری و طراحی Horizon برای vSphere را پوشش میدهد و برای هر دو Horizon 8 و 7 اعمال میشود. Horizon میتواند به صورت on-premises یا سایر cloud platforms پشتیبانی شده و یا پیادهسازی شود. همچنین اطلاعات اساسی و رایج معماری برای پشتیبانی Horizon را پوشش میدهد و در تمام پلتفرمهای پشتیبانیشده قابل اجرا است. بخشهای مختلف این مقاله، additional design considerations را برای Horizon در پلتفرمهای cloud پشتیبانیشده، از جمله VMware Cloud در AWS، Azure VMware Solution و Google Cloud VMware Engine ارائه میدهند.
اگرچه Horizon Cloud همان منابع Horizon را ارائه میدهد، اما نسبت به آنچه در این فصل در مورد آن بحث میشود از معماری متفاوتی برخوردار است و به صورت بومی در Azure اجرا میشود. معماری Horizon Cloud در Microsoft Azure به طور جداگانه در بخش Horizon Cloud وMicrosoft Azure Architecture بررسی شده است.
- یک Deployment از Horizon، با پلتفرم VMware workspace One طراحی، توسعه یافته و هماهنگ شده است.
- این محیط به گونهای طراحی شده است که قابلیتScale ، با 8000 اتصالات همزمان کاربران را دارد.
- این استراتژی قابلیت design, deployment و integration به منظور validated and documented را دارا میباشد.
بررسی اجمالی معماری
اجزای اصلی Horizon شامل یک VMware Horizon Client است که به یک سرور جهت احراز هویت متصل میشود و اتصالات به دسکتاپها و برنامههای مجازی را برقرار میکند . سپس Horizon Client با Horizon Agent که برروی virtual desktop، سرور RDSH یاphysical machine در حال اجرا هستند یکSession برقرار میکند . پروتکل session را نیز میتوان به گونهای پیکربندی کرد که از طریق Tunnel به سرور متصل شود. اگرچه این موضوع به طور کلی توصیه نمیشود، زیرا session های در حال انجام را به Connection server وابسته میکند.

دسترسی خارجی شامل یک VMware Unified Access Gateway™ است که امنیت edge services را تأمین میکند . یک Horizon Client از طریق یک Unified Access Gateway به Connection Server احراز هویت میکند. سپس به منظور اجرای Horizon Agent که بر روی virtual desktop یا RDSH server در حال انجام است، Horizon Client از طریق gateway service روی Unified Access Gateway یک ارتباط برقرار میکند.
این فرآیند با جزئیات بیشتری درExternal Access توضیح داده شده است.

Components
شکل زیر بالاترین سطح معماری منطقی اجزای Horizon را نسبت به سایر اجزای آن نشان میدهد.

اجزا و ویژگی های Horizon به شرح زیر توضیح داده شده است.
Connection Server : کانکشن سرور Horizon به صورت امن کاربران را به Horizon Agent که برروی دسکتاپها و RDS Hosts نصب شده، متصل میکند. در این تجهیزات، authenticates ها از طریق Active Directory انجام میشود و درخواست را به منابع مناسب هدایت میکند.
Horizon Agent : یک Horizon Agent برروی guest OS یا سیستم عامل نصب شده است. این Agent باعث میشود که این ماشین از طریقConnection server مدیریت شود و همچنین باعث میشودHorizon Client با این ماشین protocol session برقرار کند.
Horizon Client : به منظور دسترسی به سیستم مدیریتی، یک Horizon Client بر روی Client Deviceها نصب شده است. همچنین برروی آنها Horizon Agent نصب شده است.
Unified Access Gateway : یک ابزار مجازی است که دسترسی از راه دور ایمن را از یک شبکه خارجی به انواع منابع داخلی، از جمله منابع مدیریت شده توسط Horizon امکانپذیر میکند. هنگامیکه دسترسی به منابع داخلی ایجاد میشود،Unified Access Gateway میتواند در داخل DMZ و internal network، Deploy شود. همچنین میتواند برای اتصال به resources سازمان شما، بهعنوان reverse proxy host عمل نماید.Unified Access Gateway درخواستهایی که احراز هویت شده است را به منابع مناسب هدایت میکند و هرگونه درخواست احراز هویت نشده را رد میکند. همچنین میتواند خودش احراز هویت را انجام دهد و در صورت فعال بودن، از یک additional layer برای احراز هویت استفاده کند.
Horizon Console : این وب اپلیکیشن بخشی از Connection Server است و به Administrator اجازه میدهد سرور را پیکربندی کنند، دسکتاپها را deploy و مدیریت کنند، احراز هویت کاربر را کنترل کنند، رویدادهای سیستم و کاربر را شروع و بررسی کنند و نیز پشتیبانیend user و فعالیتهای تحلیلی را انجام دهند.
تکنولوژی VMware Instant Clone(VMware Instant Clone Technology) : تکنولوژی VMware، مدیریت single-image را با قابلیتهای automation فراهم میکند و شما میتوانید به سرعتautomated pools یا farms of instant-clone desktops یا سرورهای RDSH را از یک VM image Golden ایجاد کنید. این فناوری، هزینههای Storage و desktop managementرا کاهش میدهد. این امر از طریق آپدیت آسان و patching تعداد زیادی image از golden image VM صورت میگیرد.
RDSH servers: مایکروسافت ویندوز سرور،published applications و session-based remote desktops را برای کاربران ارائه میدهند.
Enrollment Server: سروری که عملکرد True SSO را ارائه میکند و از اینکه کاربر میتواند بدون توجه به روش احراز هویت، در هنگام راهاندازی از Workspace ONE Access™یا از طریق Unified Access Gateway به یک منبع Horizon متصل شود، اطمینان دارد .
Horizon Cloud Connector: برای استفاده، به Horizon subscription licenses ، services و management features hosted در Horizon Control Plane نیازمند است. همچنین Horizon Cloud Connector یک ابزار مجازی است که یک Connection Server را در یک pod، با سرویس Horizon Cloud متصل میکند. برای خرید مجوز Horizon از https://customerconnect.vmware.com/ باید یک حساب فعالVMware Customer Connect داشته باشید.
vSphere: خانواده محصولات vSphere شامل VMware ESXi™ و VMware vCenter Server® است و برای ساخت و مدیریت زیرساختهای مجازی طراحی شده است. سیستم سرور vCenter عملکردهای اجرایی و عملیاتی کلیدی مانند تهیه، کلونینگ و VM management features را ارائه میدهد که برای VDI ضروری هستند.
از دیدگاه مرکز داده، برای ارائه خدمات مورد نظر، چندین مؤلفه و سرور باید برای ایجاد یک محیط کارآمد Horizon مستقر شوند.

علاوه بر اجزا و ویژگیهای اصلی، میتوان از محصولات دیگر در پیادهسازی Horizon برای بهبود و بهینهسازی راهحلهای ذیل را استفاده کرد:
- اولین ویژگی ، Workspace ONE Access است که enterprise single sign-on (SSO) و ایمنسازی و سادهسازی دسترسی بهapp ها را باincluded identity provider یا سازگازی با provider های موجود فراهم میکند و اپلیکیشنهای یک self-service catalog، conditional access controls، و SSO for SaaS، web، cloud، native mobile applicationsها را ارائه میدهد.
- دومین ویژگی App Volumes Manager این است که با مدیریت تخصیص volumes application (بستهها و حجمهای قابلنوشتن) به کاربران، گروهها و target computers، ارائه میدهد.
- سومین ویژگی Dynamic Environment Manager است که با گرفتن تنظیمات کاربر برای سیستم عامل و برنامهها، profile management را فراهم میکند.
- چهارمین ویژگی VMware vSAN™ storage است که با استفاده از flash-optimized یا hyper-converged storage، ذخیرهسازی با کارایی بالا، flash-optimized را برای ارائه یک server-attached flash ، با انعطاف بالا و بهینه ارائه میدهد.
- پنجمین ویژگی VMware NSX-T Data Center است که خدمات مبتنی بر شبکه مانند امنیت، شبکه مجازی، routing و switching را در یک پلتفرم ارائه میدهد. با micro-segmentation، میتوانید سیاستهای امنیتی در سطحApplication را بر اساس گروهبندیهای workloads انفرادی تنظیم کنید. همچنین میتوانید هر virtual desktop را از هم دسکتاپهای دیگر جدا کنید و همچنین از Horizon management servers محافظت کنید.
- ششمین ویژگی Database Servers است که Microsoft SQL servers یا PostgreSQL serversبرای میزبانی یک database event توسط Connection Servers مورد استفاده قرار میگیرد.
- توجه: VMware NSX-T Data Center به طور جداگانه از Horizon مجوز دارد.
مفهوم Pod and Block
یکی از مفاهیم کلیدی در طراحی محیط Horizon، استفاده از Pods و blocks است که به ما یک رویکرد قابل تکرار و مقیاسپذیر میدهد.
Pod از گروهی از سرورهای interconnected Connection تشکیل شده است که connections را به دسکتاپ یا برنامههای کاربردی متصل میکند.
- یک Pod میتواند تا ۲۰,۰۰۰ sessions (12,000 recommended), از جمله including desktop و RDSH sessions را فرا بگیرد.
- چند Pod را میتوان با استفاده از Horizon Universal Broker یاCloud Pod Architecture به هم متصل کرد.
- معماری ابری Pod میتواند حداکثر تا 2500000، sessionداشته باشد. برایSession بیشتر از آن، CPA های جداگانه میتوانندDeploy شوند.
یکPod بهBlock های متعددی تقسیم میشود تا scalability را فراهم کند. هرBlock از یک یا چند vSphere source clusters تشکیل شدهاست و هر Block، ویسنتر خود را دارد. تعداد ماشینهای مجازی (VM) که یک Block معمولاً میتواند میزبانی کند به نوع Horizon virtual machines مورد استفاده بستگی دارد.

برای افزودن منابع بیشتر، Block های بیشتر و همچنین additional Connection Server را اضافه میکنیم تا قابلیت session connections بیشتری را درPod داشته باشیم. بسته به نوع ماشینهای مجازی (instant clones, full clones, and if using App Volumes)، یک resource block میتواند میزبان تعداد متفاوتی از ماشینهای مجازی باشد (see Scalability and Availability).
به طور معمول ، ما چند resource blocks و حداکثر هفت Connection Servers در یک Pod داریم که قادر به میزبانی بیش از ۲۰,۰۰۰ Session است. برای دریافت تعداد بیشتر، Pod های بیشتری را deploy می کنیم.
همانطور که میبینید ، این رویکرد به ما اجازه میدهد تا یک Block را با قابلیت هزاران Session طراحی کنیم که از طریق آن میتوان برای ایجاد یک pod که قادر به مدیریت ۱۲۰۰۰Session باشد اقدام کرد. پس از آن میتوان از چندین Pod که با استفاده از Universal Broker یا Cloud Pod Architecture گروهبندی شدهاند، برای مقیاسبندی محیط به اندازهای که نیاز است، استفاده کرد . قابل ذکر است single pod و Connection Servers باید در یک data center واحد قرار داشته باشند و نمیتوان مکان آنها را تغییر داد.
- گزینههای مربوط به موقعیت تجهیزات مدیریتی مانند Connection server شامل موارد زیر میباشد.
- تجهیزات مدیریتی که در همانvSphere server ها است بعنوان Desktop وRDSH سرور به کاربران قرار سرویسدهی میدهد.
- vSphere cluster جداگانه، مطابق با پیشنهادات هر پلتفرمcloud (خاص) بر روی منابع cloud compute جداگانه راهاندازی میگردد.
- در محیطهای بزرگ، برای مقیاسپذیری و بهرهوری عملیاتی، معمولاً بهترین راه حل این است که یک cluster vSphere مجزا برای میزبانی management components داشته باشیم. این کار ماشینهای مجازی را که سرویسهایی مانند Connection Server، Unified Access Gateway، vCenter Server و پایگاههای داده را اجرا میکنند از ماشینهای مجازی دسکتاپ و RDSH Server جدا نگه میدارد.
در صورت تمایل میتوان تجهیزات مدیریتی را در همان cluster vSphere به عنوان منابع end user میزبانی کرد. هزینه ارائه میزبانهای اختصاصی برای مدیریت این معماری، در محیطهای کوچکتر یا جایی که از سختافزار converged استفاده میشود، بسیار زیاد است. اگر همه چیز را در یک Cluster vSphere قرار دهید، باید تنظیمات را برای اطمینان از اولویتبندی منابع برای اجزای مدیریت، پیکربندی کنید. در مورد سایز منابع (به عنوان مثال، دسکتاپهای مجازی) باید هزینههای بالا management servers را نیز در نظر بگیرد. به منبع vSphere مراجعه کنید.
Horizon Universal Broker
Horizon Universal Broker یک فناوری مبتنی بر Cloud است که برای مدیریت و تخصیص منابع مجازی از multi-cloud به end user استفاده میشود. همچنین این امکان را به کاربران میدهد تا با اتصال به fully qualified domain name (FQDN) که در پیکربندی Horizon Universal Broker تعریف شده است، به multi-cloud assignments در محیط شما دسترسی داشته باشند. از طریقHorizon Universal Broker FQDN، کاربران میتوانند به Horizon pod موجود در هر سایت دسترسی داشته باشند.

Universal Broker و multi cloud assignments با هم کار میکنند با این هدف که درک استفاده از end user را به یک منبع واحد بدهند و در عین حال پیچیدگی را در مورد resources کاهش میدهد. همچنین برای همة پلتفرمها و انواع ظرفیتها به یک شکل کار نمیکنند. برای اتصال Horizon pod جهت استفاده از Universal Broker، باید از Horizon Cloud Connector و license استفاده کنید. Horizon Cloud Connector یک ماشین مجازی است که سرویس Horizon را قادر میسازد تا با Horizon pod شما یکپارچه شود. برای Horizon 8 (و Horizon 7) یک Horizon Cloud Connector Pod مورد نیاز است که از خدمات Horizon و ویژگی های آن، که شامل Universal Broker است، استفاده خواهد کرد. همچنین به هنگام استفاده از subscription licensing، نیازمند Horizon Cloud Connector هستیم. همانطور که در Horizon Pods توضیح داده شده است، Universal Broker plug باید بر روی هر Connection Server در هر pods موجود نصب شود. پلاگین Universal Broker را بر رویConnection Server نصب کنید.

Cloud Pod Architecture
میتوانید از معماری CPA (Cloud Pod Architecture) بهعنوان جایگزینی برای Universal Broker، و زمانی که چندین Horizon pods در حال deploy هستند، استفاده کنید. این محیط اجازه میدهد تا چندین Horizon pods به یکدیگر متصل شوند و سپس global entitlements (GE) assignشود که شامل چندین pods است. Participating pods میتوانند در یک سایت فیزیکی لوکیشن یا در سایتها و لوکیشنهای مختلف قرار گیرند.
این ویژگی به شما این امکان را میدهد که به کاربران و گروهها یک global entitlementارائه دهید که میتواند شامل desktop pools یا RDSH published applications از چندین Pods مختلف باشد که اعضای این ساختار federation هستند.
شکل زیر یک نمای کلی منطقی از اجرای CPA اصلی دو سایت را نشان میدهد.

قابل ذکر است This type of deployment is not a stretched deployment هر pod متمایز است و همه Connection Servers به یک پاد خاص تعلق دارند و باید در یک مکان واحد قرار داشته باشند و از دید شبکه در همان broadcast domain اجرا میشوند.
این معماری علاوه بر اینکه میتواند desktop pool members یا published applications منتشر شود، میتواند Pods مختلف را در عناوین جهانی داشته باشد و ویژگیای به نام scope را امکانپذیر میکند. Scope به ما این امکان را میدهد که تعیین کنیم Session جدید میتواننددر scope قرار گیرند و همچنین به کاربران اجازه میدهد تا هنگام اتصال pod به session موجود (که در حالت disconnect هستند) متصل شوند.
در موارد زیر CPA میتواند در یک سایت استفاده شود:
- برای استفاده از حقوق جهانی (use global entitlements) که چندین منبعBlock و Pool را در بر میگیرد.
- برای یکپارچگی چندینPod در یک سایت هنگامی که مقیاس یا میزانش از capabilities های یک Pod بیشتر است.
ادامه مطلب را در معماری Horizon – قسمت دوم مشاهده بفرمایید.
