Codificarea în Cloud

Internetul ne-a permis să lucrăm oriunde dorim, oferindu-ne o flexibilitate extraordinară în alegerea locului unde ne-am dori să ne planificăm să construim următoarea aplicație minunată. A nu fi legat de un birou a fost o binecuvântare pentru mulți care prețuiesc abilitatea de a lucra în diverse medii și de a inspira din împrejurimile lor. Dar, în cea mai mare parte, am avut nevoie de o mașină de dezvoltare completă pentru a face acest lucru. Dacă am putea folosi norul ca mediu de dezvoltare, eliberându-ne să alegem dintr-o varietate de dispozitive pentru a realiza același lucru. Asta vom explora în acest articol.

Codificarea în Cloud

După cum am menționat, până acum, fie că erați într-un birou, fie că vă aflați la o cafenea, în general aveți nevoie de o mașină de dezvoltare (în majoritatea cazurilor un laptop MacBook, Windows sau Linux), care poate avea următoarele lucruri:

  • Un editor sau IDE ca Sublime, Vim sau Visual Studio
  • Un server web local ca MAMP
  • Un server de aplicații și un cadru (RoR, Python / Django, Node.js)
  • git
  • LiveReload sau CodeKit

Și nenumărate alte instrumente pe care vă bazați pentru a vă face munca. Acest lucru necesită în mod obișnuit să aveți o mașină cu care să lucrați, astfel încât să puteți alimenta toate aceste unelte și să fiți productivi.

Dar, în condițiile în care banda largă devine tot mai răspândită, cerințele pentru un astfel de dispozitiv puternic devin tot mai puțin stricte datorită numărului de oferte de nori disponibile dezvoltatorilor. Servicii cum ar fi Cloud9 IDE și Nitrous.io aduc medii de dezvoltare în lumea reală în cloud și permit dezvoltatorilor să lucreze la distanță și oferind o mai mare flexibilitate în ceea ce privește dispozitivele pe care aleg să le lucreze.

Aceste servicii nu numai că aduc IDE-uri pe web, ci oferă și infrastructură care le oferă dezvoltatorilor:

  • Completați integrarea Git cu servicii cum ar fi Github și Bitbucket
  • Acces terminal pentru funcționalitatea liniei de comandă
  • Backend-uri virtualizate care vă permit să rotiți instanțe ale RoR sau Node.js
  • Implementarea serviciilor de producție precum Heroku sau Windows Azure
  • Colaborarea echipei

Practic, aceste servicii se adaugă la chiuveta de bucătărie, făcând mutarea la nor mai ușoară și mai îndrăzneață. Să explorăm aceste lucruri mai mult.


Cloud9 IDE

Prima mea expunere la a real bazate pe cloud IDE a fost Cloud9. Au avut un editor foarte simplu on-line, cu integrare Github, care a fost foarte cool și evident foarte alfa la acea vreme. Cu toate acestea, a fost incredibil de promițătoare și împreună cu munca pe care Mozilla o făcea pe Bespin, a arătat un potențial extraordinar. Interesant, proiectul Mozilla Bespin a fost ulterior îmbinat în editorul Ace, Cloud9, care pare să fi contribuit în mare măsură la experiența solidă de editare în IDE bazat pe cloud.

C9 are o abordare foarte asemănătoare cu Github, oferind un set frumos de caracteristici de bază prin intermediul unui model freemium cu o funcționalitate nelimitată de 12 USD pe lună. Diferențele se reduc la tipul de spații de lucru pe care le aveți, numărul pe care îl aveți și caracteristicile disponibile în acele spații de lucru. Un spațiu de lucru este locul unde locuiește proiectul dvs., inclusiv fișierele de proiect și instrumentele și serviciile pe care le puteți utiliza (cum ar fi Ruby sau Python). Deci, în funcție de cât de sofisticate sunt nevoile dvs., poate fi necesar să luați serios în considerare opțiunea premium care vă oferă:

  • Mai multe spații de lucru private
  • Spații de lucru FTP nelimitate
  • Mai mult spațiu virtual pe disc pentru spațiile de lucru
  • Acces complet la terminale și linii de comandă în spațiile de lucru

Opțiunile terminalului sunt deosebit de importante, deoarece C9 vă permite să efectuați SSH și FTP în propriul server, practic permițându-vă să utilizați serviciul lor numai ca un IDE bazat pe cloud.

Faptul că acestea oferă o opțiune de freemium este excelentă pentru a lovi cu piciorul anvelopele pentru a vedea dacă este un serviciu în care poți intra.

