Virtualisatie strategie voor ontwikkelaar

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
Probleemstelling
In mijn huidige werkzaamheden als Java developer wil ik mijn kennis graag verbreden. Ik wil thuis een ontwikkelstraat optuigen en experimenteren met nieuwe technologieën.
Aangezien mijn eigen laptop nogal gedateerd is en ik de laptop van mijn werkgever niet voor dergelijke doeleinden kan inzetten speel ik met de gedachte om met virtualisatie aan de slag te gaan.

Mijn idee was om bijvoorbeeld virtuele machines te maken met b.v. Jenkins, Sonatype, Nexus, etc. Dit zou de basis zijn van mijn thuis-ontwikkelstraat. Uiteraard zou er een een virtuele desktop moeten komen met daarin mijn IDE.

Als ik dan iets nieuws wil proberen met bijvoorbeeld App ontwikkeling voor Android of een nieuwe versie van bepaalde tooling of wellicht een webserver toevoegen dan zou ik daar een nieuwe virtual machine voor maken. Daarmee kan ik dan experimenteren zonder dingen onherstelbaar stuk te maken en evt. makkelijk een backup terugplaatsen etc.
...

Relevante software en hardware die ik gebruik
Mijn laptop is inmiddels nogal gedateerd dus ik overweeg om nieuwe hardware aan te schaffen. Ik weet alleen niet of ik dan ga kiezen voor een capabele laptop of juist een server met virtualisatie-software waar alles op draait.
De software die ik draai is Linux als besturingssysteem en diverse tooling voor software ontwikkeling.
...

Wat ik al gevonden of geprobeerd heb
Ik heb ervaring met Virtualbox. Dit is voornamelijk desktop virtualisatie en zou ik hier wellicht voor kunnen inzetten, maar dan draai ik alle virtuele machines vanuit het host OS van mijn laptop.
Andere virtualisatie opties heb ik opgezocht, zoals Xen, VMWare en XCP-ng. Ik heb geen ervaring met het optuigen van deze opties, maar ik heb wel ervaring met Citrix als gebruiker van virtuele machines. Eigenlijk zou ik thuis ook wel op zo'n manier willen werken.
...

Vraag
Wat is voor mijn doelstelling de beste virtualisatie strategie?
  1. Een dikke laptop kopen en alles met Virtualbox vanaf mijn laptop draaien?
  2. Een (headless) server optuigen en met iets zoals XCP-ng aan de slag, zodat ik met een oude laptop of simpele thin-client toe kan?
  3. Anders, namelijk ...
Aanvullende criteria zijn dat mijn voorkeur uit gaat naar Linux en open source oplossingen. Ook heb ik slechts een bescheiden budget dus een kosteneffectieve oplossing zou ik helemaal prettig vinden.


Toevoeging aan deze post gedaan op 2020/07/25
Er zijn nog een aantal overwegingen die ik initieel niet had genoemd.

Ik zou graag ook de mogelijkheid hebben om met operating systems te variëren. Sommige software is verbonden met een specifiek operating system. Het zou heel goed kunnen dat ik bijvoorbeeld mijn ontwikkel werkzaamheden in een andere omgeving zou willen doen dan mijn huis tuin en keuken webbrowsen, administratie, email, etc. Ook vind ik de mogelijkheid om te variëren handig om te kijken of een nieuwe release van een Linux distributie bevalt. Ik wil ook de mogelijkheid hebben om bijvoorbeeld een kale Windows (sandboxed) te draaien voor mijn vrouw zodat zij de software van haar werkgever daar op kan installeren zonder dat ik een computer (al dan niet in dual-boot) van Windows moet voorzien.

Het kan goed zijn dat ik deze wens los moet zien van mijn eerder genoemde wensen maar dat hoor ik uiteraard ook graag.

