Home Blog

Deploy di un’applicazione Laravel su Kubernetes – Parte 3

0

Bene, è il momento di concludere questa serie di articoli in cui ho deciso di raccontare, scendendo un po’ più nel dettaglio, di come ho fatto il deploy di un’applicazione Laravel su un cluster Kubernetes.

Dove eravamo rimasti? Facciamo un piccolo recap, prima di procedere:

  • Nella prima parte di questa serie mi sono dedicato a quelle che sono state le mie necessità prima di arrivare a considerare una soluzione Kubernetes managed per la mia app. Non sono partito da Kubernetes da subito, non ne avevo bisogno e col senno di poi è stata la scelta giusta;
  • Nella seconda parte, invece, ho iniziato a mettere le mani in pasta. Ho spiegato come ho creato i vari componenti di cui avevo bisogno, dal cluster ai database, per poi passare dalla creazione dell’immagine da usare ed, infine, arrivare alla creazione delle varie risorse sul cluster;

Oggi ci occuperemo di quello che rimane. Vedremo, infatti:

  • come gestire la questione dei worker delle nostre code: l’applicazione che ho realizzato, infatti, fa un uso intensivo delle code. Su questo ho anche una chicca da condividervi, quindi continuate a leggere…
  • come gestire il discorso dei cronjob: altra parte fondamentale della mia app, smanettando e sperimentando ho scoperto un altro paio di cose interessanti che vi faranno risparmiare qualche mezz’ora di grattacapi;
  • lo spiegare a Kubernetes come e quando lanciare le migration, al termine di un deploy, nel modo “giusto”, o comunque più coerente;

Deploy di un’applicazione Laravel su Kubernetes – Parte 2

1

Continuiamo il nostro viaggio alla scoperta del deploy di un’applicazione Laravel su Kubernetes. Nell’articolo precedente, che vi consiglio di leggere se non l’avete già fatto, ho introdotto il tema parlando di come ho concepito il lavoro da fare e le motivazioni dietro le mie scelte.

Oggi, però, è il giorno in cui iniziamo a mettere le mani in pasta.

Quindi: cosa vedremo?

  • partiremo con la creazione di tutte le risorse necessarie su DigitalOcean, il provider di servizi che ho scelto di usareNello specifico, creeremo insieme il cluster managed ed i due database (MySQL e Redis) che ho usato;
  • daremo uno sguardo alla creazione delle immagini docker per l’app, che verranno usate dai pod del cluster;
  • infine, inizieremo a mettere le mani concretamente su Kubernetes, creando i deployment e service per la nostra app;

Iniziamo!

Deploy di un’applicazione Laravel su Kubernetes – Parte 1

2

Oggi voglio iniziare una mini-serie di articoli dedicati al deploy di un’applicazione Laravel su un cluster Kubernetes. 

Era un po’ che volevo farlo: imparare quello che ho imparato per me è stato molto stimolante e mi ha portato un sacco di benefici. Anche economici.

Prima di iniziare però voglio subito mettere un paio di cose in chiaro:

  • non sarà un tutorial “passo dopo passo”: ogni applicazione ha le sue necessità, le sue peculiarità e può necessitare di un setup totalmente diverso da quello che ho messo su io. Per questo motivo, racconterò la mia esperienza, cosa ho fatto e come ho risolto alcuni dei miei problemi, con l’obiettivo di fornire una traccia da seguire per chi si sta avvicinando ora all’argomento;
  • non sono un esperto di Kubernetes: le soluzioni che ho trovato funzionano perfettamente per me, anche se non è detto siano il meglio possibile. Trovo l’argomento molto affascinante ma NON sono ad un livello di conoscenze avanzato sotto questo punto di vista. Non aspettatevi un corso accelerato di Kubernetes su queste pagine!

Quello che leggerete sarà, insomma, un po’ un “diario” della mia esperienza.

Creare un Admin per Laravel con Orchid CRUD. Ecco com’è andata

1

Torno di nuovo a scrivere di Orchid, il progetto di Alexandr Chernyaev dedicato alla costruzione di pannelli di amministrazione con Laravel. Sto continuando ad usarlo e, devo ammetterlo, mi ci sto appassionando.

Il progetto è ben fatto, funziona bene ed ha una logica che mi piace molto.

Ho provato Orchid per Laravel. Posso farci un Pannello di Amministrazione?

1

In questi giorni ho passato un po’ di tempo a guardarmi intorno, alla ricerca di alternative a Laravel Nova per quanto riguarda la costruzione di pannelli di amministrazione con Laravel. Fino ad oggi, infatti, ho usato solo Nova e devo dire di essermi trovato davvero bene.

