Jak uživatelům nabízet aplikace? Moje preferovaná metoda nemusí být zrovna nejrychlejší na realizaci zejména pokud potřebujete rychlé řešení pro stovky aplikací. Azure Windows Virtual Desktop si poradí prakticky se vším - i tlustým klientem a Windows 7, pro které nabídne i výrazně prodlouženou security podporu až do ledna 2023.
Podívejme se nejprve jak vidím čtyři řešení modernizace aplikace. Ty první vyžadují nějaký čas na refactoring a nasazení není vždy triviální, ale otevírají maximální možnosti to dál rozvíjet. Pokud chcete aplikaci nejen rozumněji nabízet, ale odemknout si agilní vývoj a růst, je to ideální volba. Druhé dvě možnosti naopak nevyžadují žádné nebo jen malé změny do aplikace samotné a jsou tak rychlým řešením, zvládnete tak klidně stovky aplikací najednou. Technický dluh, který v nich ale máte, vám zůstane - nebude vás sice tolik brzdit v modernějším nasazení, ale asi vám neotevře agilitu vývoje a nasazování, automatické škálování či další krásné vlastnosti cloud-native světa.
Za mne nejlepší je, aby aplikace měla veškerou svou logiku ve formě API. V zásadě úplně všechno co aplikace dělá, je dostupné přes rozhranní, které je vlastně produktem. Samotná logika je implementována jako několik mikroslužeb a pro jednoduchost ověřování a zabezpečení je před nimi fasáda z API Managementu. K tomuto API jako základu pak existují obličeje (HTML 5 webová stránka, mobilní aplikace, Windows 10 appka, kiosek, chatbot) ale dnes už klidně i hlasy (interface pro hlasového asistenta). Řešení poběží v cloudu, bude využívat moderních metod ověřování (Open ID Connect s AAD) a je to.
Dobře, rozsekat si aplikaci na mikroslužby a postavit všechno na API může znamenat nějakou práci. Možná máte webovou aplikaci, která je poměrně monolitická, ale je schopná rozumného provozu, protože má nějakou backend část (.NET, Node.JS, Java, PHP) a v lepším případě HTML 5 klienta nebo serverem generovaný obsah. Něco takového se dá obvykle poměrně jednoduše hodit do PaaS řešení jako je Azure Application Services (WebApp) a platforma vám může pomoci elegantně vyřešit některé nedostatky stávající aplikace s poměrně malým zásahem do kódu (TLS zabezpečení, Open ID Connect autentizace, integrace na komunitní identitu typu Google či Facebook, aplikační monitoring, auto-škálování výkonu, jednoduchost nasazování).
Tak máte zakázáno na aplikaci jakkoli sáhnout, ale je to webové? Jak ji bezpečně vystavit pro vzdálený přístup odkudkoli, nasadit TLS a ověřování vůči firemnímu AAD včetně podpory věcí typu více-faktorové ověřování? VM s aplikací můžeme vzít a s pomocí Azure Migrate přestěhovat do Azure tak jak je nebo ji i dokonce nechat běžet v on-premises. Stačí k ní nainstalovat kousek software a využít AAD App Proxy. Ta z vašeho VM vytočí šifrovaný tunel do brány v Azure (takže dovnitř do VM nemusíte žádný port otevírat), která ji vystaví v Internetu a zařídí její zabezpečení jako je šifrování, DDoS ochrany a ověření přes AAD včetně toho více-faktorového.
Máte “tlusťocha”, tedy tlustou aplikaci (“exáč”) a řešíte co s ní? Je obtížné zajistit její distribuci a správnou konfiguraci na klientech? Možná potřebujete, aby ji uživatel mohl používat i doma nebo na cestách, ale ona potřebuje přímý přístup do databáze, kterou nechcete vystavit do Internetu. Nebo máte uživatele, kteří k aplikaci potřebují chodit z Linuxu, Androidu, Mac, iPadu nebo Chromebooku? A co když potřebujete přistupovat k aplikaci z počítače, který nemáte ve správě (domácí zařízení, sdílený počítač ve škole)? Nebo je vaše aplikace sice webová, ale funguje jen s nějakým velmi starým prohlížečem? Na tyto scénáře je tady Windows Virtual Desktop v Azure.
Microsoft v preview přichází s platformní službou v Azure, díky které můžete provozovat buď celé desktopové prostředí (“vzdálenou plochu”) nebo přenášet konkrétní tlustou aplikaci (Remote App). V čem je to jiné oproti tomu co znáte, jako je například RDS gateway a tradiční řešení Microsoftu?
Vypadá to dobře. V příštím díle si vyzkoušíme celé řešení prakticky.