[ Voor 16% gewijzigd door HyperH op 25-07-2020 10:38 . Reden: Een extra overweging toegevoegd ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • d1ng
  • Registratie: Augustus 2009
  • Laatst online: 06-05-2024
Een "dikke" laptop waar je alles op draait heeft zo zijn voordelen en lijkt in eerste instantie de beste keus. Toch heeft het in de praktijk ook zijn nadelen. Laptop laat je normaal namelijk niet 24/7 draaien, gaat af en toe in slaapstand, wisselt van netwerk enz. Je kan natuurlijk iets regelen dat je virtuele machines automatisch starten na boot bv. maar in geval van slaapstand (ff laptop dichtklappen) werkt dat niet altijd even lekker. Je blijft wat trade-offs houden.

Zelf vind ik het prettigst werken met een headless server. Je kan dan snel en makkelijk bij al je machines. Momenteel draai ik VMware ESXi, maar heb ook een poosje met KVM gevirtualiseerd. Virtualbox kun je overigens ook headless draaien al weet ik niet of dat goed/fijn werkt. Je hebt niet perse een hele dikke server nodig. Veel geheugen is belangrijkste, al hangt het ook wel een beetje af van wat je gaat ontwikkelen.

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

@HyperH denk dat je beter docker/kubernetis kan gebruiken .. puppet/ansible / vagrant oid
Kortom richt je een omgeving die je met "paar muisklikjes" in de lucht kan trappen.

Hyperv/esxi enzv is allemaal niet intressant voor jou en is meer "complete" omgeving gericht..


Kijk eens in het zuinige server topic, in principe voldoet voor jou alles wel .. met een beetje diskspace (1tb oid) kan je veel doen..

Een nas/online drive (backup) heeft ook niet veel nodig .. ik heb bv strato hi drive (encryptie) en acces overal.

Een beetje linux distro komt al 90% kant en klaar met wat simpel script werk kan je een zuinige server een tijdje laten pruttelen en dan staat je complete omgeving voor je kant en klaar .
Het meeste werk is uitvogelen hoe a-b-c werkt en hoe je dit met elkaar laat samen werken ..

voordeel daarna is dat:
- je met rolling updates of verschillende omgevingen kan werken zonder al te veel effort. en enige wat je nodig hebt is wellicht genoeg diskspace en genoeg ram ..
- je snel met een andere HW door kan groeien (met of zonder je laptop)

Tja vanalles


Acties:
  • +1 Henk 'm!

  • com2,1ghz
  • Registratie: Oktober 2004
  • Laatst online: 22-09 13:41
Denk dat je aanpak wat ouderwets is mbt bare metal VM's.
Kijk eens meer richting de cloud. Daar doe je hetzelfde zonder dat je de hardware voor nodig hebt.

Om simpel te beginnen is Digital Ocean wel een goede provider. Vervolgens kan je nog kijken of je je nog wilt verdiepen in de grotere partijen zoals AWS, GCP, Azure etc.

Acties:
  • 0 Henk 'm!

  • Rensjuh
  • Registratie: Juli 2007
  • Laatst online: 19:49
Hoeveel denk je het te gaan gebruiken?
Als dit maar heel af en toe is, is het zonde om hier een aparte host voor neer te plaatsen.
Of je laat hem 24/7 draaien en dan vreet dat ding stroom, of je sluit hem telkens af en moet dan even een 15 minuten wachten tot alles opgestart is.

Weet niet of je toch al van plan was om een nieuwe laptop te kopen, maar dan zou je het budget hiervan wat hoger kunnen leggen.
Ook zul je eens moeten uitzoeken hoeveel VMs je tegelijkertijd wilt draaien.
Als dit er 1 á 2 zijn, misschien soms eens 3, dan heb je hier echt geen aparte host voor nodig.
Dan volstaat een laptop met een i7 en 16 á 32gb RAM ook wel...

Of wat hierboven staat, kijk voor een omgeving zoals Azure waar je zelf een VM kunt aanmaken, ge/mis-bruiken, weggooien, backuppen en restoren.

PV Output


Acties:
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
vso schreef op dinsdag 21 juli 2020 @ 13:01:
@HyperH denk dat je beter docker/kubernetis kan gebruiken .. puppet/ansible / vagrant oid
Kortom richt je een omgeving die je met "paar muisklikjes" in de lucht kan trappen.

Hyperv/esxi enzv is allemaal niet intressant voor jou en is meer "complete" omgeving gericht..


Kijk eens in het zuinige server topic, in principe voldoet voor jou alles wel .. met een beetje diskspace (1tb oid) kan je veel doen..

Een nas/online drive (backup) heeft ook niet veel nodig .. ik heb bv strato hi drive (encryptie) en acces overal.

Een beetje linux distro komt al 90% kant en klaar met wat simpel script werk kan je een zuinige server een tijdje laten pruttelen en dan staat je complete omgeving voor je kant en klaar .
Het meeste werk is uitvogelen hoe a-b-c werkt en hoe je dit met elkaar laat samen werken ..

voordeel daarna is dat:
- je met rolling updates of verschillende omgevingen kan werken zonder al te veel effort. en enige wat je nodig hebt is wellicht genoeg diskspace en genoeg ram ..
- je snel met een andere HW door kan groeien (met of zonder je laptop)
Dit inderdaad. VirtualBox is wat dat betreft een beetje de "oude" manier om dit te doen.

Leuke is dat je K8 zelfs op een Raspberry cluster (minimaal 2) kan draaien. Is relatief goedkoop om mee te beginnen en dan kan je bepalen wat je verder wilt doen. :)

