Bygg din egen PaaS – En miniversjon av Heroku
Har du noen gang tenkt på å konstruere din egen, lille Heroku?
Spennende, ikke sant? Det syns jeg også!
Platform as a Service (PaaS) er en skybasert tjeneste hvor leverandøren stiller en plattform til rådighet for utvikling og utrulling av applikasjoner. Utviklere drar ofte nytte av PaaS for å kunne fokusere på selve applikasjonsbyggingen, uten å måtte bruke tid på å skape en infrastruktur for utvikling og drift.
Storspillere som AWS, Azure og Google Cloud tilbyr utmerkede PaaS-løsninger. Men det er ikke alltid nødvendig å gå den veien. Mindre bedrifter kan ofte dra nytte av enkle PaaS-løsninger som kan drifte applikasjoner på en enkelt server eller noen få maskiner. Dette er både kostnadsbesparende og tidsbesparende, noe som igjen betyr besparelser.
Her er en oversikt over populær PaaS-programvare som du kan bruke til å lage din egen plattform for mindre applikasjoner.
Dokku
Høres dette ut som Heroku?
Det stemmer!
Dokku er en lettvekts, åpen kildekode-løsning som krever minst 1 GB minne, og som fungerer på CentOS, Ubuntu og Debian.
Dokku er i bunn og grunn en mini-Heroku, drevet av Docker og skrevet i Bash. Du kan laste opp applikasjonen din via Git; Dokku sørger for å bygge og kjøre applikasjonen din i isolerte beholdere.
Dokku tilbyr:
- Enkel utrulling via Git
- Utvidelser for ulike programmeringsspråk
- Mulighet for å tilpasse og utvide funksjonaliteten
- Enkle kommandoer for applikasjonsadministrasjon, brukerhåndtering og logging
- Mulighet for tilpassede kontroller for null nedetidsutrulling
Du kan installere Dokku på din egen server eller ta en snarvei med ett-klikks installasjon hos Kamatera, DigitalOcean eller Azure.
Jelastic – Lite Edition
Jelastic er en plattform som tilbyr en multi-sky DevOps PaaS-løsning for raskere utvikling, reduserte IT-kostnader, forbedret oppetid og økt sikkerhet. Lite-utgaven gir tilgang til de fleste funksjonene som finnes i bedriftsutgavene, men med noen begrensninger. Den er likevel svært effektiv for mindre applikasjoner og gir betydelige kostnadsbesparelser.
Denne lettvektsversjonen av Jelastic er et ypperlig alternativ for de med begrenset budsjett, og passer godt for oppstartsbedrifter, mindre e-handelsnettsteder, spillprosjekter, og lignende.
Jelastic Lite Edition inkluderer:
- Et dashboard for utviklere med alternativer for applikasjonsutrulling
- Støtte for containere og Kubernetes
- Automatisk vertikal og horisontal skalering
- Brannmur og tofaktorautentisering
- Integrerte verktøy for overvåkning og feilsøking
- API, CLI og SSH-tilgang for containeradministrasjon
Jelastic Lite Edition er kun tilgjengelig på Google Cloud og DigitalOcean.
Flynn
Flynn er en åpen kildekode-plattform som en tjeneste, designet for å kjøre alt som kan kjøres på Linux. Den tilbyr en plattform for utviklere og driftsansvarlige for å utvikle, distribuere og administrere programvare på en enkel måte. Flynn kan settes opp lokalt, på dedikert maskinvare eller hos en skyleverandør med få kommandoer.
Flynn tilbyr:
- Innebygde MySQL-, MongoDB- og PostgreSQL-databaser med høy tilgjengelighet
- Innebygd tjenesteoppdagelse for tilkobling av mikrotjenester
- Skalering etter behov, noe som reduserer kostnadene
- Mulighet for dedikert drift av Flynn-klyngen
Hephy Workflow
Hephy Workflow forenkler utrulling og administrasjon av applikasjoner på en Kubernetes-klynge. Den er en videreføring av Deis Workflow som startet i 2017. I 2018 avsluttet Deis-teamet arbeidet med prosjektet og gikk over til Microsoft Azure.
Hephy Workflow består av små, uavhengige tjenester som sammen utgjør en distribuert PaaS. Komponentene kjøres som tjenester på Kubernetes-klyngen. Det finnes to brukerklasser: vanlige brukere og administratorer.
Vanlige brukere har tilgang til funksjoner for utvikling og utrulling av applikasjoner. Administratorer har alle rettighetene til vanlige brukere i tillegg til eierskap til applikasjonene.
Funksjonene i Hephy Workflow inkluderer:
- Bildebygger for kompilering av kode fra Dockerfiler
- HTTP/HTTPS-ruting
- Applikasjonsfrigjøring og tilbakerulling
- REST API for CLI og integrasjoner
- Autentisering og autorisasjon for sikkerhet
CapRover
CapRover er en brukervennlig og helautomatisert applikasjonsplattform. Se på CapRover som en kraftigere og åpen kildekode-versjon av Heroku.
CapRover kan brukes til å drifte Node.js, PHP, Java, WordPress, MongoDB, MySQL, Nginx og mye mer.
Du kan komme i gang med CapRover på DigitalOcean ved hjelp av et ett-klikks oppsett.
CapRover tilbyr:
- Kommandolinjegrensesnitt for skripting og automatisering
- Web GUI for brukere til å visualisere applikasjonsaktivitet
- Lastbalansering med Nginx
- Gratis SSL-sertifikater fra Let’s Encrypt
- Containerisering og klynging med Docker Swarm
Tsuru
Tsuru er en lett, brukervennlig og åpen kildekode-plattform som en tjeneste. Hvis du har en Python-applikasjon som trenger en MongoDB-server, vil Tsuru sørge for å sette opp både applikasjonen og databasen samtidig, med applikasjonen kjørende inne i Docker-containere.
Tsuru gir deg flere plattformer å velge mellom. Og hvis du ikke er fornøyd med de eksisterende, kan du til og med lage din egen plattform på Tsuru.
Tsuru tilbyr:
- Dynamisk skalering av applikasjonen din
- Kjøring av applikasjonen i en distribuert arkitektur
- Støtte for applikasjoner skrevet i alle språk, ikke bare de som følger 12-faktor metoden
- Rask utrulling med ett enkelt Git-push
- Enkel integrasjon med IaaS som AWS EC2 og Apache Cloudstack
Piku
Piku er den minste Heroku/CloudFoundry-lignende plattformen. Piku er inspirert av Dokku og utruller applikasjoner via Git push til dine egne servere. Den fungerer i POSIX-miljøer som Linux, Windows-undersystemet for Linux, FreeBSD og Cygwin.
Piku tilbyr:
- En Heroku-lignende arbeidsflyt
- Funksjonell kodestil for enkel brukeropplevelse
- Støtte for applikasjoner skrevet i Go, Python, Closure (Java) og Node.js
- Bakoverkompatibilitet
- Støtte for 12-faktor applikasjoner
Konklusjon
Hva venter du på? Sett i gang og utforsk programvaren nevnt ovenfor for å bygge din egen PaaS-plattform. De fleste er åpen kildekode, så du kan enkelt anskaffe en skyserver og begynne å eksperimentere for å se hva som fungerer best for deg. Etter det anbefales det å lære Docker.