La prima cosa che tutti noi dev impariamo, è che gli strumenti contano. Non basterà certo un Notepad.exe a risolvere il problema dell’editor. Un editor tosto sicuramente ci fa fare un passo dal punto di vista della produttività: combinare e gestire le versioni, confrontare file, cercare le dipendenze nel progetto. Personalmente tutte cose che mi hanno fatto perdere, nel corso degli anni, ore e ore di tempo che avrei potuto dedicare all’unica cosa che conta, il codice.
AWS ha presentato Cloud9, un IDE pensato per scrivere, compilare e fare il debug del codice in santa pace, tutto attraverso il browser. Auto-completamento e supporto per i linguaggi più diffusi (JS, Python, PHP, etc.) sono già inclusi, così si perde ancora meno tempo. Basato su Ace editor, integra parecchi strumenti, come l’esecuzione del codice su un qualsiasi server Linux, la gestione del pair programming o l’esecuzione di azioni serverless su AWS Lambda, che approfondiremo di seguito.
Editing
Per quanto riguarda la cosa più importante, ovvero scrivere codice, Cloud9 si basa su ottime fondamenta, ovvero quelle di Ace editor. Sotto questo aspetto, quindi, risulta molto completo, integrando funzioni di auto-completamento, nesting del codice, pannelli affiancati, integrazione con il versioning Git, cursori e selezioni multiple, shortcut da tastiera e – molto gradita – la possibilità di importare temi da Sublimetext o Textmate (o sceglierne uno tra quelli disponibili). La mia personale paura, trattandosi di un editor browser-based è quella della quantità di codice gestibile senza lag avvertibile: gli ingegneri AWS garantiscono la massima fluidità anche con 100.000+ righe di codice, quindi nessun problema.
Molto interessante è la possibilità offerta di integrare il servizio con un “sistema di debugging vero” e quindi non la semplice sintassi, ovvero la possibilità di lanciare gli script su un istanza EC2 e visualizzare subito l’output.
Collaborazione
Il capitolo relativo alla collaborazione è molto ricco. Cloud9 permette di invitare a collaborare altri utenti IAM e condividere il codice con loro. Possiamo subito visualizzare il codice sul quale stanno lavorando, sapere dov’è il loro cursore e condividere una shell.
Ah, è possibile anche chattare! Questa è davvero utile, soprattuto se la uniamo al poter dare i permessi di lettura/scritta ad ogni singolo utente in real-time. Noob avvisati.
Cominciare ad usare AWS Cloud9
Passiamo alla voce costi. L’editor è completamente gratuito, ma dovremmo lanciarlo su un istanza AWS EC2. Pertanto, pagheremo soltanto le risorse CPU e storage assegnate, potendo però sfruttare un meccanismo di auto-ibernazione dell’istanza dopo un tot minuti di inutilizzo, ottimizzando così i costi totali di gestione. Una seconda scelta è quella di creare un accesso SSH ad una macchina già esistente, anche non ospitata su AWS. Appena creiamo un nuovo environment Cloud9, l’interfaccia ci guiderà attraverso queste due scelte:
Sviluppo serverless con Cloud9
Direttamente dall’editor, potremo accedere alle funzioni AWS Lambda create in precedenza in aggiunta a funzioni pre-esistenti, ed importarle facilmente nel nostro workspace per poterle modificare o lanciare localmente. Naturalmente possiamo crearne di nuove, altrimenti a che servirebbe? Lanciando una funzione Lambda potremmo visualizzare subito l’output.
Cloud9 e AWS Codestar
Se abbiamo già configurato in produzione una toolchain con AWS Codestar per la distribuzione delle release (e magari altri servizi come CodeCommit, CodeBuild, etc.) possiamo, grazie a Cloud9, integrare l’ambiente di scrittura del codice in questo flusso.