Acties:
  • 0 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 22:45
Vaak bieden cloudproviders hun dienst ook gratis aan voor open source projecten.
Azure Devops, TravisCI, SonarCloud, CodeCoverage, Dockerhub etc.

Met docker(-compose) kun je volgens mij redelijk eenvoudig herbruikbare instanties van die services in de lucht brengen.
Zelfs je IDE kun je in docker draaien, door gebruik te maken van een koppeling met een lokale X-server.

Evt. kun je via docker-machine een VM bouwen voor al je docker-taken, voor een nog duidelijke scheiding met de werk-omgeving.

Edit: Ik heb een aantal jaar geleden een ESXi-machine gemaakt; inmiddels migreer ik een steeds vaker diensten naar dockers binnen een VM. Zou daar weg van blijven tenzij het je hobby is.

[ Voor 15% gewijzigd door RudolfR op 21-07-2020 13:25 ]


Acties:
  • +1 Henk 'm!

  • MarcoC
  • Registratie: September 2003
  • Laatst online: 23:26
Kijk naar Docker (en Kubernetes) en cloud. VM's zijn toch wat ouderwets.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

Ik ben niet helemaal thuis in Java, maar zover ik weet zijn ze zwaar aan de bak gegaan voor support in Docker. Niet dat je het er eerder niet in kon draaien, maar het was altijd een beetje 'meh'. Zeker m.b.t. memory usage (heap). Dat is IMO allemaal top nu.

Dus ik zou echt naar Docker gaan kijken. Eventueel, zoals hierboven al is aangegeven, in combinatie met Kubernetes (als je het echt production-like) wilt gaan draaien.

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
Ten eerste wil ik iedereen bedanken die gereageerd heeft op mijn vraag. Ik had zelf wel wat voorwerk gedaan maar er zijn door jullie een aantal hele goede suggesties gedaan die ik zelf nooit bedacht zou hebben.

Mijn originele openingspost heb ik overigens nog aangevuld met de extra overweging dat ik graag een mogelijkheid zou hebben om meerdere operating systemen (parallel) te kunnen draaien. Dus geen multi-boot op een dedicated machine, maar bij voorkeur virtueel.

Ik zal uit enkele van jullie reacties passages quoten om daar gericht vragen over te stellen.
d1ng schreef op dinsdag 21 juli 2020 @ 12:24:
Zelf vind ik het prettigst werken met een headless server. Je kan dan snel en makkelijk bij al je machines. Momenteel draai ik VMware ESXi, maar heb ook een poosje met KVM gevirtualiseerd. Virtualbox kun je overigens ook headless draaien al weet ik niet of dat goed/fijn werkt. Je hebt niet perse een hele dikke server nodig. Veel geheugen is belangrijkste, al hangt het ook wel een beetje af van wat je gaat ontwikkelen.
Los van de gekozen technologie was ook mijn eerste gedachte om een headless server in te richten. Bij mijn huidige werkgever ben ik gewend om meerdere VDIs tot mijn beschikking te hebben. Ik log dan in vanaf een thin-client of tegenwoordig vaak ook remote vanuit huis i.v.m. Corona en kan snel switchen tussen deze VDIs die eigenlijk 24/7 actief blijven. De werkgever gebruikt Citrix vandaar dat ik zelf bij Xen en XCP-ng uit kwam.

