RemoteApp Çözümü ve Faydalarını anlayabilmek için öncelikle RemoteAPP çözümü nedir bunu hatırlayalım.

RemoteApp Çözümü ile ilk olarak Windows Server 2008 Terminal Server ‘in bir yeniliği olarak hayatımıza girdi. Bu yenilik, eski ismi Terminal Server yeni ismi Remote Desktop Server hizmetlerinin daha verimli daha güvenli ve uygulamaların daha hızlı çalışmasına öncülük etti.

RemoteApp Çözümü ile son kullanıcılar, Remote Desktop Server üzerinde barınan her bir uygulamaya erişmek ve onları kullanmak için RDP aracını kullanmadılar.

RemoteAPP çözümü gerçekte arka tarafta RDP aracını kullanmakta ve aslında en temel gereksinimi de bu olsa da kullanıcılar bunu hissetmeden uygulamalara erişti.

Bu yenilik ile Remote Desktop Server üzerinde barınan bir uygulama çalıştırıldığı zaman, kullanıcıların hissetmiş olduğu deneyim sanki uygulamaların bağlantı yapılan cihaz üzerinde çalışıyormuş hissidir.

RemoteApp Çözümü , Windows Server 2008 Terminal Server yeniliği olsa da bu gün günümüz de kullanmış olduğumuz Windows Server 2019 Remote Desktop Server içinde kullanılmaya devam etmekte ve bu gün de Windows uygulamalarını herhangi bir cihaza güvenli ve hızlı bir şekilde teslim etmenin en kolay ve en hızlı yoludur.

RemoteApp Çözümü ‘nü kısa bir giriş ile hatırladık ve şimdi de RemoteApp Çözümü ve Faydaları ‘nelerdir, bunları aşağıda ki başlıklarda detaylandıralım.

1. RemoteApp Daha Verimli Sunucu Kaynakları

Microsoft RemoteApp çözümü bir uygulama yansıtma çözümüdür.  Şimdi biraz kafaları karıştıralım ama en sade şekli ile anlatmaya devam edelim.

RemoteApp çözümü Remote Desktop Server altında çalışan yeni bir özelliktir. Remote Desktop Server ‘da sanallaştırma türleri arasında Session Virtualization yani Oturum sanallaştırma sınıfında yer almakta ve doğal olarak da RemoteApp ‘da bir oturum sanallaştırma çözümüdür.

Fakat, RemoteAPP çözümünün getirmiş olduğu yenilikler ve sağlamış olduğu faydalar nedeniyle bu yeni teknolojiye uygulama yansıtma çözümü denilmesi yanlış olmayacaktır. Birisi çıkıp da RemoteAPP çözümü bir oturum sanallaştırma çözümüdür derse bu da doğrudur.

Microsoft RemoteApp çözümüne bir uygulama yansıtma çözümü dememde ki neden RemoteAPP hizmetinin Remote Desktop Server ‘a göre daha verimli sunucu kaynakları kullanmasıdır.

RemoteDesktop vs RemoteApp

RemoteDesktop vs RemoteApp

RemoteApp uygulama yansıtma çözümünden önce, her bir tekil kullanıcı Remote Desktop Server üzerinde tam masa üstü bağlantısı yapmakta ve bu tam masa üstü bağlantısı üzerinden uygulamaları çalıştırmaktaydı. Yani kullanıcının yerel bağlantı yapmış olduğu bilgisayarda ki masaüstüne ek olarak bir de uzak masa üstü oluyordu.

Bu özellik Remote Desktop Server mimarisinin geleneksel bağlantı yöntemidir ve günümüz şartları için çok uygun değildir.

RemoteApp çözümünden önce her bir uygulama için X sayıda bilgi işlem birimini her bir kullanıcı uzak masa üstüne Y sayıda bilgi işlem birimini de kullanacak olduğu uygulama için Remote Desktop Server üzerinde ayırıyorduk.