Aveți câteva opțiuni pentru conectare, inclusiv un scenariu tradițional de e-mail / parolă sau puteți utiliza OAuth prin GitHub sau BitBucket. Făcând acest lucru cu ultimele două, vă oferă acces la depozitele pe care le-ați stocat deja pe aceste servicii, după cum se poate observa aici:

Spațiul de lucru mi-a permis fie să clonez un repo din lista importată, să clonez dintr-o adresă URL aleasă de mine sau să creez un nou spațiu de lucru bazat pe un server la distanță (prin SSH sau FTP)

Am decis să-mi clonez replica Git "authy", care a fost exemplul codului sursă pe care l-am scris pentru un articol aici pe Nettuts + privind autentificarea cu doi factori. Serverul de aplicații pe care l-am folosit pentru asta a fost ColdFusion și eram destul de încântat să văd că C9 a recunoscut corect fișierele ColdFusion. Sincer nu mă așteptam, deoarece CFML nu este la fel de popular ca atunci:

Observați că întreaga mea structură de proiect este adusă în stare intactă și am posibilități complete de editare în fișierele mele. În plus, am și acces la comenzi terminale complete:

Pentru a conduce acasă un pic mai mult, observați în următoarea captura de ecran la care am făcut o schimbare gettoken.cfm prin adăugarea unui comentariu. Introducerea git status în panoul terminal afișează starea modificată a fișierului la fel cum v-ați aștepta:

Apoi urmăriți-vă git commit -a -m "A fost adăugat comentariu" și git push actualizează repo-ul meu în consecință:

O caracteristica cheie pe care C9-ul ii place sa o imbunatateasca este capabilitatile de autocompletare JavaScript si are sens deoarece este o resursa atat de importanta in orice editor.

Știu că a apărut recent o mulțime de dezbateri despre faptul dacă autocompletarea împiedică sau nu capacitatea dvs. de a vă reaminti caracteristicile lingvistice, dar cu gradul de complexitate în creștere în biblioteci, cadre și instrumente, eu personal găsesc o valoare extraordinară în a vă ajuta să vă amintiți lucrurile. Îmi doresc însă să ofere mai multă asistență lingvistică.

Unul dintre cele mai importante puncte de vânzare este maturitatea documentației. Acesta acoperă totul despre acest serviciu de la personalizarea IDE la integrarea cu sistemele bazei de date și implementarea codului. Există o serie de tutoriale video pe care le puteți utiliza pentru a vă familiariza cu serviciul, care completează documentația solidă.

În cele din urmă, dacă sunteți aventuros, puteți decide să vă răsturnați propria versiune de Cloud9 IDE, deoarece este un proiect open-source licitat sub GPL. Pagina GitHub oferă instrucțiuni bune despre cum să o instalați, atât în ​​mediile * nix, cât și în Windows, deci dacă doriți să renunțați la cost,.


Nitrous.IO

Nitrous.IO (despre care se va referi acum ca Nitrous de acum încolo) este o nouă opțiune care a primit o mulțime de laude de la dezvoltatori precum Yehuda Kathz de la proiectul Ember.js și Tobias Lutke, absolvenții Rails Core. Este încă în Beta, dar funcționează impresionant de bine în acest moment. Ei au luat abordarea de a oferi un stiva completă virtualizată, care nu numai că cuprinde un IDE, dar, de asemenea, spionează ceea ce ei numesc "cutii", care practic găzduiesc întregul dvs. stiva de dezvoltare. Aceasta include alegerea dvs. Ruby on Rails, Node.js, Python / Django sau Go.

Similar cu C9, ele oferă servicii de bază care vă permit să loviți anvelopele în jur. Acest lucru se face prin oferirea de suficiente puncte "nitrous" (155) pentru a crea o cutie de bază pe care ei spun că ar trebui să fie suficientă pentru majoritatea sarcinilor de zi cu zi. Observați în imaginea de mai sus că cantitatea de memorie și spațiu de stocare selectat afectează cantitatea de puncte de azot pe care le-ați lăsat. Caseta de bază standard vă va lăsa cu cinci puncte și ca mulți furnizori de servicii de găzduire VPS, puteți alege în mod dinamic mai multe resurse în funcție de ceea ce aveți nevoie. Sunt sigur că acest lucru va veni la un cost odată ce nu este în versiune beta, dar ei fac incredibil de ușor să câștige mai multe puncte fără a vă deschide portofelul. Prin intermediul a câtorva conexiuni și sarcini sociale diferite, puteți câștiga mai multe puncte față de caracteristicile casetei dvs.:

