Soustřeďme se na aplikace: Platform as a Service (PaaS)

Soustřeďme se na aplikace: Platform as a Service (PaaS) | Encyklopedie cloudu ORBIT

K čemu slouží platformní služby aneb PaaS? Které jsou ty nejpoužívanější a proč je v cloudu používat?

Kamil Kovář

Editováno 30. 8. 2023

Zaznamenávám neustávající nárůst počtu virtuálních serverů, který překračuje počet zaměstnanců enterprise firem. Přičítám to jednak tendenci opouštět monolitické aplikace (no hurá!), jednak zvyšující se komplexnosti externích vazeb. Ta spousta nových serverů s vlastním operačním systémem a platformou, na které v důsledku nějaká aplikační část nebo mikroslužba běží, vytváří obrovský interní tlak na change management a související provozní a licenční náklady. Je nějaký důvod si myslet, že přechod do cloudu situaci zlepší?

Aplikační architektura je závislá na způsobu softwarového vývoje a balíčkování software. Dokud si nejsme schopni pomoci kontejnery, stále musíme přímo spravovat operační systémy a různé formy middleware – od databází po aplikační platformy nebo různé formy virtualizačních vrstev.

Automatizace ručních zásahů pro deployment, patching, hardening a pro změny konfigurace je od určitého objemu systémů naprostá nutnost. Ale orchestrace celého prostředí, kontrola a řešení výjimek znamená značnou zátěž. Zvyšuje se technický dluh, komplikuje se nasazení změn, snižuje se bezpečnost i dostupnost aplikací.

Jak se tedy vyhnout stejné situaci tisíců drobných change management ticketů ve veřejném cloudu, jak nejít z deště pod okap? Používejme prioritně platformní služby!

K čemu slouží Platform as a Service?

Jak popsal kolega Jakub Procházka v článku na téma IaaS, poskytovatelé veřejného cloudu rozlišují služby podle modelu sdílení zodpovědnosti. A právě platformní služby nás zbavují běžné operativy a zodpovědnosti za spodní vrstvy, které se přímo netýkají aplikací, o které tu přeci jde.

Typy cloudový služeb | Encyklopedie cloudu ORBIT
Typy cloudových služeb (docs.microsoft.com)

Cloudový poskytovatel řídí všechny části infrastruktury od datového úložiště a sítí přes virtualizace až po operační systém a runtime. Tedy middleware, framework a cokoli dalšího, co není přímo samotná zkompilovaná aplikační binárka, její konfigurace a její data. A právě to potřebujeme.

PaaS nám obecně poskytuje prostředí pro vývoj, deployment nebo běh aplikací (případně podpůrných skriptů), pro ukládání dat a jejich manipulaci nebo integraci. Hezky je to vidět na následujícím obrázku:

Výhody Platform as a Service | Encyklopedie cloudu ORBIT
Výhody PaaS (paradigmadigital.com)

Platform as a Service – přehled typických služeb

Pokusme se na několika příkladech vyjmenovat nejpoužívanější platformní služby a najít jejich zástupce u hlavních poskytovatelů veřejného cloudu.

Pro informaci – zkratek svázaných s PaaS (Platform as a Service) nalezneme více, ale nepokrývají asi vše, co se do skupiny řadí:

  • Database as a Service (DbaaS)
  • Functions as a Service (FaaS)
  • Analytics as a Service (AssS)
  • Security as a Service (SecaaS)

Primární službou je spravovaná platforma operačního systému nebo kontejnerů, která výrazně zjednodušuje obecný běh aplikací. Považujeme-li za standard cloudové aplikace Kubernetes řešení, které nám umožní provozovat skutečně nativně cloudové aplikace, sáhneme po Azure AKS nebo AWS EKS službě.

Existují i další služby nebo způsoby běhu kontejnerů, které mají větší nebo menší možnost konfigurovatelnosti, např. snadno provozovatelné Azure Container InstancesAmazon ECS.

Další v pořadí je připravené prostředí pro běh aplikací psaných na různých obecných framework jako .Net, Java, PHP apod. Typickými zástupci jsou Azure App Services či Azure App Service EnvironmentAWS Beanstalk poskytující kompletní řízený stack pro deployment, publikaci a běh aplikací.

Při integraci do deployment pipeline dostaneme flexibilní prostředí vhodné pro nejmenší interní aplikace, sandboxy stejně jako pro globální služby o distribuovaném výkonu, které bychom v on-premise prostředí jen velmi obtížně stavěli a spravovali.