Çünkü RemoteApp çözümünden önce kullanıcılara uygulamayı yansıtamıyor kullanıcılara Remote Desktop Server üzerinden tam masa üstü erişimi veriyorduk ve kullanıcılar da Remote Desktop Server ‘a uzak masa üstü ile eriştikten sonra uygulamaları çalıştırıyorlardı.

Tek bir uygulama belki de çok az sunucu kaynağı kullanacakken mevcut mimari gereği tam masa üstü erişimi için çok fazla kaynağı kullanıyorduk.

Bu çalışma şekline Azure Monitor makale serisinde örnekler verdik.

Remote Desktop Farm izleme makale serisinde bahsetmiş olduğumuz iki başlık vardı. Bunlardan birincisi Azure Monitor ile Remote Desktop Sessions İzleme makalesiydi ve bu makalede Remote Desktop ortamında ki RDS Session ‘ların değerlerini izlemiştik.

Remote Desktop Sessions Monitoring

Remote Desktop Sessions Monitoring

Yukarıda paylaşılan RDS Session değerleri Remote Desktop Server Farm içinde bulunan Remote Desktop Server üzerinde ki kaynakların kullanım değerlerini göstermekte. Bu değerler, her bir kullanıcının çalıştırmış olduğu uygulama ve tam masaüstü erişiminde kullanılan kaynakların değerleridir.

Bu değerler kullanıcıların tam masa üstü erişimlerinde kullanmış oldukları Computing olarak bilinen Bellek, işlemci, ağ bağlantısı için tükettikleri değerlerdir.

Bir kullanıcı X uygulamasını verimli kullanabilmesi için Remote Desktop Server üzerinde X kadar uygulama kaynağı ayrılmakta ve bu ayrılan kaynaklara ek olarak da Y kadar tam masa üstü erişim kaynağı ayrılmaktaydı.

Toplam RDS Session değerinin 100 birim olduğunu varsayalım ve bu 100 birim kaynağı da 20 kullanıcı oturumunun oluşturduğunu hayal edelim.

RDS Processes

RDS Processes

Aynı makale serisinde RDS Processes ‘leri de izlemiştik. Bu RDS Processes ‘ler ise Remote Desktop Server üzerinde barınan uygulamalar yani kullanıcıların işlerini yapmış oldukları uygulamalardı.

  • Her bir tekil kullanıcı Nebim uygulaması için 1 birim kaynak kullanmakta ve toplam 20 kullanıcı için 20 birim kaynak Remote Desktop Server üzerinde Nebim uygulaması için ayrılmakta.
  • Her bir tekil kullanıcı internet tarayıcısı için 0,5 birim kaynak kullanmakta ve toplam 20 kullanıcı için 10 birim kaynak da Remote Desktop Server üzerinde internet tarayıcısının çalışması için ayrılmakta.

Yukarıda ki değerler referans alındığı zaman Nebim uygulamasının ve internet tarayıcısının kullanmış olduğu toplam kaynak 30 birim olarak hesaplanmakta.

RemoteApp çözümünden önce bizler 100 birim kaynağı Remote Desktop Server üzerinde öngörü ile ayırıyorduk ve bu ayırma işlemi de günümüz iş ihtiyaçlarına uygun çözüm sağlamıyordu. Fazladan ayrılan 70 birim kaynak uzak masaüstü erişimi için ayrılıyordu.

Özet ile kullanıcı sadece uygulamayı çalıştırmak istiyor (Nebim yada internet tarayıcısı) ama uygulamayı çalıştırmak için de tam masaüstü erişimi için kaynak tüketiliyordu. RemoteApp çözümlerinde tam masa üstü erişimi yapılmadığı için artık uzak masaüstü kaynaklarından tasarruf sağlanmıştır. Çünkü kullanılmıyor.

RemoteApp çözümüyle her bir uygulama Remote Desktop Server üzerinde sadece uygulama kaynağını tüketmektedir. Tam masa üstü erişiminin kullanmış olduğu uygulama dışında ki kaynaklar RemoteApp çözümlerinde kullanılmamaktadır.

2. RemoteApp Daha Güvenli Uzak Masaüstü Erişimi

