Zkusme si společně vytvořit vlastní PaaS (Platform as a Service) řešení.
Představte si, že si sami postavíte malou verzi Heroku. Zní to lákavě, že?
Jste nadšeni?
Já rozhodně ano!
PaaS je cloudová služba, kde poskytovatel nabízí platformu pro vývoj a nasazení aplikací. Vývojáři často využívají PaaS, aby se mohli plně soustředit na tvorbu samotné aplikace, namísto ztrácení času budováním platformy pro její běh.
Samozřejmě, giganti jako AWS, Azure nebo Google Cloud nabízejí skvělá PaaS řešení. Ale nemusíme s nimi vždy soupeřit. Pro menší firmy existuje spousta mini PaaS řešení, která dokáží bez problémů provozovat menší aplikace na jednom či několika serverech. Ušetří to nejen peníze, ale především čas, který se dá investovat smysluplněji.
Zde je seznam populárních PaaS řešení, se kterými si můžete postavit vlastní platformu pro provoz menších aplikací.
Dokku
Nepřipomíná vám to název Heroku?
Přesně tak!
Dokku je odlehčený open-source nástroj. Pro jeho běh stačí 1 GB RAM a operační systém CentOS, Ubuntu nebo Debian.
Dokku je vlastně takové mini Heroku, které běží na Dockeru a je naprogramováno v jazyce Bash. Svou aplikaci můžete jednoduše nasadit pomocí Gitu; Dokku ji sestaví a spustí v izolovaných kontejnerech.
Vlastnosti Dokku:
- Snadné nasazení pomocí Git.
- Pluginy pro mnoho programovacích jazyků.
- Možnost přidávat a upravovat funkce Dokku dle vašich potřeb.
- Intuitivní příkazy pro správu aplikací, uživatelů, logování a další.
- Možnost uživatelsky definovaných kontrol pro bezvýpadkové nasazování.
Dokku můžete nainstalovat na vlastní server, nebo ho spustit jedním kliknutím u poskytovatelů jako Kamatera, DigitalOcean nebo Azure.
Jelastic – Lite Edition
Jelastic je platforma nabízející multicloudové DevOps PaaS řešení, které urychluje vývoj, snižuje náklady na IT infrastrukturu, zlepšuje dostupnost a zabezpečení. Lite edice nabízí většinu funkcí plných verzí, ale s určitými omezeními. Je ale skvělá pro malé aplikace a šetří náklady.
Jelastic Lite Edition je ideální volba pro ty, kdo mají omezený rozpočet. Hodí se pro startupy, malé e-shopy, herní projekty, nebo menší webové aplikace.
Funkce Jelastic Lite Edition:
- Vývojářský dashboard pro nasazení aplikací.
- Podpora kontejnerů a Kubernetes.
- Automatické vertikální i horizontální škálování.
- Firewall a dvoufaktorová autentizace pro uživatele.
- Integrované nástroje pro monitorování a řešení problémů.
- Přístup k API, CLI a SSH pro správu kontejnerů.
Jelastic Lite Edition je dostupný pouze u Google Cloud a DigitalOcean.
Flynn
Flynn je open-source platforma jako služba, navržená pro provoz čehokoliv, co běží na Linuxu. Poskytuje vývojářům a provozním týmům nástroje pro snadný vývoj, nasazení a správu softwaru. Flynn můžete jednoduše nastavit lokálně, nebo jej nainstalovat na vyhrazený hardware či cloudového poskytovatele pomocí několika málo příkazů.
Vlastnosti Flynn:
- Integrované databáze MySQL, MongoDB a PostgreSQL s vysokou dostupností.
- Zabudované zjišťování služeb pro propojení všech mikroslužeb.
- Škálování dle potřeby pro úsporu nákladů na cloudové služby.
- Dostupný tým expertů pro provoz vašeho Flynn clusteru.
Hephy Workflow
Hephy Workflow usnadňuje nasazování a správu aplikací v Kubernetes clusteru. Je to fork projektu Deis Workflow, který byl spuštěn v roce 2017. V roce 2018 tým Deis Workflow přestal na projektu pracovat a přešel k projektům Microsoft Azure.
Hephy Workflow se skládá z malých a nezávislých služeb, které společně vytvářejí distribuovanou PaaS. Tyto komponenty jsou nasazeny jako služby v Kubernetes clusteru. Hephy Workflow má dvě úrovně uživatelů: běžné uživatele a administrátory.
Běžný uživatel může vyvíjet a nasazovat aplikace. Administrátor má navíc přístup vlastníka aplikace.
Funkce Hephy Workflow:
- Nástroj pro tvorbu imagí z dockerfiles a buildpacků.
- HTTP/HTTPS směrování na okrajích pro aplikace.
- Vydávání aplikací a možnost jejich vrácení do předešlého stavu.
- REST API pro CLI a další integrace.
- Autentizace a autorizace pro zabezpečení aplikací.
CapRover
CapRover je velmi snadno použitelná a plně automatizovaná platforma pro aplikace. Pokud znáte Heroku, můžete si CapRover představit jako jeho super nabitou open-source verzi.
CapRover můžete použít pro hosting Node.js, PHP, Java, WordPress, MongoDB, MySQL, Nginx a dalších technologií.
Můžete začít s CapRoverem na DigitalOcean pomocí instalace jedním kliknutím.
Vlastnosti CapRoveru:
- Rozhraní příkazového řádku pro skriptování a automatizaci.
- Webové GUI pro vizualizaci stavu vašich aplikací.
- Vyrovnávání zátěže pomocí Nginx.
- SSL certifikáty zdarma pomocí Let’s Encrypt.
- Kontejnerizace a clustering pomocí Docker Swarm.
Tsuru
Tsuru je lehká, snadno použitelná open-source platforma jako služba. Řekněme, že máte aplikaci v Pythonu, která potřebuje instanci MongoDB. Tsuru spojí aplikaci i databázi a spustí je souběžně v docker kontejnerech.
Tsuru vám dává na výběr z několika platformních možností. Pokud nejste spokojeni s existujícími, můžete si na Tsuru vytvořit vlastní platformu.
Vlastnosti Tsuru:
- Snadné dynamické škálování aplikace.
- Spouštění aplikací v distribuované architektuře pro optimální využití zdrojů.
- Podpora aplikací napsaných v libovolném jazyce. Dodržuje metodologii 12faktorových aplikací.
- Nasazení aplikace jednoduchým příkazem git push.
- Snadná integrace s IaaS platformami jako AWS EC2 a Apache Cloudstack.
Piku
Piku je nejmenší platforma jako služba podobná Heroku/CloudFoundry. Inspiruje se Dokku a nasazuje aplikace pomocí git push na vaše vlastní servery. Funguje v POSIX prostředích, jako je Linux, Windows Subsystem for Linux, FreeBSD a Cygwin.
Vlastnosti Piku:
- Podpora workflow podobného Heroku.
- Funkcionální styl kódování pro zjednodušení uživatelské zkušenosti.
- Podpora aplikací v Go, Python, Closure (Java) a Node.js.
- Zpětná kompatibilita kdekoliv je to možné.
- Podpora 12faktorové aplikace.
Závěr
Na co ještě čekáte? Vyzkoušejte některý z výše zmíněných nástrojů a vytvořte si vlastní PaaS. Většina z nich je open-source, takže si můžete pořídit cloudový server a začít si hrát, abyste zjistili, které řešení vám vyhovuje nejlépe.
A nezapomeňte se také naučit Docker.