S publikací aplikací souvisejí content delivery network služby zastoupené Azure CDNAmazon CloudFront. Umožňují masivní globální pokrytí webovou nebo mediální službou napříč kontinenty. Včetně pokrytí všech řešení cacheování, synchronizace a distribuce zátěže, které tato problematika přináší.

A to není vše…

Pak je tu ukládání dat, které lze vnímat ve více rovinách. Primárně je tu ukládání do prostoru typu blokové, objektové nebo blob storage, které v managed režimu mohou rovněž zapadat do platformních služeb. Obvykle na ně však nahlížíme jako na IaaS.

Nejčastěji zařazujeme do PaaS velké množství řízených databázových služeb. Ať už jde o služby nativní, vyvinuté na míru cloudovým službám přímo poskytovatelem AWS RDS či Azure SQL, nebo klasicky proprietární (Oracle) či open source (Postgres, Maria DB), případně no sql databází (Azure Cosmos, AWS DynamoDB).

Pro většinu běžného užití tyto platformy poskytují komfort, který nám umožňuje nemít specializovaný databázový tým. Neplatí to ale vždy a ve velkých projektech často DbaaS nesplňuje potřebné funkcionality. Z toho důvodu existují alternativy jako Azure SQL Managed Instances, které jsou téměř úplně kompatibilní s on-premise MSSQL serverem.

Při práci s cloudem se platí za data stahována z cloudu ven. Není však problém dostávat velký objem dat do cloudu a tam nechat probíhat obchodní analytiku nad daty sebranými z různých aplikací o zákaznících, provozu, výrobě apod. Oblíbenými platformami jsou MS Power BI nebo AWS QuickSight. Uplatní se v různých pricing modelech per uživatel nebo per kapacita, které umožňují dostat velký nástroj i pro menší užití, kde by stavba v on-premise stála významné a málo využívané zdroje.

To stále není vše…

Machine learning, Search services a AI service jsou moderní trendy. Hodí se tehdy, když sestavení kompletního prostředí například s OpenAI, potřebných datových skladů a ladění v on-premise může být časově náročné nebo nemožné oproti využití připravených a přednastavených služeb jako Azure Cognitive ServicesAmazon Sagemaker.

Další doplňkové, hojně využívané jsou služby pro výměnu správ a integrace, MaaS (Messaging as a Service) a fronty zpráv. Zástupci jsou Azure Service Bus či Amazon MQ pro service busové služby nebo Amazon SNSAzure Notification Hubs pro systém prostých notifikací mezi systémy.

V neposlední řadě k PaaS patří samozřejmě i populární a dobře zavedené Serverless, kterému věnujeme samostatný článek. Jmenujme alespoň názvy základních služeb hlavních poskytovatelů Azure FunctionAWS Lambda. Zde je infrastruktura a platforma kompletně abstrahována a uživatel služby se věnuje jen a pouze psaní a spouštění kódu.

Proč tedy používat Platform as a Service?

Kolik času jenom strávíme přípravou každého nového aplikačního, webového serveru, databázového serveru, … – často z důvodu sandboxingu či vyzkoušení funkcionality. Velmi často trávíme více času přípravou platformy a prostředí než samotným testováním. Platform as a Service ten planý čas minimalizuje a my se můžeme soustředit na samotnou práci se software a daty.

Výhody a nevýhody PaaS | Encyklopedie cloudu ORBIT

Dnes můžeme vybírat z rozsáhlé nabídky výborného obchodního a technického software, který je poskytován jako SaaS včetně potřebných integrací. Motorem byznysu ale jsou a budou aplikace psané na míru, přizpůsobené obchodnímu modelu dané organizace a poskytující unikátnost, a tedy market differentiator. Pro tuto, obvykle menší část aplikačního portfolia, pro kterou neexistuje SaaS alternativa, nemá smysl budovat náročné interní IT a udržovat jeho provoz. A právě zde mají své místo platformní služby PaaS.

O autorovi
Kamil Kovář
Kamil Kovář

Business Consultant | LinkedIn

Kamil je zkušený konzultant a projektový manažer v oblasti informačních technologií na různých pozicích a to v oborech IT a vertikálách financí, logistiky a telekomunikací.

Technické znalosti: Projektový management, business analýza, IT infrastruktura, SW development, cloudové služby