RemoteApp uygulama yansıtma çözümünden önce, her bir tekil kullanıcı Remote Desktop Server üzerinde tam masa üstü bağlantısı yapmakta ve bu tam masa üstü bağlantısı ile Remote Desktop Server üzerinde uygulamaları çalıştırdığı gibi sunucu üzerinde ki hassas bilgilere de erişmekteydi.

Bir uzak kullanıcı, Remote Desktop Server ‘ a eriştiği zaman sunucu ismi, IP adresi, sahip olduğu kaynak bilgisi, ağ bağlantıları, ağ üzerinden erişilen kaynakar, veriler ve aklınıza gelebilecek bir çok hassas bilgiye erişebiliyordu.

Evet, Microsoft Remote Desktop server mimarisi daha doğrusu bütün Oturum Sanallaştırma çözümleri kendi içinde bir çok güvenlik açığına sahip ve bir çok probleme de gebe bir sanallaştırma çözümüdür. Bizler oturum sanallaştırma çözümlerini kullanırken bu güvenlik risklerini biliyor ve bunun için de ek olarak güvenlik sıkılaştırma çalışmalarını yapıyoruz.

RemoteApp çözümünden önce Terminal Server üzerinde Security Hardenning çalışmaları yapmakta ve bu sanallaştırma türünün sahip olduğu güvenlik açıklarını güvenlik sıkılaştırma çalışmaları ile kapatmaya çalışırdık.

Remote Desktop Host Group Policy

Remote Desktop Server Security Policy

Yapmış olduğumuz güvenlik sıkılaştırma çalışmaları genellikle Group Policy Objeleri ile yapılmakta ve son kullanıcı oturumlarında bir takım güvenlik politikalarında değişiklik yapardık.

Varsayılan değerde Remote Desktop Server üzerinde bir çok bileşeni gören kullanıcı bu güvenlik politikaları sonrasında bunları göremezdi. Bunlar nelerdi, Remote Desktop Server ‘in sahip olduğu isim, ip, sunucu hassas değerleri, ağ bilgileri en temel değerledi ve yapacak olduğumuz güvenlik sıkılaştırma çalışmalarına bağlı olarak çok daha fazlasıydı.

Zaten uzak oturumda çalışan son kullanıcı bu değerleri değiştiremiyor ve sadece görüyordu ama görmesi bile bir çok kuruluş için güvenlik riskine neden oluyordu. Bu güvenlik riskini ortadan kaldırmak için de Group Policy objelerinde değişiklik yapılmakta ve kullanıcı oturumunda sadece uygulamayı çalıştırması için arayüz hazırlamakta ve uygun izinler vermekteydik.

Group Policy ile güvenlik sıkılaştırma işlemleri bir kuruluşun güvenlik duruşunu belirleyen en temel güvenlik çalışmasıdır ve uygulanan güvenlik politikaları ile kuruluş, güvenlik duruşunu belirlemektedir.

3000 Bin üzerinde Group Policy objesi olduğunu unutmayalım ve Remote Desktop Server ‘in RemoteApp ‘den önce ki çalışma şeklini de hatırlayalım ve şu soruyu soralım.

“uzak masaüstü kullanıcısının sadece bir yada bir kaç uygulamayı çalıştırmasu için Remote Desktop Server üzerinde 300 ‘bin ‘e yakın güvenlik politikasını düzenlemek gereklimiydi?”

Cevap hayır olabilir ve Remote Desktop Server ‘in ismi, ip adresi 300 Bin ‘in sadece iki tanesi olup düzenlemediğiniz her bir güvenlik politikası da satın alacak olduğumuz bir riskti. Uygulamadığımız yada unutmuş olduğumuz her bir güvenlik politikası şirket için alınmış bir güvenlik riskidir.

Günün sonunda uygulamaları çalıştıracak olan son kullanıcı back ofis yada DMZ olarak bilinen arındırılmış bölgeye giriş yapmakta ve bu gölge içinde başka amaçlara hizmet veren sunucu ve servisler ile birlikte çalışmakta ve bizim de almadığımız her bir güvenlik önlemi de sunucu alt yapımızda güvenlik riski oluşturmaktaydı.

