Follow Me!

Contenuti

C# 9 and .NET 5

Cloud Functions a Confronto

Cloud Functions a Confronto

❓ Quali sono le prime impressioni?

In queste ultime sere mi sono messo a fare dei casi di studio tra i tre candidati sulla mia lista dei desideri. A dire il vero la lista contiene due nomi. Il terzo piu’ che sulla mia lista e’ nel mio cuore da giugno 2018. Direi che il momento di dare il via al gioco delle tre carte e’ giunto. Pronti, partenza e via … di chi parliamo?

1️⃣ Azure

2️⃣ Amazon Web Services

3️⃣ Google Cloud Platform

Se vi siete messi a rileggere la riga con scritto “Amazon Web Services” a seguito del mio post AWS e quella strana sensazione mentale … sappiate di avere letto bene.

Domanda: Vi state chiedendo il perche’ di questo studio/ confronto?

La risposta e’ semplice.

DISCLAMER: Questo post non e’ un trattato internazionale sul cloud. E’ solamente una mia esperienza personale ad alto livello su come ho vissuto il primo approccio al di fuori del mondo Azure. Eventuale codice verra’ mostrato in seguito in altri post a tema.

Obiettivo: Azure -salvo cambiamenti inaspettati lavorativi- restera’ il MIO cloud. Credo sia utile avere una seconda scelta per quando capitano dei lavori da fare. Per me programmatore il codice e’ sempre codice. Cambia il template della function e poco altro. Una volta che mi innesto in componenti/ classi scritti da me tutto torna alla normalita’.

Speranza: Ora speriamo solamente di trovare l’opportunita’ di sperimentare in modo professionale il tutto in futuro trovando lavori da svolgere o su AWS o su GCP.

Linkedin: Vuoi commentare il contenuto? Sfrutta il post “⚡ Cloud Functions a Confronto: quali sono le prime impressioni ?” per unirti alla mia rete Linkedin e fornire il tuo parere!

Azure Functions

Su queste non mi voglio dilungare, credo di conoscerle parecchio bene e di sapere utilizzarle.

Cosa centra in tutto questo le Azure Functions se non ho fatto nulla? Ho preso una mia Functions ed ho cominciato a convertire i diversi ENDPoint sulle altre piattaforme.

Su Azure -per la cronaca- ho tre Function App con diversi ENDPoint per raccogliere dei dati e mostrarli. Alcune si integrano con sistemi esterni ed altri fanno chiamate a MongoDB per salvarmi dei dati.

GCP - Google Cloud Functions

Google Cloud Platform e’ stato l’ultimo ad entrare nella mia vita, ma e’ stato il primo cloud in cui ho migrato un ENDPoint. Ammetto che all’inizio non ero convinto e non capivo una serie di cose. Rotto lo scoglio delle differenze trovate con Azure mi sono spostato sul codice e non ho avuto nessun problema.

Uno dei motivi per cui ho guardato GCP per prima e’ legato al tema ambientale. Se volete maggiori informazioni vi invito a leggere How carbon-free is your cloud? New data lets you know anche solamente per scegliere un datacenter con la percentuale di carbon-free piu’ alta possibile.

Al momento ho scelto il datacenter europe-west1 per due motivi:

Ora vi posso dire che un mio ENDPoint su Azure e’ stato disabilitato ed una nuova function e’ nata una Cloud Functions su GCP. Ad essere sinceri due, se contiamo anche hello-world-function.

Entrambe le functions le ho pubblicate da linea di comando tramite la sintassi

1
2
3
4
5
6
gcloud functions 
  deploy my-http-trigger-function 
  --region europe-west1 
  --runtime dotnet3 
  --trigger-http 
  --entry-point MyProject.MyHttpFunction

Lo ammetto, mi sono emozionato!

Next Step:

AWS - Lambda

Ho lasciato per ultimo le Lambda non per caso. Con loro avevo gia’ avuto a che fare durante il lockdown per via di qualche esperimento con Alexa. Lo scorso anno ho usato giusto i template fatti negli esempi e poco altro. Non avevo nemmeno installato AWS Toolkit for Visual Studio talmente che mi sentivo “desideroso” di imparare. Non a caso -forse- quando ho dovuto fare una POC con Alexa ho girato tutte le chiamate su Azure Function.

Link: Alexa Skill: Endpoint basato su Azure Function

Dopo avere installato il Toolkit ho cominciato a sentire l’ansia, ma dopo un respiro profondo mi sono lanciato creando un progetto in VS2019. Cosa ho combinato?

📌 Smandruppamenti varii e prove in locale

📌 Pubblicazione su AWS tramite Toolkit

📌 Fatto un test tramite Toolkit

📌 Aperto la Lambda su portale

📌 Aggiunto un API Gateway ed agganciato alla Lambda

Poi? Poi nulla, la batteria del portatile mi ha abbandonato ed ero in fase relax senza l’alimentatore vicino a me. A quel punto ho spento e guardato la televisione. Potevo farlo questa sera, ma perche’ negarvi questo articolo?

Next step? Migrare un altro endpoint!

I datacenter candidati sono due al momento:

  • Milan: eu-south-1: Quando mi ricapita di avere un datacenter in casa? Mi e’ stato detto che e’ caro, ma per l’uso fatto da me come numero di chiamate alle Lambda 1 milione/mese lo vedo abbastanza come utopia.
  • Frankfurt: eu-central-1: discorso analogo al precedente con GCP per via della presenza di MongoDB

Dal punto di vista ambientale non ho idea di come sia messo AWS coi suoi datacenter e prima di prendere una decisione in merito dovro’ documentarmi un attimo.

Next Step:

Questa “trilogia” di libri corrisponde al learning paths - Improving Your AWS Skills di circa 20 ore suggerito da Packt Publishing con la seguente descrizione:

Advance your AWS skills. Write, run, and test Lambda functions to build serverless apps. Use various AWS services to create a virtual cloud to perform networking tasks, learn about scalability and load balancing, enable automated, continuous security, auditing, and compliance.

Personalmente non vedo l’ora di cominciarlo!

Desideri commentare il post appena letto? Oppure leggere i commenti lasciati da altri? Ti aspetto su Linkedin per eventuali commenti e/o unirti alla mia rete professionale