Uiteraard hangt e.e.a. af van wat ik zou willen ontwikkelen. Ik wil thuis dingen kunnen proberen voor mijn huidige werkgever, maar juist ook lekker dingen voor mijzelf om 'bij' te blijven met nieuwe ontwikkelingen war ik in mijn huidige werk niet mee in aanraking kom. Hier wil ik zo flexibel mogelijk mee zijn dus dat varieert van legacy desktop applicaties, middleware, IoT, embedded software, kunstmatige intelligentie, exotische talen, maar uiteraard ook nieuwe ontwikkelingen zoals de veelvuldig aangehaalde 'containers' in de gegeven reacties.

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
vso schreef op dinsdag 21 juli 2020 @ 13:01:
@HyperH denk dat je beter docker/kubernetis kan gebruiken .. puppet/ansible / vagrant oid
[...]
Hyperv/esxi enzv is allemaal niet intressant voor jou en is meer "complete" omgeving gericht..
Docker en Kubernetes ken ik een beetje. Puppet, Ansible en Vagrant kende ik niet.
Als ik het goed begrepen heb zijn Puppet en Ansible een soort systeem beheer tools om makkelijk (meerdere) machines te kunnen onderhouden / configureren. Ansible is een soort wrapper die gebruikt kan worden om verschillende onderliggende virtualisatie omgevingen zoals Virtualbox of Docker te managen m.b.v. bijvoorbeeld Puppet.

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
com2,1ghz schreef op dinsdag 21 juli 2020 @ 13:05:
Denk dat je aanpak wat ouderwets is mbt bare metal VM's.
Kijk eens meer richting de cloud. Daar doe je hetzelfde zonder dat je de hardware voor nodig hebt.

Om simpel te beginnen is Digital Ocean wel een goede provider. Vervolgens kan je nog kijken of je je nog wilt verdiepen in de grotere partijen zoals AWS, GCP, Azure etc.
Cloud heeft natuurlijk voordelen en kan kosten technisch zeker interessant zijn. Er zitten echter ook een aantal keerzijden aan de cloud. Niet alles wat ik zou willen doen leent zich voor de cloud. Los daarvan zou ik ook niet alles aan een public cloud willen toevertrouwen.

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
Rensjuh schreef op dinsdag 21 juli 2020 @ 13:07:
Hoeveel denk je het te gaan gebruiken?
Als dit maar heel af en toe is, is het zonde om hier een aparte host voor neer te plaatsen.
Of je laat hem 24/7 draaien en dan vreet dat ding stroom, of je sluit hem telkens af en moet dan even een 15 minuten wachten tot alles opgestart is.
Als ik overdag werk voor mijn werkgever dan hoeft de server natuurlijk niet aan te staan, want ik zal de hoofdgebruiker zijn. Dat er een opstarttijd is van bijvoorbeeld 15 minuten voordat alles beschikbaar is vind ik niet onoverkomelijk.
Het is echter natuurlijk wel zo dat wanneer je de hardware hebt staan er misschien nieuwe mogelijkheden ontstaan, waardoor je het anders gaat gebruiken. Ik heb nu Domotica op een Raspbery Pi draaien, maar het lijkt me best leuk om bijvoorbeeld Openhab te gaan gebruiken en daar zelf code aan bij te dragen. Dan zou ik dat misschien ook gevirtualiseerd willen draaien om makkelijk te kunnen switchen tussen versies. Het zou dan maar zo kunnen dat je de virtualisatie omgeving ook laat draaien als je zelf niet actief bezig bent.
Ook zul je eens moeten uitzoeken hoeveel VMs je tegelijkertijd wilt draaien.
Als dit er 1 á 2 zijn, misschien soms eens 3, dan heb je hier echt geen aparte host voor nodig.
Dit is een belangrijke requirement om duidelijk te hebben. Meestal zal ik de enige gebruiker zijn en ben je maar met één ding tegelijk bezig. Dus stel je bent aan het programmeren, dan zou ik een VM met mijn generieke services (git, Jenkins, sonar, etc.) hebben draaien en een aparte VM met mijn specifieke IDE. Het is echter wel zo dat je misschien een VM op de achtergrond wilt laten draaien maar niet gebruikt, bijvoorbeeld mijn huis tuin een keuken desktop, omdat je niet alles wilt afsluiten en de volgende dag door wilt gaan waar je gebleven was.
Incidenteel kan het zijn dat mijn vrouw bijvoorbeeld ook ingelogd is en dan zouden er twee gebruikers tegelijkertijd actief zijn op één systeem.

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
xh3adshotx schreef op dinsdag 21 juli 2020 @ 13:19:
[...]
Leuke is dat je K8 zelfs op een Raspberry cluster (minimaal 2) kan draaien. Is relatief goedkoop om mee te beginnen en dan kan je bepalen wat je verder wilt doen. :)
Kubernetes is wel een voorbeeld van technologie waar ik thuis eens mee wil experimenteren om het beter te begrijpen. De Raspberry Pi zie ik echter niet als een platform dat geschikt is voor mijn wensen i.v.m. performance en architectuur, waardoor sommige software er niet op kan draaien.

