Cloudhosting, muziek- en videostreaming en berichtenservices zorgen ervoor dat alles binnen handbereik is. U kunt naar de gewenste programma's kijken, wanneer u maar wilt, naar uw favoriete muziek luisteren of uw vrienden een bericht sturen wanneer u maar wilt. De cloud maakt het gebruikers zoveel gemakkelijker. Maar ontwikkelen voor een cloudcentrische wereld kan een nachtmerrie zijn.
De grootste uitdaging is ervoor te zorgen dat data en apps 24 uur per dag on-demand beschikbaar zijn. Maar servertijd kost geld per uur. Laat u uw servers gewoon de hele tijd aanstaan? Wat gebeurt er als er een bug is in een deel van uw platform? En wat gebeurt er als je een nieuwe update moet doorvoeren?
Traditionele ontwerparchitecturen dwingen u om updates als complete builds te pushen. Het installeren van een update kan uren duren en dat betekent veel downtime voor gebruikers. Gecontaineriseerde microservices zijn een radicale, cloudvriendelijke manier om dit probleem op te lossen. Containers zijn in wezen zelfstandige processen en al hun afhankelijkheden zijn samen verpakt om uit te voeren. Alles wat een gecontaineriseerd proces nodig heeft om uit te voeren, bevindt zich in die container, waardoor het zeer draagbaar is.
Lezen: Tracking-systemen voor beste aanvragers voor kleine bedrijven
Hoe werkt containerisatie?
Hier is een gemakkelijke vergelijking. Beschouw uw cloudapplicatie als een schip en microservices in containers als meerdere luchtdichte schotcompartimenten. Als er maar één compartiment is, zal uw schip zinken als het onder water komt te staan. Maar als je meerdere compartimenten hebt, komt het goed met je schip, zelfs als een compartiment onder water komt te staan. Apps die zijn gebouwd met behulp van een microservice-architectuur kunnen tientallen of zelfs honderden gecontaineriseerde microservices hebben die samenwerken. Microservices kunnen unieke functies bieden (bijvoorbeeld alleen het berichtengedeelte van een socialmediaplatform). U kunt ook meerdere microservices hebben die redundante functies uitvoeren op meerdere servers voor taakverdeling.
In plaats van altijd één berichtenserver te hebben (door uw portemonnee te kauwen), kunt u de microservices voor berichten op meerdere servers laten draaien. Ze kunnen uw servergebruik vergroten of verkleinen op basis van de vraag naar die specifieke service. U hoeft dus 's nachts minder te gebruiken, zodat u minder vraag kunt stellen en geld kunt besparen. Maar u zou het gebruik tijdens piekuren kunnen opschalen.
Hoe containerisatie helpt
Containerisatie kan ook helpen om de uitvaltijd aanzienlijk te verminderen. Als uw app uit meerdere containers bestaat en er is een bug in een bepaalde service, blijft al het andere werken terwijl u het probleem oplost. Bovendien, wanneer u incrementele updates pusht, hoeft u niet hele servers uit te schakelen. U hoeft alleen individuele microservices bij te werken. Gebruikers merken misschien niet eens dat er downtime was.
Wat is Kubernetes?
Hier is een goede analogie van wat Kubernetes is. Maar in de praktijk kan het beheren en monitoren (orkestreren) van apps die zijn gebouwd met microservices ongelooflijk moeilijk zijn. U heeft een systeem nodig dat microservices dynamisch controleert en aanpast op honderden of duizenden servers. Gelukkig heeft Google een solide tool ontwikkeld door Kubernetes te maken. Het woord 'Kubernetes' betekent gouverneur in het Grieks, en dat is in wezen wat het is. Het is een platform waarmee u op microservices gebaseerde apps kunt controleren en beheren.
Kubernetes heeft echter zijn nadelen. Het heeft een zeer steile leercurve, hoewel het veel moeilijker zou zijn om je eigen orchestrator te bouwen. Bij de overgang naar een microservicemodel moeten ontwikkelaars ook de manier veranderen waarop ze naar code kijken. Ze moeten zelf een goed idee hebben van hoe het zal worden geschaald en hoe het zal worden geïmplementeerd, in plaats van het alleen aan de operaties over te laten. We hebben hier een samengestelde lijst met Kubernetes-alternatieven opgesteld als de op Google gebaseerde oplossing niet de juiste is voor u. Lees verder voor meer informatie.
Lezen: Beste boekhoudsoftware voor eigenaren van kleine bedrijven
Kubernetes-alternatieven
1. Docker-zwerm
Voor wie: gebruikers die een eenvoudig te configureren alternatief voor Kubernetes willen
Docker (het totale project, niet Swarm) was een pionier op het gebied van microservices in containers in 2013. Docker Swarm is het orkestratieplatform van Docker. Het heeft verschillende voordelen ten opzichte van Kubernetes. Om te beginnen, hoewel minder veelzijdig dan Kubernetes, is het extreem eenvoudig en eenvoudig te installeren dan Kubernetes. Docker Swarm gebruikt een CLI met GIT-achtige semantiek.
Deze bekendheid betekent dat ontwikkelaars Swarm gemakkelijk kunnen integreren in hun bestaande workflow. Ten tweede, Docker voor eenvoudiger handmatig schalen van services, vergeleken met het gebruik van de kubectl-functie in Kubernetes. Docker wint ook op het gebied van ondersteuning. Docker zelf biedt officiële bedrijfsondersteuning voor klanten van Docker Enterprise Edition (inclusief Swarm). Google biedt geen ondersteuning voor Kubernetes. Kubernetes is echter een open-sourceplatform, dus er zijn andere leveranciers. Ze bieden ondersteuning voor hun eigen releases.
Docker heeft ook nadelen. Logboekregistratie en monitoring zijn een belangrijk zwak punt. Hoewel Kubernetes ingebouwde monitoringtools heeft, vereist Docker Swarm dat je tools van derden gebruikt, zoals Sumo Logic en Retrace. Ook is de Docker Swarm-community een stuk kleiner dan de Kubernetes-community.
Lezen: Beste gratis software voor externe toegang voor freelancers en kleine bedrijven
Voordelen:
- Makkelijker in te stellen en te configureren dan Kubernetes
- Officiële ondersteuning voor de Enterprise-editie
Nadelen:
- Beperkte functionaliteit voor bewaking en logboekregistratie
- Kleinere community dan Kubernetes
Docker downloaden
2. DC / OS
Voor wie: gebruikers die in containers willen draaienen niet-gecontaineriseerde workloads op een gedistribueerd platform
DC / OS is de afkorting van Data Center Operating System. Het werkt op een hoger abstractieniveau dan Kubernetes. Kubernetes orkestreert alleen gecontaineriseerde microservices. U heeft nog steeds te maken met meerdere verschillende servers en meerdere bronnenpools. DC / OS abstraheert bronnen echter weg van de machines zelf. DC / OS kan het hele datacenter presenteren als een enkele gigantische pool van bronnen: petabytes aan opslag, terabytes aan RAM en duizenden CPU-cores.
Ontwikkelaars kunnen ervoor coderen alsof ze met één gigantisch systeem werken en de DC / OS-magie verdeelt de belasting op intelligente wijze over al uw servers. Dit betekent dat DC / OS ook kan worden gebruikt om de functie van niet-gecontaineriseerde workloads te verdelen. DC / OS heeft echter opmerkelijke nadelen.
Hoewel DC / OS open source is, is er een enterprise-editie met veel belangrijke functies die achter een betaalmuur voor abonnementen zijn vergrendeld. U moet betalen voor bepaalde functies die Kubernetes direct ondersteunt.
Voordelen:
- Hiermee kunt u zowel gecontaineriseerde als niet-gecontaineriseerde workloads uitvoeren
- Presenteert zichzelf als één verenigde resourcepool, waardoor de complexiteit voor ontwikkelaars wordt verminderd
Nadelen:
- Premiumfuncties zijn vergrendeld achter een betaalmuur
Download DC / OS
3. Nomad
Voor wie: gebruikers die een beperkte, maar gerichte orkestratieservice willen
Een van de grootste nadelen van grote orkestratiespelers zoals Kubernetes en Docker Swarm is dat zezocomplex. Ze zijn gebouwd met de vereisten van giganten als Spotify, die honderdenmiljoenenvan gebruikers per dag - in gedachten. Als uw app over duizenden servers moet worden geschaald en tientallen services aan miljoenen mensen moet worden geleverd, kunt unodig hebbendat niveau van complexiteit. Maar als u een kleine of middelgrote speler bent, zijn uw orkestratievereisten ook eenvoudiger.
Nomad doet zelf heel weinig. Hetenkel en alleenlaat je containerclusters beheren en plannen. In het geval van fouten of storingen, blijven uw containerclusters ook actief, maar dat is het dan ook. Elke andere functionaliteit die u nodig hebt, in termen van logboekregistratie, monitoring of netwerken, moet door andere tools worden afgehandeld. Als je nog meer vereisten hebt, is het eenvoudig om Nomad ook met andere tools te integreren. Hashicorp, de belangrijkste ontwikkelaar van Nomad, zorgt voor een nauwe integratie van Nomad met hun andere softwareproducten zoals Consul en Vault.
Nomad heeft echter ook enkele opmerkelijke nadelen. Om te beginnen, het isbeperkt en dat is een tweesnijdend zwaard. Als u geavanceerde netwerkbeleidsfuncties en ingebouwde monitoring nodig heeft, is Kubernetes de betere oplossing. Bovendien is Nomad een veel kleinere speler dan Kubernetes. Beide zijn open source-projecten die sterk afhankelijk zijn van input van de gemeenschap. Nomad heeft amper 10 procent zoveel Github-commits als Kubernetes. Dit betekent een algeheel langzamer ontwikkelingstempo en het oplossen van bugs.
Voordelen:
- Gemakkelijk te gebruiken in vergelijking met de andere genoemde opties
Nadelen:
- Beperkte reikwijdte en schaal maken het moeilijk om in echt grote projecten te implementeren
- Relatief kleine gemeenschap
Download Nomad
Afsluiten
Elk van deze orkestratieplatforms heeft zijn voor- en nadelen. Kubernetes zelf is de go-to-oplossing voor bedrijven die apps willen orkestreren die geschikt zijn voor miljoenen gebruikers. Vage documentatie, een steile leercurve en relatief slechte ondersteuning betekenen echter dat het niet voor iedereen is weggelegd.
Docker Swarm is een stuk eenvoudiger te configureren en te gebruiken, maar het heeft geen ingebouwde robuuste monitoring- of loggingtools. Met DC / OS kunt u meer doen dan alleen microservices in containers orkestreren, maar premiumfunctionaliteit is betaalmuur. En hoewel het belangrijkste hoogtepunt van Nomad zijn eenvoud is - waardoor het ideaal is voor kleinschalige projecten - maakt die eenvoud het minder dan ideaal voor grote ondernemingen.
Lezen: Beste gratis e-commerce website-bouwer voor kleine bedrijven