RemoteAPP ile uzak masaüstü kullanıcılarına sadece ama sadece uygulamalar yansıtıldığı için bildiğimiz yada bilmediğimiz binlerce güvenlik politikasını uygulamamıza ihtiyaç yoktur. Çünkü, RemoteAPP ile uzak masaüstü kullanıcıları sadece ama sadece uygulamalarına erişim yapmaktadır ve bu nedenle güvenlik tehtitlerini azaltmak için de RemoteAPP çözümü kullanılmalıdır…

3. RemoteApp Daha Verimli Uygulama Deneyimi

Windows Server 2008 ile RemoteApp uygulama yansıtma özelliğini kazandığımız gibi Desktop Themes özelliğini de kazandık. Bu yeni özellik ile Desktop Temaları grafik görünüm ayrıntılarını içermekte ve Remote Desktop Server’a bağlantı yapan kullanıcılara Windows Server ‘da değil de Windows Client işletim sisteminde çalışıyormuş hissi vermekteydi.

Windows Vista masaüstünün görünümü ve deneyimine sahip olmakta için Windows Server 2008 Remote Desktop Server üzerinde Windows Vista temasını etkinleştirmemiz gerekmekte. Windows Server 2012 ‘de Windows 7 ve Windows 8 temaları, Windows Server 2016 ve Windows Server 2019 ‘da ise Windows 10 Desktop Temalarını kullanırız.

Kullanmış olduğumuz bu hazır temalar sonrasında son kullanıcılara sanki uç nokta bilgisayarında çalışıyormuş hissi yaşamakta ama aynı zaman da performans problemlerine de zemin hazırlamakta. RDS sunucularına eklenen masaüstü temaları, Remote Desktop Server üzerinde artan grafik yükü, işlemci kullanımı ve artan bant genişliğine neden olmakta ve sunucu kaynak kullanımına etki etmektedir. Bu artış gösteren kaynak kullanımları bir çok durumda uygulamaların durmasına yada Carsh olmasına neden olmaktadır.

RDP Themes Bandwidth consumption

RDP Themes Bandwidth consumption

Yukarıda paylaşmış olduğumuz resimde, aynı uygulamaları ve işleri yapan kullanıcıların Remote Desktop Server üzerinde masaüstü tema etkinleştirilmiş ve masaüstü tema etkinleştirilmemiş durumda ki bant genişliği tüketimi (KBps olarak) görülmektedir. Uzak masa üstü kullanıcılarına uç nokta bilgisayarda çalışıyormuş hissi vermek hiç de kolay değildi.

Unutmayalım ve Remote Desktop Server mimarisini ve Oturum Sanallaştırma mimarisinin çalışma şeklini hatırlayalım. Bu sanallaştırma türünde Remote Desktop Server üzerinde eş zamanlı birden fazla kullanıcı oturumu barınmakta ve her bir oturum da ortak bir şekilde sunucu kaynaklarını kullanmaktadır. Bu çalışma şeklinin en bilinen kötü yanı bir kullanıcının yüksek çözünürlükte ki bir sunumu açtığı zaman word dökümanını okuyan kullanıcı çalışmasına etki etmektedir.

Remote Desktop Applications Carsh

Remote Desktop Applications Carsh

Azure Monitor ile Remote Desktop Site and Applications İzleme makalesinde Remote Desktop Sunucuları üzerinde çalıştırılan uygulamaların harcadıkları kaynakları izledik ve her bir uzak masaüstü kullanıcısının hangi uygulamayı kullanırken ne kadar kaynak tükettiğini tespit etmiştik.

Yukarıda ki ekran görüntüsü dikkatli incelendiği zaman Application Crashed bölümüde bulunmakta ve izleme panosunun çalıştırılmış olduğu dönemde problem yaşayan uygulamalar da görülmekte. Windows Server 2008 Terminal Server üzerinde özellikle Desktop Thema özelliği yapılandırıldığı zaman Application Crashed durumları çok yaşandı ve uzak kullanıcı çalışma verimliliğine etki etti.