Met Kubernetes richt je eigenlijk een cluster (private cloud) in waarmee je containers (pods) kunt draaien toch?
Je hebt dan in die pod in minimaal os met daarin een of meerdere services draait?
Klopt het dat je dan gebonden ben aan het host operating system waar Kubernetes op draait en dan dus niet software bestemd voor een ander operating systeem zou kunnen draaien in dat cluster?

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
RudolfR schreef op dinsdag 21 juli 2020 @ 13:22:
Met docker(-compose) kun je volgens mij redelijk eenvoudig herbruikbare instanties van die services in de lucht brengen.
Zelfs je IDE kun je in docker draaien, door gebruik te maken van een koppeling met een lokale X-server.

Evt. kun je via docker-machine een VM bouwen voor al je docker-taken, voor een nog duidelijke scheiding met de werk-omgeving.
Dat is zeker een interessante mogelijkheid. Meer over containers (Docker, Podman, etc.) leren stond al op mijn lijstje maar lukt mij nu niet met mijn huidige hardware.

quote]
Edit: Ik heb een aantal jaar geleden een ESXi-machine gemaakt; inmiddels migreer ik een steeds vaker diensten naar dockers binnen een VM. Zou daar weg van blijven tenzij het je hobby is.
[/quote]
Waar zou ik weg van moeten blijven? ESXi of het migreren van diensten naar Docker?

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
MarcoC schreef op dinsdag 21 juli 2020 @ 13:25:
Kijk naar Docker (en Kubernetes) en cloud. VM's zijn toch wat ouderwets.
De vele reacties hier hebben mij wel overtuigd van het nut en de mogelijkheden met (Docker) containers en Kubernetes. Heb ik het echter goed begrepen dat ik met docker altijd gebonden ben aan het host operating system? (de kernel van de host)
Het is dus niet geschikt om een desktop te virtualiseren? (bijvoorbeeld Debian, naast CentOS, FreeBSD, Windows, etc.)

Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
Douweegbertje schreef op dinsdag 21 juli 2020 @ 13:27:
Ik ben niet helemaal thuis in Java, maar zover ik weet zijn ze zwaar aan de bak gegaan voor support in Docker. Niet dat je het er eerder niet in kon draaien, maar het was altijd een beetje 'meh'. Zeker m.b.t. memory usage (heap). Dat is IMO allemaal top nu.

Dus ik zou echt naar Docker gaan kijken. Eventueel, zoals hierboven al is aangegeven, in combinatie met Kubernetes (als je het echt production-like) wilt gaan draaien.
Mijn huidige werkgever doet nog veel Legacy werk. Juist de ontwikkelingen op dit vlak vind ik belangrijk om te blijven volgen om mijn skills up to date te houden.
Het moet uiteraard ook wel praktisch en werkbaar blijven. Ik hoef geen industrial grade cluster thuis te hebben staan.

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

HyperH schreef op zaterdag 25 juli 2020 @ 13:37:
[...]

Docker en Kubernetes ken ik een beetje. Puppet, Ansible en Vagrant kende ik niet.
Als ik het goed begrepen heb zijn Puppet en Ansible een soort systeem beheer tools om makkelijk (meerdere) machines te kunnen onderhouden / configureren. Ansible is een soort wrapper die gebruikt kan worden om verschillende onderliggende virtualisatie omgevingen zoals Virtualbox of Docker te managen m.b.v. bijvoorbeeld Puppet.
ja nee erhm bijna ..

