Spring boot app deployen naar de cloud

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Homewrecker
  • Registratie: Oktober 2009
  • Laatst online: 06-02 09:22
Hoi,

Ik heb een Spring boot app die een simpel proces runt. Tijdens het runnen van dit proces word er tevens een Docker container opgestart. Heel het proces duurt maximum 15 minuten en moet slechts 1 maal per dag uitgevoerd worden. Het resultaat van het proces is een CSV bestand waar ik (makkelijk) aan moet kunnen.

Ik wil deze op in de cloud draaien maar ik zie door de bomen het bos niet meer.
Bij welke cloud provider ik het doe lijkt me op het eerste zicht niet belangrijk te zijn, echter snap ik totaal niet welke formule ik nodig heb. Hebben jullie suggesties?

Alvast bedankt.
Groeten

Beste antwoord (via Homewrecker op 02-04-2023 10:46)


  • n9iels
  • Registratie: November 2017
  • Niet online
Als het ik goed begrijp heb je een Java applicatie die elke dag 15 minuten draait om een CSV bestand te produceren. Een belangrijk deel wat ik nog mis is op welke manier die Docker container hierbij betrokken is. Is dit een externe service die je start tijdens het draaien van die Java applicatie? En wat voor soort ding is dit en wat doet het?

Het "naar de cloud" brengen van iets kan op heel veel manieren. Het meest eenvoudige is het huren van een VPS ergens (bijv. Digital Ocean of Linode) en deze Java applicatie met een soort schedule/CRON elke dag laten uitvoeren. Een andere manier, maar dan maak je het ook gelijk een stuk complexer, is kijken richting Amazon Web Services (AWS). Zij kennen een concept dat heet AWS Lambda. Kort gezegd betekend dit dat je code kun uitvoeren op basis van een event (in jou geval dus bijv. als het 02:00 uur is) en je betaald ook enkel voor de run-time van deze code. Met als extra bonus: Lambda's zijn oneindig schaalbaar oke, tot dat het geld op is 8)7 . Naar mijn mening is dit écht Cloud development. Het zal alleen wel het herschrijven van een deel van je code-base betekenen. Met name die Docker container zou dit nog wel eens extra ingewikkeld kunnen maken.

Persoonlijk denk ik dat je met een simpele VPS eigenlijk al geholpen bent. Services als AWS zijn fantastische als het gaat om schaalbaarheid met een onregelmatig bezoekers aantal. Totaal niet relevant voor jou use case dus. Wel een leuk hobby project wellicht :)

[ Voor 6% gewijzigd door n9iels op 01-04-2023 20:11 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Groax
  • Registratie: Oktober 2012
  • Laatst online: 11:33
Je kan kijken naar Heroku. Dit gebruikte ik toen ik nog Java (BAH! :D) moest schrijven op het HBO

Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • n9iels
  • Registratie: November 2017
  • Niet online
Als het ik goed begrijp heb je een Java applicatie die elke dag 15 minuten draait om een CSV bestand te produceren. Een belangrijk deel wat ik nog mis is op welke manier die Docker container hierbij betrokken is. Is dit een externe service die je start tijdens het draaien van die Java applicatie? En wat voor soort ding is dit en wat doet het?

Het "naar de cloud" brengen van iets kan op heel veel manieren. Het meest eenvoudige is het huren van een VPS ergens (bijv. Digital Ocean of Linode) en deze Java applicatie met een soort schedule/CRON elke dag laten uitvoeren. Een andere manier, maar dan maak je het ook gelijk een stuk complexer, is kijken richting Amazon Web Services (AWS). Zij kennen een concept dat heet AWS Lambda. Kort gezegd betekend dit dat je code kun uitvoeren op basis van een event (in jou geval dus bijv. als het 02:00 uur is) en je betaald ook enkel voor de run-time van deze code. Met als extra bonus: Lambda's zijn oneindig schaalbaar oke, tot dat het geld op is 8)7 . Naar mijn mening is dit écht Cloud development. Het zal alleen wel het herschrijven van een deel van je code-base betekenen. Met name die Docker container zou dit nog wel eens extra ingewikkeld kunnen maken.

Persoonlijk denk ik dat je met een simpele VPS eigenlijk al geholpen bent. Services als AWS zijn fantastische als het gaat om schaalbaarheid met een onregelmatig bezoekers aantal. Totaal niet relevant voor jou use case dus. Wel een leuk hobby project wellicht :)

[ Voor 6% gewijzigd door n9iels op 01-04-2023 20:11 ]


Acties:
  • +1 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 07:03
n9iels schreef op zaterdag 1 april 2023 @ 20:07:
Als het ik goed begrijp heb je een Java applicatie die elke dag 15 minuten draait om een CSV bestand te produceren. Een belangrijk deel wat ik nog mis is op welke manier die Docker container hierbij betrokken is. Is dit een externe service die je start tijdens het draaien van die Java applicatie? En wat voor soort ding is dit en wat doet het?

Het "naar de cloud" brengen van iets kan op heel veel manieren. Het meest eenvoudige is het huren van een VPS ergens (bijv. Digital Ocean of Linode) en deze Java applicatie met een soort schedule/CRON elke dag laten uitvoeren. Een andere manier, maar dan maak je het ook gelijk een stuk complexer, is kijken richting Amazon Web Services (AWS). Zij kennen een concept dat heet AWS Lambda. Kort gezegd betekend dit dat je code kun uitvoeren op basis van een event (in jou geval dus bijv. als het 02:00 uur is) en je betaald ook enkel voor de run-time van deze code. Met als extra bonus: Lambda's zijn oneindig schaalbaar oke, tot dat het geld op is 8)7 . Naar mijn mening is dit écht Cloud development. Het zal alleen wel het herschrijven van een deel van je code-base betekenen. Met name die Docker container zou dit nog wel eens extra ingewikkeld kunnen maken.

Persoonlijk denk ik dat je met een simpele VPS eigenlijk al geholpen bent. Services als AWS zijn fantastische als het gaat om schaalbaarheid met een onregelmatig bezoekers aantal. Totaal niet relevant voor jou use case dus. Wel een leuk hobby project wellicht :)
Een kwartier een lambda draaien (wat toevallig de max runtime van een lambda invoke is) kost erg weinig als je weinig resources nodig hebt en zou ik dus inderdaad ook aanraden als alle code aangepast kan worden.

Echter, je krijgt by default een transient filesystem van 512 MB dat dus verdwijnt nadat je lambda weer afgebroken wordt. Dan zou je de data dus ergens naar S3 (goedkoop, kleine wijziging in code) of EFS (duurder, maar kan je aan je lambda hangen voor permanente opslag) moeten schrijven.
Daarnaast kan je in een lambda vziw niet zomaar een nieuwe container naast je code starten dus dat is ook een codewijziging. Zo te zien kan je wel een container starten bovenop je draaiende proces in je code in de lambda (bv via docker-in-docker, of via een willekeurige ondersteunde programmeertaal) maar heb ik dat gewoon nog nooit iemand zien doen :+
Tevens is AWS niet zo heel instapvriendelijk als je nog nooit hebt gewerkt met het platform.

Ik zou gewoon een kleine VPS aanraden, bij bijvoorbeeld een Linode of Digital Ocean. Of een EC2 op AWS - die kan je het eerste jaar gratis draaien (free tier voor nieuwe accounts) als je de kleinste of één-na-kleinste kiest.

[ Voor 4% gewijzigd door Merethil op 01-04-2023 22:18 ]