Best practice per l’implementazione delle applicazioni nel cloud

Share post

Determinate la migliore distribuzione per le vostre applicazioni su un’infrastruttura cloud

Tempo di lettura: 4 min.
Come sviluppatore, probabilmente avrai sentito parlare molto di cloud e di nuove tecnologie che promettono di aumentare la velocità di sviluppo del software, così come di quelle che possono aumentare la resilienza delle tue applicazioni una volta implementate. La tua sfida è quella di esplorare queste tecnologie emergenti e determinare quali sono effettivamente promettenti per i progetti su cui stai attualmente lavorando.

Senza dubbio, sei consapevole che il cloud computing offre grandi promesse per gli sviluppatori. Tuttavia, potresti non conoscere le aree in cui questa tecnologia può fornire valore a te e ai tuoi progetti. Potresti anche non conoscere le best practice da adottare quando si implementa un progetto nel cloud. Questo articolo esplora i tipi di sistemi di cloud computing disponibili, e fornisce le linee guida che possono aiutarti con le implementazioni di applicazioni nel mondo reale su un’infrastruttura cloud.

Scegli tra IaaS, PaaS e SaaS

Quando si inizia a parlare di cloud computing, si parla generalmente di una delle tre possibili scelte di implementazione del codice applicativo: infrastructure as a service (IaaS), platform as a service (PaaS) o software as a service (SaaS). Quale sia quella giusta per il vostro progetto dipende dalle vostre specifiche esigenze per la base di codice su cui state lavorando. Esaminiamo ciascuna di queste scelte di cloud.

Infrastructure as a Service (IaaS)

IaaS è una piattaforma in cui viene fornita un’infrastruttura per voi. Con un semplice clic su un pulsante, è possibile avviare macchine virtuali ospitate da un provider con un sistema operativo di vostra scelta. Il fornitore che fornisce la macchina è responsabile della connettività e del provisioning iniziale del sistema, mentre tu sei responsabile di tutto il resto. Il fornitore fornisce una macchina e un sistema operativo, ma è necessario installare tutti i pacchetti software, applicazioni runtime/server e i database che la vostra applicazione richiede. Generalmente, IaaS richiede che tu abbia un team di amministratori di sistema per gestire il sistema e applicare spesso le regole del firewall, le patch e gli errori di sicurezza.

Pro: Hai il controllo completo su ogni aspetto del sistema.
Contro: Hai bisogno di conoscenze di amministrazione del sistema o di un team di amministratori di sistema per la manutenzione dei sistemi, poiché sei responsabile del loro tempo di attività e della sicurezza.

Platform as a Service (Paas)

PaaS è uno stack tecnologico abbastanza nuovo che funziona su IaaS ed è stato creato pensando allo sviluppatore. Con la piattaforma PaaS, tutto è fornito tranne il codice dell’applicazione, gli utenti e i dati. In genere, quando si utilizza un PaaS, il fornitore si occupa della manutenzione del server applicativo, dei database e di tutti i componenti necessari del sistema operativo, dando il tempo di concentrarsi sul codice dell’applicazione. Poiché il fornitore gestisce quella piattaforma per voi, spesso è difficile aprire porte che non sono specificamente chiamate per il server applicativo, il runtime o il database in uso. PaaS fornisce anche funzionalità specifiche per le applicazioni, tra cui la possibilità di scalare il livello dell’applicazione in base alla richiesta dell’utente dell’applicazione. Nella maggior parte delle piattaforme, ciò avviene con un’interazione minima o nulla da parte dello sviluppatore.

Pro: PaaS fornisce un ambiente completo che viene gestito attivamente, permettendo di concentrarsi sul codice dell’applicazione.
Contro: Gli sviluppatori sono spesso limitati ad alcune versioni maggiori/minori dei pacchetti disponibili sul sistema, in modo che il fornitore possa gestire la piattaforma in modo efficace.

Software as a Service (Saas)

Con la piattaforma SaaS, tutto è a vostra disposizione, tranne gli utenti e i dati dell’applicazione. Il fornitore fornisce il codice dell’applicazione e lo sviluppatore ha un accesso limitato per modificare il software in uso. Questa non è tipicamente una scelta per l’implementazione di applicazioni personalizzate, in quanto il fornitore fornisce l’intero stack di software. I client di posta elettronica web ospitati e il software di automazione delle vendite ospitato sono due buoni esempi di come viene utilizzato il SaaS.

Pro: L’intero stack è fornito dal fornitore, ad eccezione degli utenti dell’applicazione e dei dati associati.
Contro: Si ha un controllo limitato sull’applicazione ospitata ed è spesso difficile integrare flussi di lavoro esterni nel sistema.

Quale scegliere?

Come sviluppatore di applicazioni, dovreste scegliere PaaS, perché l’infrastruttura è gestita per voi, in modo da potervi concentrare sul vostro codice applicativo.