je kan met puppet/ansible/vagrant / docker(script :? ) complete machines uitrollen op een hypervisor omgeving
hypervisors: esx,hyper-v,virtual box ..
docker, app-v enzv zijn meer applicatie "bubbels"

Wat je uit eindelijk "wilt" hebben is met 1 command/muisklik een complete omgeving opgezet word met de applicatie die je zojuist hebt ontwikkeld
dit kan zijn:
- een webserver op windows/linux (simpel)
of
- een complete "farm" met database server, jenkins, file server, web server, en what ever you need. (complex)
- of docker "apps"

puppet/ansible voegen daarbij toe dat je "onderdelen" bv de webserver (apache/nginx,iis ) apart kan updaten/patchen of geintegreerd een complete omgeving opnieuw uitrolt.

hoe je het ook gaat doen, je doet er verstandig aan de boel te chainen en duidelijk te beschrijven/documenteren. een extra beheertool/website oid die dit voor je bij houd (versie beheer) is wel erg handig .. zodat je elke wijziging makkelijk terug kan rollen.

@Douweegbertje legt het hieronder beter uit :) maar dieper in de materie :)

Tja vanalles


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

HyperH schreef op zaterdag 25 juli 2020 @ 13:42:
[...]

Klopt het dat je dan gebonden ben aan het host operating system waar Kubernetes op draait en dan dus niet software bestemd voor een ander operating systeem zou kunnen draaien in dat cluster?
Neen. Je draait docker containers. Dus dat kan van alles zijn. Een pod bevat normaal gezien 1 container (soms meer als sidecar). Een voorbeeld van een sidecar wat heel tof voor jou kan zijn is: https://github.com/jaegertracing/jaeger-kubernetes - een tracing side car agent.
HyperH schreef op zaterdag 25 juli 2020 @ 13:43:
[...]

De vele reacties hier hebben mij wel overtuigd van het nut en de mogelijkheden met (Docker) containers en Kubernetes. Heb ik het echter goed begrepen dat ik met docker altijd gebonden ben aan het host operating system? (de kernel van de host)
Het is dus niet geschikt om een desktop te virtualiseren? (bijvoorbeeld Debian, naast CentOS, FreeBSD, Windows, etc.)
meh, je noemt nu OS'en op en niet zo zeer desktops. Maar ja, je virtualiseert niet perse een desktop. Dat is ook juist iets wat je niet wilt.

Wat je wilt is een image waarin je eigenlijk maar 1 process in draait en die container is zo ingericht dat je eigenlijk het bare-minimum erop hebt staan om dat process te kunnen draaien.

Heel relevant voor dit is 12factor apps: https://12factor.net/
HyperH schreef op zaterdag 25 juli 2020 @ 13:43:
[...]

Mijn huidige werkgever doet nog veel Legacy werk. Juist de ontwikkelingen op dit vlak vind ik belangrijk om te blijven volgen om mijn skills up to date te houden.
Het moet uiteraard ook wel praktisch en werkbaar blijven. Ik hoef geen industrial grade cluster thuis te hebben staan.
Ik vind dat als je nadenkt over citrix, dat het gebruik van docker juist de logischere keuze is. Je kan zelfs k8s in docker draaien:
- https://github.com/kubernetes-sigs/kind
of een lightweight variant
- https://k3s.io/

of simpelweg docker compose gebruiken voor local dev werk

------

Wat je je moet realiseren is dat als je docker gebruikt, dat je in een hele korte tijd goed kan developen met een setup waar je juist niet veel mee bezig bent. In feite kan je binnen no-time een setup hebben met:

- Prometheus (voor metrics)
- iets van https://opentelemetry.io/ - zij het bijv. Jaeger voor je traces
- Dat vrijwel automagisch & out of the box

Natuurlijk moet je hier niet direct mee beginnen maar een basis development setup via Docker is heel goed te doen! Ik denk dat je alleen gewoon een proof of conceptje moet doen. Het is namelijk 100% een andere denkwijze en alles wat je nu weet over het draaien van "iets" is 100% niet van toepassing meer.

Acties:
  • 0 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 22:45