Sono però anche una persona molto curiosa: perché limitarmi? Così, tra una sbirciata a Reddit (quanta roba interessante che ci trovo!) e ricerche su Google, alla fine sono incappato in un progetto abbastanza particolare: Orchid.

Una “Bestia Strana”

Devo aggiornare la mia app Laravel, oppure no?

0

Ieri, girovagando come al solito tra le discussioni in cerca di idee, ho trovato un post interessante che parlava di come e quando aggiornare un’app Laravel. Mi ha sorpreso molto trovare pareri di ogni tipo:

  • “no, ma figurati, non aggiornare se non è strettamente necessario”
  • “aggiorna sempre!”
  • “io aggiorno solo ad ogni LTS”

… e così via.

Mi sono ricordato che ultimamente ho avuto un’esperienza ravvicinata del terzo tipo con un aggiornamento abbastanza “importante” di un’app Laravel.

Ho pensato di scrivere questo articolo per “riassumere” un po’ questa esperienza, nella speranza che possa essere utile anche ad altri.

Come usare (e non usare) i Seeder in Laravel

1

Qualche giorno fa ho pubblicato un articolo sulle migration in Laravel che ha suscitato molto interesse, più di quanto mi aspettassi. Nel pubblicarlo in giro, in tanti mi hanno fatto qualche domanda sui Seeder.

Se le migration sono uno strumento molto usato ma poco compreso nel profondo, i Seeder vengono adoperati sensibilmente meno. Onestamente, non ne capisco nemmeno il perché, vista la loro comodità.

In questo articolo parlerò un po’ di di Seeder, di come funzionano e di quanto mi hanno aiutato nel lavoro di tutti i giorni.

Come usare (e non usare) le Migration in Laravel

1

Da stamattina ho in testa di scrivere un articolo che parli di uno strumento che ritengo molto importante: le migration in Laravel, uno tool potentissimo che troppo spesso viene usato male.

Durante questo periodo di feste, infatti, ne ho lette di tutti i colori su gruppi, forum e così via. Ho deciso, quindi, di buttare giù qualche considerazione e darvi qualche consiglio che avrei voluto ricevere io, la prima volta che le ho studiate.

Prima di tutto, cosa sono?

Come la documentazione a riguardo ci suggerisce, le migration sono una sorta di sistema di versioning per il nostro database. Nelle migration c’è la storia del nostro database e viene spiegato il modo in cui questo è evoluto nel tempo. 

Usare ASDF per installare diverse versioni di PHP, insieme!

0

Qualche giorno fa, parlando di Laravel Sail ed ambienti di sviluppo, ho scritto di quanto sia interessante (ed importante) avere un environment semplice da installare e configurare quando lavoriamo con i nostri progetti.

Quante volte, però, capita di aver bisogno di fare una “prova al volo”?

Magari vogliamo solo provare un nuovo package, oppure testare del codice senza troppi fronzoli. Niente database, Redis o altro. Giusto il runtime di quel linguaggio, magari in una versione specifica.

La soluzione di cui abbiamo bisogno è…

Asdf?

Per questi casi, uso uno strumento che si chiama asdfNo, non ho premuto i primi tasti a caso sulla tastiera, si chiama davvero così. Asdf è un tool che permette di installare in locale una o più versioni specifiche di qualsiasi dei linguaggi supportati. Mi piace per tre motivi:

Creiamo un ambiente di sviluppo Docker per i nostri progetti con Laravel Sail!

1

Oggi vorrei spendere due parole a proposito di qualcosa a cui tengo molto: l’ambiente di sviluppo in cui lavoriamo ai nostri progetti. Sembra una cosa scontata ma non è assolutamente così: non avete idea di quante app vedo, ancora oggi, costruite in ambienti che non aiutano minimamente lo sviluppatore… anzi!

Qualche giorno fa vengo a sapere che hanno rilasciato una piccola perla: Laravel Sail, come package ufficiale! Sail configurare, con uno sforzo minimo, un ambiente di sviluppo chiavi in mano, dockerizzato, personalizzabile ma comunque facilissimo da usare. Il tutto con uno strumento da linea di comando a corredo.

(Sail prende spunto da una mia vecchia conoscenza: Laravel Vessel.)

Oggi vi dirò:

  • perché bisognerebbe usare sempre un buon ambiente di sviluppo, magari dockerizzato;
  • come installare ed usare Laravel Sail con un progetto Laravel;