Observați că, prin alegerea unor opțiuni, am reușit să-mi îmbunătățesc punctele N20 de la 155 la 180 și cu cât mai mulți prieteni ați invita la cele mai multe puncte pe care le câștigați. Doar nu fi un spammer enervant totuși!

Configurarea unei casete este totuși mai mult decât selectarea resurselor. O parte importantă a acestui aspect, în termeni de performanță, este alegerea celei mai apropiate regiuni geografice pentru a reduce latența. De fapt, aceștia se ocupă de acest lucru în timpul filmului introductiv.

După ce v-ați ales setările, asigurați-vă că caseta este incredibil de simplă și chiar are un cadran mișcător de progrese animat:

IDE-ul apare apoi și sunteți gata să vă începeți activitatea:

Spre deosebire de C9, nu am gasit nici o modalitate de a vedea vizual Gothub repos disponibile. Am presupus că conectarea cu Github mi-ar permite, de asemenea, să clonez cu ușurință unul din repo-urile mele în cutia mea. Am terminat urmând aceste instrucțiuni pentru a adăuga cheile SSH generate de Nitrous în contul meu Github și apoi chestii clonând unul dintre repo-urile mele în IDE:

De asemenea, am putut folosi funcția de încărcare pentru a încărca fișierele mele de proiect:

Mi se pare doar că obținerea accesului vizual direct la repo-ul dvs. GitHub este o caracteristică prioritară pe care trebuie să o privească echipa Nitrous și cred că este un plus pentru C9.

Cu fișierele în loc, a fost timpul să vedem cum funcționează IDE-ul și pentru toate intențiile păreau să funcționeze foarte bine, recunoscând cu ușurință diferite tipuri de fișiere și oferind evidențierea sintaxei în funcție de tipul de fișier:

Spre deosebire de C9, cu toate acestea, nu a existat nici o completare automată, astfel încât va trebui să determinați cât de valoroasă este o caracteristică pentru dvs. Dar, la fel ca C9, comenzile rapide de la tastatură pentru sarcini obișnuite, cum ar fi salvarea unui fișier sau închiderea filelor, sunt toate acolo.

Pentru cei care lucrează în terminal, veți găsi Nitrous ușor de adaptat. De fapt, va trebui cu adevărat să vă simțiți confortabil pentru a utiliza în întregime serviciul. Instalarea și pornirea pachetelor ca MongoDB sau Memcached se face prin intermediul managerului de pachete Nitrous numit Părți care, ați ghicit-o, se bazează pe linia de comandă. De exemplu, instalarea MongoDB ar merge așa:

piese de instalare mongodb

Dacă ești obișnuit apt-get pe Linux sau pe instalați instalarea pe OS X, această sintaxă ar trebui să fie foarte familiarizată.

Principalul lucru de reținut este că editorul este doar o parte a ecuației. În esență, rulați o mașină completă aici într-un browser web, astfel încât să fiți confortabil într-un mediu * nix vă va da cu siguranță un picior.

Chiar și implementarea site-ului dvs. va necesita utilizarea liniei de comandă. Nu există opțiunea "Apasă doar un buton" aici. Nitrous se integrează ușor cu următoarele servicii:

  • Heroku
  • Google App Engine
  • Microsoft Azure
  • Nodejitsu

Aceasta oferă o acoperire destul de bună pentru mai multe servicii de tip cloud. Am fost curios de sprijinul lor de implementare pentru Amazon, dar nu am putut găsi o mulțime de informații despre asta, cel puțin nu suficient pentru a putea înțelege cum să-l configurați.

Cu aceasta a spus că documentația lor este foarte bine organizată și vă va ghida cu ușurință prin majoritatea sarcinilor de care aveți nevoie pentru a obține și a alerga cu serviciul lor.


Pentru Cloud sau Nu pentru Cloud

Ambele servicii par să ofere caracteristici convingătoare care ar putea facilita trecerea la dezvoltarea bazată pe nor-uri pe bază de timp. Dispunând de atât de multe dispozitive cu costuri reduse care se adresează în mod clar consumatorilor care doresc să fie conectați tot timpul, este logic ca aceste servicii să înceapă să evolueze și, probabil, să obțină tracțiune.

Este greu să vă imaginați renunțarea la laptopul meu de încredere cu procesorul i7 și SSD-ul rapid pentru un mediu de tip all-cloud dev, dar nu îl pot respinge. Fiecare companie de software majoră oferă servicii cloud și sunt sigur că fiecare dintre dvs. care citește acest lucru folosește zilnic mai multe servicii de cloud. Se pare că este un pas logic să începeți să considerați codificarea în nor.

Cod