HyperH schreef op zaterdag 25 juli 2020 @ 13:43:
[...]

Waar zou ik weg van moeten blijven? ESXi of het migreren van diensten naar Docker?
Dat eerste. ESXi (of iets soortgelijks) is leuk, maar kost ook weer tijd en daar zit je als ontwikkelaar waarschijnlijk niet op te wachten.

Volgens mij kun je dan beter een beetje handig zijn met docker/podman, zelf images maken met tools voor pipelines etc. en docker-compose voor het koppelen van databases ofzo. :*)

Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Rensjuh schreef op dinsdag 21 juli 2020 @ 13:07:
Hoeveel denk je het te gaan gebruiken?
Als dit maar heel af en toe is, is het zonde om hier een aparte host voor neer te plaatsen.
Of je laat hem 24/7 draaien en dan vreet dat ding stroom, of je sluit hem telkens af en moet dan even een 15 minuten wachten tot alles opgestart is.
Dat is nogal overdreven. Ik heb Hyper-V setup met een stuk of 5 Windows VM's die automatisch starten. Dat is een redelijk antieke i5-3470 met 32GB RAM op een doorsnee consumenten SSD.
Die VM's starten met een interval van 60 seconden en de hele boel is dus na 6 minuten in de lucht. Dat kan wel wat sneller, door de interval korter te maken, maar voor mij is het ruimschoots snel genoeg.

En dan laat ik het spul aanstaan tot ik naar bed ga. Als je het spul steeds aan- en uitzet dan zit je inderdaad veel te wachten maar wie doet dat nou?

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

downtime schreef op zaterdag 25 juli 2020 @ 15:36:
[...]

Dat is nogal overdreven. Ik heb Hyper-V setup met een stuk of 5 Windows VM's die automatisch starten. Dat is een redelijk antieke i5-3470 met 32GB RAM op een doorsnee consumenten SSD.
Die VM's starten met een interval van 60 seconden en de hele boel is dus na 6 minuten in de lucht. Dat kan wel wat sneller, door de interval korter te maken, maar voor mij is het ruimschoots snel genoeg.

En dan laat ik het spul aanstaan tot ik naar bed ga. Als je het spul steeds aan- en uitzet dan zit je inderdaad veel te wachten maar wie doet dat nou?
Ik? :+

Voor vrijwel alles schrijf ik het als infra-as-code. Ik kan mijn volledige infra stack weg gooien en binnen ~4-5 minuten opnieuw provisionen.

Reden? Ik maak zelf wel gebruik van de cloud. En voor de basis hoeft niet alles 24/7 te draaien, dus als ik dan klaar ben gaat het uit. De andere reden is dat ik soms even 2-3 uurtjes bezig ben met bijv. een test-setup of even een 'zwaardere compute'. Dan kan ik voor 2-3 uur a ~2-3$ echt mega machines neerzetten.

Als ik dat heel de maand wil draaien kan ik een 2e hypotheek nemen, maar zo voor die uurtjes is dat helemaal top.

Acties:
  • 0 Henk 'm!

  • powerboat
  • Registratie: December 2003
  • Laatst online: 04:57
HyperH schreef op zaterdag 25 juli 2020 @ 13:37:
[...]

Docker en Kubernetes ken ik een beetje. Puppet, Ansible en Vagrant kende ik niet.
Als ik het goed begrepen heb zijn Puppet en Ansible een soort systeem beheer tools om makkelijk (meerdere) machines te kunnen onderhouden / configureren. Ansible is een soort wrapper die gebruikt kan worden om verschillende onderliggende virtualisatie omgevingen zoals Virtualbox of Docker te managen m.b.v. bijvoorbeeld Puppet.
Correct! :)

Ansible en Puppet zijn beide een configuration management tool. Het doel hiermee is om een consistente omgeving te kunnen realiseren.

Je documenteert wat je doet. Dus zeggen wat je gaat doen, module aanroepen en argumenten meegeven om dit te kunnen realiseren. Je er een enkele machine mee beheren of een compleet datacenter.

Of te wel "Infrastructure as Code" :)

Acties:
  • 0 Henk 'm!

  • 80000
  • Registratie: Januari 2002
  • Laatst online: 03:26

80000

mrox

Je geef in je requirements op dat je misschien Openhab permanent wil draaien.

