پیاده سازی Desktop/App in Browser

بحث Desktop/App as Service موضوعی نیست که جدیداً داغ شده باشد و مدتهاست جزو سرویس های پر استفاده بوده است. پیاده سازی آن اکنون با ابزارهایی مثل کانتینرها (مجازی سازی سطح سیستم عامل) بسیار راحت تر و ارزان شده است و هر کسی می تواند براحتی چنین سرویس هایی راه اندازی کند.با توجه به افزایش تعداد و تنوع نیازها و تهدیدها، در حال حاضر جزو سرویس های پرکاربرد و پرتقاضا است و ارایه آن در بستر وب و روی ابزار مرورگر وب که در انواع سیستم ها و حتی موبایل ها و تبلت ها وجود دارد یکی از بهترین روش هاست.برای مایی هم که متاسفانه در حوزه اینترنت از داخل و خارج تحریم هستیم داشتن یک دسکتاپ امن با IP تمیز غیر ایرانی روی یک دیتاسنتر معتبر در بعضی شرایط بسیار کارگشاست. این ور که یارو اصلاً نظرش این است از بیخ ببندد و همه دنیای ما خودش باشد، اونور هم اگر بفهمند ایرانی هستید و دستتون جایی بند نیست یا سرویس نمی دهند یا حقتون را می خورند.در مقاله ذیل ۲ مورد که توانا و راحت و در این زمان مشهور هستند را خدمتتان معرفی می کنم. هر دو مستندات کاملاً مکفی برای کسی که اینکاره باشد دارند.linuxserver.io (& webtop)روی linuxserver.io یکسری کانتینرهای خوب داکر هست که اپلیکیشن های آماده استفاده هستند و کافیه pull کنید و استفاده کنید. یکی از معروفترین هاش webtop است که به شما یک لینوکس دسکتاپ خوب روی مرورگر وب می دهد. روی معماری های x86-64 و arm64 (مثلاً Raspberry Pi) هم می توان استفاده کرد.مهمترین مزیت webtop سبک و ساده بودنش است.نسخه های لینوکسی که در حال حاضر موجود است بشرح ذیل هستند.خیلی راحت و سریع یا با خط فرمان docker یا با docker-compose یک کانتینر حاوی دسکتاپ انتخابی لینوکس بالا می آید و می توان از طریق مرورگر به آن دسترسی داشت و در صورت استفاده از volume میتوان دیتاهای روی آن را بصورت دائم ذخیره نمود. ابزارها و نرم افزارهای متداول روی آن هست و در صورت نیاز می توان چیزهای جدیدی نصب کرد و برای استفاده دسکتاپ روی مرورگر کاملاً مناسب است.فدورا و xfceاوبونتو و KDEنمونه دستور docker و docker file :در مستنداتش توضیح و مثال های خوبی دارد و من دیگه اینجا دستور و فایل را نمی زارم.از KasmVNC برای ارائه سیستم روی وب استفاده می کند که رابط وب نسبتاً خوبی ارایه می دهد. البته با Kasm Workspaces که در ادامه توضیح خواهم داد متفاوت است اما Kasm Workspaces هم از همین KasmVNC برای اتصال کاربر روی مرورگر استفاده می کند و شما خودتان هم میتوانید روی یک سروری نصب و استفاده کنید. مستندات KasmVNC اینجاست. یکسری آپشن مثل اعتبارسنجی و ... هم مثل هر کانتینری بصورت environment variables می توانید استفاده بفرمایید که در مستنداتش توضیح داده شده اند. خیلی کانتینرهای دیگر هم هست که لیستش را اینجا می توانید ببینید. مستنداتش هم اینجاست و کاستوم هم میتوانید بکنید و راجع به هر کانتینر هم در مستنداتش توضیح داده است، مثلاً توضیحات و مستندات مربوط به webtop اینجاست.Kasm Workspacesیکی دیگر از راه حل های راحت و متداول و البته توانا Kasm Workspaces است که راه حل به اصطلاح چیزی که می گوییم سازمانی تری هم هست. نصبش بسیار ساده است، قابلیت نصب بصورت single server یا multi server را دارد، امکاناتش بسیار کامل هستند و کار کردن با آن برای کاربر و مدیر سیستم اصطلاحاً smooth و غیرآزار دهنده است، امکاناتی که کاربر در کار با یک دسکتاپ ریموت ممکن است نیاز داشته باشد (مثل Webcam Pass-through) را بخوبی پشتیبانی می کند، برای کوروم و فایرفاکس extension هم دارد، بجز کانتینر می توان برای workspace یک سرور یا server pool یا لینک به یک workspace دیگر را هم استفاده کرد، پنل مدیریت آن کامل و تواناست، امکان تعریف کاربر و گروه را دارد، api دارد، روی معماری arm64 (مثلاً Raspberry Pi) هم اجرا می شود و امکان کاستوم کردن و استفاده از اتوماسیون بوسیله terraform و ansible را نیز دارد و ... (خیلی موارد و امکانات دیگر)و البته سیستم نسبتاً سنگینی است و مثل webtop سبک نیست و مدیریت و نگهداری آن هم دردسر بیشتری دارد.همچنین نسخه رایگان آن حداکثر ۵ session همزمان را پشتیبانی می کند.یکی از مهمترین مزایای Kasm Workspaces داشتن مستندات خوب و اکثراً به همراه ویدیو آموزشی می باشد، البته با توجه به اینکه فراگیر شده بجز مستندات خودش مقالات و ویدیوهای آموزشی متعددی هم درباره اش توسط کاربران منتشر شده است. مستنداتش اینجاست که حتماً ارزش یکبار مرور را دارد. (اینقدر ویدیو و توتوریال دارد و مستنداتش خوب است که نیازی به توضیح بیشتر من نیست.)همانطور که قبلاً عرض کردم خود KasmVNC هم به تنهایی بعنوان یک راه حل قابل توجه برای دسترسی از طریق مرورگر وب به سیستم ارزشمند است.جمع بندی :برای جمع بندی باید عرض کنم Kasm Workspaces امکانات و قابلیت های بیشتری دارد و پس از یک آموزش کوتاه مدیریت آن و ارائه سرویس به کاربران بدلیل پنل مدیریتی خوب نیاز به متخصص مجازی سازی ندارد، البته نگه داری فنی آن نیاز به حداقل یک ادمین لینوکس متوسط دارد. اینکه نسخه رایگان آن حداکثر ۵ سشن همزمان را پشتیبانی می کند را هم در نظر داشته باشید.در مورد webtop و کلاً کانتینرهای linuxserver.io، کمی دستی تر است، سبک و ساده است و برای کار شخصی یا تیمی که خیلی گسترده نمی شود و خودتان بالای سر سرور هستید راه حل خوبی است.در هر صورت اگر نیاز به ارایه دسکتاپ/اپ روی مرورگر کاربر دارید این ۲ راه حل در دسترس و راحت و رایگان هستند و یکی را می توانید انتخاب بفرمایید.