Efektivnější vývoj a provoz aplikací s PaaS
Platform as a Service se na stránkách cloudsvet.cz věnujeme docela často. Jejím smyslem je umožnit rychlý a efektivní vývoj a provoz aplikací. Nejdůležitější přínosy zahrnují:
- Zajištění konzistentního prostředí od vývojářského notebooku po produkční farmu přináší jistotu a spolehlivost v nasazování
- Automatická kompilace, zajištění návazností a vybudování Docker kontejneru dává předvídatelnost a rychlost
- V provozu nabízí PaaS funkce zajišťující vysokou dostupnost, balancing a dostatečný výkon například díky autoscalingu (počet nodů se průběžně mění podle zátěže), green/blue deployment (instalace nové verze za plného provozu té předchozí s transparentním přepnutím s možností rychlého rollback) nebo A/B testing (možnost v definovaném poměru provozovat starší i novou verzi aplikace pro ověření kvality)
- Podpora microservices přístupu pro dynamické a dobře škálovatelné aplikace
- PaaS se stane zásadní součástí vaší CI/CD pipeline pro agilní vývoj
- Správa připojení aplikací ke službám jako jsou databáze nebo message bus umožňuje popsat požadovaný stav a zabránit nepříjemným překvapením při nasazení v produkci
- Pokud chcete nabídnout svojí aplikaci jako SaaS, provozujte ji v PaaS – získáte škálu, jistotu, předvídatelnost a rychlost
- PaaS je živou učebnicí pravidel vývoje cloud-native aplikací (12factor.net), vede vývojáře správným směrem
Jaký je rozdíl mezi kontejnery a PaaS? Vlastně asi podobný jako mezi VM a IaaS. Kontejner stejně jako VM je virtualizační prostředek. Jejich vlastnosti jsou dost odlišné a způsob práce s nimi by měl být jiný, ale v obou případech je to technologie, prostředek. Pro pružnou, automatizovanou a přehlednou infrastrukturu je kromě správy VM potřeba ještě přemýšlet o blokové storage, objektové storage, obrazech disků, firewallech, sítích, routerech, VPNkách, load-balancerech, DNS atd. Teprve ovládáním všeho uvedeného vzniká skutečně automatizovaná infrastruktura – tedy IaaS. Kontejner je také jen prostředek. Má specifické vlastnosti už ne jen pro provoz infrastruktury, ale také pro aplikace a vývoj. Ale automatizovaný systém se všemi přínosy vznikne až, když ke kontejneru přidáte možnost automatického vytváření, kompilace, zajištění návazností, rozprostření v infrastruktuře včetně síťových propojení, balancing kontejnerů, autoscaling v návaznosti na zátěž, green/blue deployment, A/B testování atd.
PaaS od HPE používá Docker na vrstvě kontejnerů, Cloud Foundry pro řízení PaaS nad tím a někdy i OpenStack Trove a Cue pro další platformní služby jako Database as a service.
Doma nebo venku? Hlavně přenositelně!
Hlavním přínosem PaaS a kontejnerů má být přenositelnost. Od notebooku vývojáře po produkční cluster. Od privátního on-premise cloudu k veřejné službě. Řada veřejných cloud služeb nepoužívá standardní implementaci jako je OpenStack pro IaaS a Cloud Foundry pro PaaS. Fungují proprietárně, což znesnadňuje (v konečném důsledku při rozumných nákladech téměř vylučuje) přenositelnost. Na úrovni IaaS se to dá řešit velkou orchestrací, která přebalí všechno tak, aby to šlo (třeba s využitím HPE Cloud Service Automation) nebo existuje HPE Helion Eucalyptus (on-premise “klon” Amazonu). U PaaS je to podobné – aplikace napsaná v Azure PaaS nepoběží bez úprav v Google PaaS ani ve vašem on-premise Cloud Foundry.
Jak to řešit? V případě IaaS použijte “velkou” orchestraci a budujte svoje diskové obrazy automatizovaně. To vám dá možnost jednoduše zrekonstruovat VM v jiném prostředí (místo fyzického přesouvání, což je podstatně náročnější). Zaměřte se na základní OS image a zbytek dotahujte třeba Chefem, Puppetem, Ansiblem nebo Saltem. Nejen, že vám to zjednoduší práci s diskovými obrazy, ale umožní jej automatizovaným dokumentovaným způsobem znovu sestavit – jednou v Helion OpenStack u vás, podruhé v Amazonu, potřetí třeba na vašem fyzickém serveru.
A co s PaaS? Ta má obvykle přímo v sobě immutable infrastructure (tedy vychází třeba ze základního kontejneru a zbytek “dotahuje” v okamžiku jeho vzniku). Zdálo by se tedy, že tím je přenositelnost zajištěna. To skutečně platí v tom smyslu, že je úplně jedno, jestli to provozujete na fyzickém či virtuálním serveru, u sebe či někde venku, s KVM nebo vSphere. Nicméně musíte dodržet vlastnosti zvolené PaaS. Ta Googlu je jiná, než ta Azuru (obě jsou proprietární), než open source Cloud Foundry. Jaké je řešení? Nasaďte si jednu otevřenou open source PaaS (já doporučuji Cloud Foundry s Dockerem) na všechna místa, která vás zajímají. Umí běžet v OpenStacku, na vSphere, v Amazonu i Azuru. Pořiďte si PaaS vrstvu svojí – zajistíte si přenositelnost, zbavíte se lockinu.
Helion Development Platform 2.0
Pokud preferujete ze strategických (a jiných) důvodů provoz moderních aplikací u vás (on-premise) vyžijte výhodu synergie otevřené IaaS platformy OpenStack a PaaS s Cloud Foundry a Docker. Helion Development Platform je nadstavbou nad Helion OpenStack, kterou obohacuje o možnost získat databázi jako službu (ve verzi 2.0 vám umí na kliknutí vytvořit active/active MySQL Galera cluster, MongoDB, Redis nebo Vertica) či messaging as a service (v tuto chvíli RabbitMQ). Tyto řízené služby (přímo z Helion OpenStack můžete databáze vytvářet, zálohovat, replikovat apod.) pak namapujete na PaaS vrstvu, kterou představuje integrované Helion Stackato – komerční distribuce Cloud Foundry a Docker s přidanou hodnotou jakou je GUI nebo timeline (prostředek pro kolaboraci vývojářů). K tomu všemu je součástí Helion Code Engine, což je CI/CD nástroj integrující PaaS, Git versioning systém, Jenkins, automatizované unit testování a HPE StormRunner (výkonnostní testy).
Základem je tedy IaaS cloud Helion OpenStack 2.0, který licencujete podle počtu použitých fyzických serverů. Nadstavbu Helion Development Platform koupíte jako rozšíření nad tím (tedy pořídíte stejný počet licencí Development Platform licencí jako máte Helion OpenStack).
Helion Stackato
Třeba ale ještě ve vaší firmě IaaS není a o jeho nasazení se neuvažuje. Třeba máte jen klasickou virtualizaci jako je VMware. Nebo potřebujete vyvíjet aplikace tak, že celý PaaS cloud chcete rozběhnout na notebooku vývojáře, aby vzniklo unifikované prostředí od vývoje po produkci. Nebo možná uvažujete o nasazení aplikace ve veřejném cloudu, ale nechcete se navždy upsat k jednomu systému s problematickým přesouváním aplikace, pokud změníte názor. Třeba to je Amazon, Azure nebo nějaký lokální poskytovatel. Přizpůsobit svoje VM tak, aby běžely zcela konzistentně ve všech zmíněných scénářích je velmi obtížné. Ale napsat aplikaci s podporou Cloud Foundry a to přenést z notebooku do VMware, OpenStack, Amazon nebo Azuru rozhodně můžete. Pro takové nasazení doporučuji Helion Stackato. Jde o PaaS s CloudFoundry a Docker, kterou spustíte kdekoli a na čemkoli.
Protože Stackato běží kdekoli, je jeho licencování řešeno ne jako počet podkladových strojů, ale ani počet aplikací nebo kontejnerů. Platíte (v určitých krocích) za maximální využitelnou paměť RAM pro vaší PaaS, ať je kdekoli.
Vyzkoušejte si PaaS ve VirtualBox na svém notebooku, stačí si ji stáhnout: Helion store