Hoewel Openhab ook in een Docker draait, heb ik er voor gekozen om deze in een VM te draaien.
Zie https://community.openhab...openhab-2-in-docker/14267 bij de Limitations and Gotchas voor de bperkingen die voor jou van toepassing kunnen zijn.
Ik heb op Openhab, maar 1 z wave stick die mijn hele huis domitica aanstuurt. Experimenteren is leuk, maar het moet blijven draaien tijdens het experimenteren, vanwege de WAF factor. Dus een 2e openhab docker of VM kan ik toch niet creeren. Mislukt het experiment dan zet ik de snapshot van de VM gewoon terug.

Verder, zou je werkgever nog software hebben kunnen draaien die niet in docker runt, maar het leuke zou natuurlijk zijn, als je kan testen dat het wel in docker werkt :).

Vandaar een headless server met VM's sluit niet uit dat je geen Docker containers zou kunnen draaien. VM creeren om je dockers te draaien en heb je het beste van 2 werelden naar mijn mening.

Als ik vandaag de dag een nieuwe headless server zou inrichten, dan zou ik naar https://proxmox.com/en/proxmox-ve kijken:
- VM
- dockers
- ZFS support

Ik draai zelf al jaren ESXI, ZFS, VM met Docker en kies gewoon voor elke toepassing wat er het beste bij past.

Acties:
  • 0 Henk 'm!

  • MainframeX
  • Registratie: September 2017
  • Laatst online: 01:18
Ik gebruik zelf Ansible i.c.m. Vagrant en virtualbox. Daarmee heb ik binnen een paar minuten weer een nieuwe omgeving opgetuigd welke compleet ingesteld is naar wens. Het zou ongetwijfeld sneller kunnen met docker maar daar heb ik nog niet naar gekeken.

Edit: Toch maar eens kijken naar microk8s i.c.m. met Ansible. Zo kan ik eventueel nog wat tijd winnen met bouwen van omgevingen en wellicht de configs en scripting hergebruiken voor deployment :D

[ Voor 28% gewijzigd door MainframeX op 26-07-2020 22:35 ]

Idempotent.


Acties:
  • 0 Henk 'm!

  • HyperH
  • Registratie: Mei 2015
  • Laatst online: 06-01 15:22
Na ampel beraad kom ik eigenlijk tot de conclusie dat ik nog steeds niet in de positie verkeer dat ik een goede beslissing kan nemen. De verschillende suggesties die hier zijn gedaan moet ik zelf in de praktijk gaan proberen om te weten of het geschikt is voor mij.

Door jullie suggesties ben ik heel anders over mijn eigen wensen gaan denken. Ik zie mogelijkheden die ik tot voor kort niet kende, maar ga ook twijfelen of een alles-in-1 oplossing wel (kosten) effectief is in mijn situatie.

Mijn voorlopige conclusie:
  • Ik wil thuis een centrale server hebben die voor mij VCS (waarschijnlijk Git) managed
  • De server moet ook andere services gaan aanbieden waar ik mee kan ontwikkelen en experimentren
  • Containers (en kubernetes) is een technologie waar ik absoluut mee wil experimenteren
  • Wellicht is een compleet OS met grafische desktop virtualiseren op een server en deze middels een thin-client gebruiken toch niet zo'n goed idee
  • Er zal scope creep plaatsvinden want ik zit er nu ook al aan te denken om iets als NextCloud te gaan draaien
Met de opgedane inzichten denk ik er over om wel nieuwe hardware te kopen voor een server, omdat mijn huidige hardware niet toereikend is. Initieel ga ik dan met Proxmox aan de slag met een aantal virtuele machines en containers. In de VMs kan ik kennis maken met deze nieuwe technologie en ervaring opdoen met het configureren zonder dat de overige services per ongeluk een tijd offline gaan door mijn onkunde. Zodra ik dan vertrouwd raak met bijvoorbeeld technologie zoals containers en Kubernetes en ik kan mijn services daar in kwijt dan zou ik kunnen stoppen met de hypervisor. De server hardware zou ik dan wellicht dedicated kunnen inzetten zonder hypervisor virtualisatie maar met containers.

Wat vinden jullie van deze aanpak?
Pagina: 1