Docker container hosting
Draait je applicatie in een Docker-container? AllesLinux.com heeft in samenwerking met Cloudlets een containerplatform ontwikkeld waarmee je eenvoudig je Docker container online zet. Ons container platform is high-available, biedt een grafische interface en geeft je de mogelijkheid om je eigen Docker registry te koppelen.
Om te bepalen welk pakket passend is, bepaal je hoeveel projecten je wilt draaien, hoeveel containers er in je projecten zullen draaien en hoeveel persistent storage je nodig hebt. Advies nodig? Vul dan het formulier onder aan deze pagina in. Wij helpen je graag!
- Eenvoudig je containers uitrollen
- High-available & Schaalbaar
- Ci/CD-integratie met Github, Gitlab en Jenkins
Shared Docker platform
Instap
- 1 Project
- 5 Containers
- 1 CPU core
- 1 GB geheugen
- 1 GB SSD opslagruimte
Basis
- 3 Projecten
- 15 containers
- 2 CPU cores
- 2 GB geheugen
- 10 GB SSD opslagruimte
Standaard
- 5 Projecten
- 45 Containers
- 4 CPU cores
- 8GB geheugen
- 30GB SSD opslagruimte
Premium
- Onbeperkt aantal projecten
- Onbeperkt aantal containers
- 6 CPU cores / 16GB geheugen
- 100GB SSD opslagruimte
- Support via mail & telefoon
Vrijblijvend proberen? Altijd kosteloos annuleren binnen 30 dagen!
Docker
In korte tijd is Docker razendpopulair geworden en dat is ook best logisch als je ziet welke voordelen Docker biedt: Met Docker maak je eenvoudig een kleine, zelfstandige omgeving die alleen de Linux-kernel en de noodzakelijke libraries en software bevat die je applicatie nodig heeft om te draaien. Deze omgeving noem je een container. De belangrijkste voordelen van werken met containers:
- Platform-onafhankelijk: je Docker-container kan op een breed scala aan platformen en Cloud-omgevingen draaien. Het wordt daardoor eenvoudig om je applicatie van de ene naar de andere omgeving te verplaatsen. In de traditionele situatie is het migreren van je applicatie vaak tijdrovend en complex
- Resource-efficient: Een fysieke of virtuele server heeft een bepaalde hoeveelheid geheugen en cpu die niet zonder downtime aangepast kan worden. Daarnaast zijn die resources doorgaans het grootste deel van de tijd niets aan het doen, terwijl je er wel voor betaalt. Het is veel efficienter om alleen die hoeveelheid geheugen en cpu te reserveren die de applicatie in je container daadwerkelijk nodig heeft. Als je je containers op een container orchestration tool zoals Kubernetes draait, dan is dat eenvoudig mogelijk. Er zijn situaties waarbij de inzet van containers het budget voor IT-infrastructuur met 80% terugbrengt. Zie onder andere het praktijkvoorbeeld van de Financial Times.
- Sneller applicaties ontwikkelen: Met Docker richten ontwikkelaars eenvoudig hun OTAP-straat (Ontwikkel – Test – Acceptatie – Productie) in. Je kunt geautomatiseerd voor iedere fase in het ontwikkelproces een Docker-container draaien die de laatste versie van de applicatiecode bevat. Je bent geen tijd meer kwijt door configuratieverschillen in de verschillende omgevingen en iedere ontwikkelaar heeft lokaal dezelfde ontwikkelomgeving. Als kers op de taart kan je de laatste versie van je (web-)applicatie online zetten zonder downtime.
Inhoudsopgave
Wat is Docker?
Docker biedt een verregaande vorm van virtualisatie. Het stelt je in staat om applicaties te draaien zonder dat je afhankelijk bent van de onderliggende servers en softwareversies zoals je dat waarschijnlijk gewend bent. Met Docker kan je geïsoleerde omgevingen of containers aanmaken waarin je je programma kunt draaien. Dit betekent dus dat je je programma niet direct op Linux installeert, maar dat je een afgesloten omgeving creeert op je Linux-server waarin je je software kunt draaien.
Voorbeeld: als je nog niet eerder met Docker hebt gewerkt, dan klinkt alle uitleg misschien erg abstract. Een concreet voorbeeld: Dankzij Docker kan je meerdere containers opzetten waarbij de ene container MySQL 5.6 draait, de andere MySQL5.7 en de derde PostgreSQL. Het is niet logisch om deze drie systemen op eenzelfde Linux-installatie te draaien, maar dankzij de containertechniek kan dat erg snel en probleemloos gerealiseerd worden, zonder dat het veel geheugen en rekenkracht van je systeem vraagt.
Docker kan gezien worden als een verregaande vorm van virtualisatie of als virtualisatie op applicatie-niveau. Dit past in lijn van de ontwikkelingen die we in de hostingwereld hebben gezien: waar in het verleden met fysieke / dedicated servers werd gewerkt, maakte de techniek het mogelijk om een fysieke server softwarematig te verdelen in virtuele servers met elk een eigen besturingssysteem en een eigen resources (schijfruimte, geheugen, cpu). Door met containers te werken, is het nu mogelijk om binnen een besturingssysteem geisoleerde ruimtes te creeeren waarin software draait, onafhankelijk van andere softwarepakketten en onafhankelijk van het onderliggende besturingssysteem. Het grote voordeel is dus dat je niet voor iedere specifieke applicatie een eigen (virtuele) server hoeft op te zetten. Dat scheelt veel overhead, waardoor op dezelfde server ineens veel meer kan draaien.
Hoe werkt Docker?
Images & Containers
Twee begrippen die voortdurend terugkomen bij Docker zijn image en container. Wil je een applicatie draaien? Dan kan dat in een container, d.w.z. een geïsoleerde omgeving. Maar hoe maak je die container? De container maak je op basis van een image. Je image bevat alle software en eventueel noodzakelijke libraries om je applicatie goed te kunnen draaien. Wil je je applicatie daadwerkelijk starten, dan zal je een container op basis van een image moeten starten. Met een lege container kan je immers niets.
Voor steeds meer software is een image beschikbaar. Dit image bevat alleen het specifieke softwarepakket dat je wilt draaien, aangevuld met de direct ondersteunende software die nodig is om het programma te draaien. Een container met WordPress, zal dus ook een webserver en databaseserver bevatten of zal een tweede verbonden container vereisen waarin database en/of webserver draaien, omdat WordPress anders niet zou kunnen functioneren.
Het grote voordeel van docker is dat je eenvoudig nieuwe applicaties kunt uitrollen op basis van een image. Je hoeft een image maar één keer te maken, dus dat scheelt enorm in tijd. Je hoeft dus ook maar eenmalig de hele installatie en configuratie van je toepassing te verzorgen. Heb je veranderingen aangebracht aan je image en wil je deze wijzigingen doorvoeren in alle bestaande containers die je applicatie draaien? Als je ervoor kiest om de gebruiksdata van de applicatie buiten de container op te slaan, kan je de container gewoon opnieuw opstarten op basis van je nieuwe image.
Public & Private Repositories
Je kunt natuurlijk de images die je wilt gebruiken om je containers mee te draaien zelf maken, maar er is ook een enorm aanbod van bestaande images die beschikbaar zijn gesteld door anderen. Niet alleen ontwikkelaars die bestaande software naar een image omzetten, maar ook softwareleveranciers zelf maken hun software steeds vaker beschikbaar voor Docker. Het is de moeite waard om te kijken of de bestaande images voldoen aan je wensen. Uiteraard kan je een bestaand image ook aanpassen, bijvoorbeeld omdat je je applicatie net iets anders geconfigureerd wilt hebben.
Public repositories:
Er zijn een aantal serieuze partijen die een repository aanbieden voor algemeen gebruik:
hub.docker.com: Officiele public repository.
Private repositories:
Heb je zelf een image gemaakt, of heb je al eens een image gedownload om een container mee te draaien? Deze images worden op je computer/server opgeslagen en vormen je private repository. Wil je een nieuwe container draaien waarvan het image al in je bezit is? dan pakt Docker deze versie in plaats van dat een nieuw image gedownload wordt. Dat komt de snelheid ten goede. Met de docker registry kan je je eigen repository eenvoudig en overzichtelijk beheren.Voor meer informatie hierover zie https://docs.docker.com/registry/
Docker voor ontwikkelaars
Software ontwikkelaars kunnen met Docker een enorme efficiency-slag slaan. Het echte programmeerwerk zal niet veranderen, maar het proces kan verder gestroomlijnd worden. Het uitrollen van nieuwe releases en het testen op een breed scala aan platformen kan met één druk op de knop. Door je Github-repository en Jenkins kan het development proces grotendeels geautomatiseerd worden.
De term continuous integration hoor je steeds vaker in de development-wereld: het gebeurt steeds meer dat developers aan hetzelfde project werken en er belang bij hebben direct alle wijzigingen van de collega’s te zien. Waar developers voor het Docker-tijdperk vaak een lokale development-omgeving van hun project hadden draaien, is het met Docker in combinatie met Jenkins en Github eenvoudig om te realiseren dat alle developers in een team gezamenlijk aan een live-kopie van een project kunnen werken én direct het resultaat van iedere code-wijziging kunnen zien.
Een interessant artikel met praktische instructies en tips voor het inrichten van een perfecte Continuous Integration omgeving vind je hier.
Docker voor systeembeheerders en hosters
Ook voor systeembeheerders en hosting providers zal Docker een enorme verandering teweeg brengen. Het traditionele concept van hosting verdwijnt. Een geïsoleerde omgeving waarbinnen alleen jouw app draait zal de nieuwe definitie van hosting worden.
De vraag of je hosting op een eigen server of op een shared server nodig hebt, is niet meer relevant. Er is niet meer een server die beheert moet worden. Iedere container draait één proces (webserver, cachingserver, database, etc), binnen de vooraf gedefinieerde kaders. De belangrijkste taak van de hostingprovider of systeembeheerder verschuift daarmee naar het onderhoud van de onderliggende infrastructuur. Daarmee wordt de taak beperkter: het softwarematige beheer van een server wordt een stuk eenvoudiger. Het is mogelijk om een minimale
server of VPS af te nemen en daar docker op te installeren, maar verstandiger is het om te kiezen voor een platform zoals Kubernetes, waarmee je je containergebaseerde infrastructuur kunt beheren. Een partij waar wij goede ervaringen mee hebben als het gaat om het aanbieden van containeroplossingen is Cloudlets. Een Nederlandse partij die graag de tijd neemt om je op weg te helpen met de laatste ontwikkelingen op dit gebied.