Windows Server 2008 R2 ile birlikte Terminal Server ismi değişti ve Remote Desktop Server ismi ile yoluna devam etti. Bu günde bu isim kullanılmaktayız ve bu değişim ile birlikte Remote Desktop Server Desktop Composition özelliği de geldi. Nedir bu RDS Desktop Composition özelliği ?

Remote Desktop Server Desktop Composition

RDS Desktop Composition özelliği Remote Desktop üzerinde yapılandırılan Windows Vista temalarının ekranda görüntüleme şeklini temelden değiştirdi. Desktop Composition özelliği etkinleştirildiğinde görüntüler artık direk ekrana gelmiyordu. Kullanıcının Remote Desktop Server üzerinde çalıştırmış olduğu grafikler, yapmış olduğu çizim, hazırlamış olduğu sunum yada izlemiş olduğu bir görüntü video belleğinde işlenmekte sonra masaüstü görüntüsüne dönüştürülmekte ve son olarak da uzak oturum yapan kullanıcının ekranına sunulmaktaydı.

Windows Vista temaları ek sistem kaynakları ve bant genişliği istediği zaman Desktop Composition özelliği devreye giriyor ve özellikle yavaş bağlantılar üzerinden bağlantı performansını iyileştiriyordu. Bu özellik Remote Desktop Server üzerinde ki kaynak kullanımını dengeliyordu fakat bu sefer de Remote Desktop Server ‘a bağlantı yapan uç noktada ki kaynak kullanımını arttırıyordu.

Desktop Composition çalışma şekli, Windows Vista temalarının talep ettiği ek kaynak kullanımını da Remote Desktop Server üzerinden alıp Remote Desktop Client’a aktarmasıydı.

RDP Version and Desktop Composition

RDP Version and Desktop Composition

Windows Server 2008 R2 ile birlikte gelen bu yeni özelllik ise sadece RDP 6.1 ve üzerinde çalışan uç noktalar da geçerlidir. Yukarıda paylaşmış olduğum RDP Client sürümleri ve Desktop Composition özelliğini kullanan RDP 6.1 bandwith kullanım değerlerini görebilmektesiniz.

Bu makale eski değil. Makalenin yazılmış olduğu tarih 16 Kasım 2021 ve günümüz sunucu sistemleri Windows Server 2021 ve güncel RDP Client sürümü ise 10. Bu bilgileri aktarma nedenim Desktop Composition özelliği bu günde kullanılmakta ve bu özelliği devreye alabilmek için de aşağıda ki kayıt anahtarını eklemeniz yeterlidir.

Registry Hive HKEY_LOCAL_MACHINE
Registry Path SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Value Name fAllowDesktopCompositionOnServer
Value Type REG_DWORD
Enabled Value 1
Disabled Value 0

Bu geçmiş ama bu gün de güncel olan bu bilgileri RemoteApp konu başlığına bağlamamız gerekirse Desktop Composition özelliği RemoteApp özelliğinde çalışmamaktadır. Nedeni basit, RemoteApp çözümlerinde kullanıcılara tam bir masaüstü verilmediği için masaüstü özelliğinin sahip olduğu bir çok kaynak tüketimi RemoteApp kullanımında yoktur ve bu sebepten ötürü Desktop Composition özelliği RemoteApp çözümlerinde devre dışıdır.

Böylelikle Desktop Composition gibi eskiden gelmiş yeni bir özelliği güncel makalede neden paylaşmış olduğumuzu da yazmış olduk. RemoteApp çözümü ile kullanıcılar sadece uygulamalarına erişmekte ve onları çalıştırmaktadır. RemoteApp çözümlerinde zenginleştirilmiş masaüstü deneyimi sunulmamakta, Remote Desktop üzerinde çalışan uygulamalar son kullanıcı uç nokta cihazlarına yansıtılmaktadır. Tam masaüstü deneyiminde yaşamış olduğumuz yavaşlıklar ve uygulamaların crash olması ve güvenlik zaafiyatleri RemoteApp çözümlerinde bulunmamaktadır.