Codering in de cloud

Dankzij het internet kunnen we overal werken waar we willen, waardoor we enorm flexibel zijn in het kiezen van waar we onszelf willen planten om de volgende geweldige app te bouwen. Niet gebonden zijn aan een bureau is voor velen een zegen geweest die het vermogen om in verschillende omgevingen te werken koesteren en inspiratie te putten uit hun omgeving. Maar voor het grootste deel moesten we een complete ontwikkelingsmachine hebben om dit mogelijk te maken. Wat als we de cloud zouden kunnen gebruiken als een ontwikkelomgeving zelf, waardoor we kunnen kiezen uit een verscheidenheid aan apparaten om hetzelfde te bereiken. Dat is wat we in dit artikel zullen onderzoeken.

Codering in de cloud

Zoals ik al zei, had je tot nu toe, of je nu op kantoor zat of in een coffeeshop zat, meestal een ontwikkelmachine nodig (meestal een MacBook, Windows of Linux-laptop) met de volgende zaken:

  • Een editor of IDE zoals Sublime, Vim of Visual Studio
  • Een lokale webserver zoals MAMP
  • Een app-server en framework (RoR, Python / Django, Node.js)
  • Git
  • LiveReload of CodeKit

En talloze andere hulpmiddelen waarop u vertrouwt om uw werk gedaan te krijgen. Dit vereist meestal dat je een krachtige machine hebt om mee te werken, zodat je al deze tools van stroom kunt voorzien en productief kunt zijn.

Maar omdat breedband steeds vaker voorkomt, worden de vereisten voor het hebben van zo'n krachtig apparaat steeds minder streng vanwege het aantal beschikbare cloudaanbiedingen voor ontwikkelaars. Diensten zoals Cloud9 IDE en Nitrous.io brengen real-world ontwikkelomgevingen naar de cloud en stellen ontwikkelaars in staat op afstand te werken en bieden meer flexibiliteit in termen van de apparaten die zij kiezen om mee te werken.

Deze services brengen niet alleen IDE's naar het web, ze bieden ook infrastructuur waarmee ontwikkelaars:

  • Volledige Git-integratie met services zoals Github en Bitbucket
  • Terminal toegang voor command line-functionaliteit
  • Gevirtualiseerde backends waarmee u instanties van RoR of Node.js kunt laten draaien
  • Implementatie bij productieservices zoals Heroku of Windows Azure
  • Teamsamenwerking

Kortom, deze diensten voegen toe in de gootsteen, waardoor het verplaatsen naar de cloud veel gemakkelijker en aantrekkelijker wordt. Laten we deze een beetje meer verkennen.


Cloud9 IDE

Mijn eerste blootstelling aan een echt cloud-gebaseerde IDE was Cloud9. Ze hadden een zeer eenvoudige online-editor met Github-integratie die in die tijd heel cool en duidelijk erg alpha was. Niettemin, het was ongelooflijk veelbelovend en samen met het werk dat Mozilla op Bespin deed, toonde het enorme mogelijkheden. Interessant genoeg werd het Mozilla Bespin-project later samengevoegd tot Ace, de editor van Cloud9, die sterk heeft bijgedragen aan de solide bewerkingservaring in de cloud-gebaseerde IDE.

C9 hanteert een zeer vergelijkbare prijsaanpak voor Github en biedt een mooie basislijn van functies via een freemium-model met meer onbeperkte functionaliteit voor $ 12 per maand. De verschillen komen neer op het type werkruimten dat u heeft, het aantal dat u kunt hebben en de functies die beschikbaar zijn in die werkruimten. Een werkruimte is waar uw project woont, inclusief uw projectbestanden en de hulpmiddelen en services die u mogelijk gebruikt (zoals Ruby of Python). Dus, afhankelijk van hoe geavanceerd je behoeften zijn, moet je misschien serieus nadenken over de premium-optie die je het volgende geeft:

  • Nog vijf privé-werkplekken
  • Onbeperkte FTP-werkruimten
  • Meer virtuele schijfruimte voor uw werkruimten
  • Volledige terminal- en opdrachtregeltoegang binnen uw werkruimten

De terminalopties zijn vooral belangrijk omdat C9 u toestaat om SSH en FTP naar uw eigen server te leiden, zodat u in principe hun service als alleen een cloud-IDE kunt gebruiken.

Het feit dat ze een freemium-optie bieden is geweldig om de banden te laten schoppen om te zien of het een dienst is waar je in kunt komen.

U hebt een aantal opties om in te loggen, waaronder een traditioneel e-mail / wachtwoordscenario of u kunt OAuth gebruiken via GitHub of BitBucket. Als u dit doet met de laatste twee, krijgt u toegang tot de archieven die u al hebt opgeslagen op die services, zoals hier wordt aangetoond:

Met de werkruimte kan ik een bestaande repo van de geïmporteerde lijst clonen, klonen vanuit een URL van mijn keuze of een nieuwe werkruimte maken op basis van een externe server (via SSH of FTP)

Ik besloot om mijn "authy" Git repo te klonen, die de voorbeeldbroncode was die ik schreef voor een artikel hier op Nettuts + over two-factor authenticatie. De app-server die ik daarvoor gebruikte, was ColdFusion en ik was best opgewonden dat de C9 de ColdFusion-bestanden correct herkende. Ik verwachtte het echt niet omdat CFML niet zo populair is als vroeger:

Merk op dat mijn hele projectstructuur intact is en dat ik volledige bewerkingsmogelijkheden heb voor mijn bestanden. Daarnaast heb ik ook toegang tot volledige terminalopdrachten:

Om dit huis iets meer te laten rijden, moet je in de volgende screenshot een wijziging aanbrengen gettoken.cfm door een opmerking toe te voegen. Intypen git status in het aansluitpaneel geeft de gewijzigde status van het bestand weer zoals u zou verwachten:

Volg daarna met git commit -a -m "Reactie toegevoegd" en git push werkt mijn repo dienovereenkomstig bij:

Een belangrijke functie die de C9 graag hype is de JavaScript-functie voor automatisch aanvullen en dat is logisch, omdat het zo'n onschatbare bron is in elke editor.

Ik weet dat er recentelijk veel discussie is geweest over het al dan niet automatisch aanvullen van je vermogen om taaleigenschappen te onthouden, maar met de toenemende complexiteit in bibliotheken, frameworks en tools, vind ik het persoonlijk enorm waardevol om een ​​beetje hulp te hebben bij het onthouden van dingen. Ik zou wel willen dat ze meer taalondersteuning boden.

Een van de grootste verkoopargumenten is de volwassenheid van de documentatie. Het behandelt alles over de service van het aanpassen van de IDE tot het integreren met databasesystemen en het implementeren van uw code. Er zijn een aantal videozelfstudies die u kunt gebruiken om vertrouwd te raken met de service, die een aanvulling vormen op de solide documentatie.

Als u ten slotte avontuurlijk bent, kunt u besluiten om uw eigen versie van Cloud9 IDE te gebruiken, aangezien het een open-sourceproject is waarvoor een licentie is verleend onder de GPL. De GitHub-pagina biedt goede instructies voor het installeren, zowel als * nix- als Windows-omgevingen, dus als je de kosten wilt laten schieten.


Nitrous.IO

Nitrous.IO (dat ik vanaf nu nog even aanduid als Nitrous) is een nieuwe optie die veel waardering heeft gekregen van ontwikkelaars zoals Yehuda Kathz van het Ember.js-project en Tobias Lutke, alumni van Rails Core. Het is nog steeds in Beta, maar werkt op dit moment indrukwekkend goed. Ze hebben gekozen voor het aanbieden van een volledige gevirtualiseerde stack die niet alleen een IDE omvat, maar ook spint wat ze 'boxes' noemen, die in feite je hele ontwikkel stack huisvesten. Dit omvat je keuze voor Ruby on Rails, Node.js, Python / Django of Go.

Net als bij C9, bieden ze basisdiensten waarmee je de banden omver kunt gooien. Dit wordt gedaan door u voldoende "nitreuze" punten (155) te geven om een ​​basisdoos te maken waarvan zij vinden dat deze voldoende is voor de meeste dagelijkse taken. Merk op in bovenstaande afbeelding dat de hoeveelheid geheugen en opslag die wordt geselecteerd van invloed is op het aantal nitreerpunten dat je nog over hebt. De standaard basisdoos geeft u vijf punten en net als veel VPS-hostingproviders kunt u dynamisch meer bronnen kiezen, afhankelijk van wat u nodig hebt. Ik ben er zeker van dat dit zal kosten als het uit de bèta is, maar ze maken het ongelooflijk eenvoudig om meer punten te verdienen zonder je portemonnee te openen. Via een aantal verschillende sociale contacten en taken kunt u meer punten verdienen voor uw boxfuncties:

Merk op dat door een aantal opties te kiezen, ik mijn N20-punten kon verhogen van 155 naar 180 en hoe meer vrienden je uitnodigt, hoe meer punten je verdient. Wees echter geen vervelende spammer!

Het instellen van een box is meer dan alleen het selecteren van bronnen. Een belangrijk onderdeel hiervan, in termen van prestaties, is om de dichtstbijzijnde geografische regio voor u te kiezen om de latentie te verminderen. Ze spelen hier tijdens hun introductievideo eigenlijk een rol in.

Nadat je je instellingen hebt gekozen, is het inrichten van de box ongelooflijk eenvoudig en heeft zelfs een coole geanimeerde progress-dial:

De IDE verschijnt dan en u bent klaar om aan uw werk te beginnen:

In tegenstelling tot C9 vond ik echter geen manier om de beschikbare Github-repos visueel te bekijken. Ik ging ervan uit dat ik met een verbinding met Github ook gemakkelijk een van mijn repos in mijn box kon klonen. Uiteindelijk heb ik deze instructies gevolgd om de door Nitrous gegenereerde SSH-sleutels aan mijn Github-account toe te voegen en vervolgens een van mijn repo's in de IDE te klonen:

Ik had ook de uploadfunctionaliteit kunnen gebruiken om mijn projectbestanden te uploaden:

Het lijkt me gewoon dat het verkrijgen van directe visuele toegang tot je GitHub-repo een prioriteit is waar het Nitrous-team naar moet kijken en iets waarvan ik denk dat het een pluspunt is voor C9.

Met de bestanden op zijn plaats, was het tijd om te zien hoe de IDE werkte en leek het in alle opzichten heel goed te werken, gemakkelijk verschillende bestandstypen te herkennen en syntax highlighting mogelijk te maken volgens het bestandstype:

In tegenstelling tot C9 was er echter geen automatisch aanvullen, dus u moet bepalen hoe waardevol een functie voor u is. Maar net als C9 zijn sneltoetsen voor algemene taken zoals het opslaan van een bestand of het sluiten van tabbladen allemaal aanwezig.

Voor diegenen die vroeger in de terminal werkten, vindt u Nitrous eenvoudig aan te passen. Eigenlijk moet je je er echt prettig bij voelen om volledig gebruik te maken van de service. Het installeren en starten van pakketten zoals MongoDB of Memcached gebeurt via de Nitrous-pakketbeheerder genaamd Onderdelen die, je raadt het al, is gebaseerd op de commandoregel. Installeren van MongoDB zou bijvoorbeeld zo gaan:

onderdelen installeren mongodb

Als je eraan gewend bent apt-get op Linux of brouw installeren in OS X zou deze syntaxis heel vertrouwd moeten zijn.

Het belangrijkste om te onthouden is dat de editor slechts een deel van de vergelijking is. Je voert in feite een complete machine hier in een webbrowser, dus als je je comfortabel voelt in een * nix-omgeving, krijg je absoluut een voordeel.

Zelfs als u uw site implementeert, moet u de opdrachtregel gebruiken. Er is hier geen knop "gewoon een druk op de knop". Nitrous integreert gemakkelijk met de volgende diensten:

  • Heroku
  • Google App Engine
  • Microsoft Azure
  • Nodejitsu

Dat biedt redelijk veel dekking voor verschillende grote cloudgebaseerde services. Ik was nieuwsgierig naar hun inzet van ondersteuning voor Amazon, maar kon daar niet veel informatie over vinden, althans niet genoeg om te begrijpen hoe ik het moest opzetten.

Met dat gezegd, hun documentatie is zeer goed georganiseerd en zal u gemakkelijk door de meeste taken begeleiden die u nodig heeft om met hun service aan de slag te gaan.


Naar Cloud of Not to Cloud

Beide services lijken aantrekkelijke functies te bieden die het gemakkelijk maken om over te schakelen naar een volledige cloud-gebaseerde ontwikkeling. Met zo veel goedkope apparaten die duidelijk zijn gericht op consumenten die gewoon constant willen worden verbonden, is het logisch dat deze service begint te evolueren en misschien meer grip krijgt.

Het is moeilijk om me voor te stellen mijn vertrouwde laptop op te geven met zijn i7-processor en snelle SSD voor een all-cloud dev-omgeving, maar ik kan het ook niet helemaal negeren. Elk groot softwarebedrijf waagt clouddiensten en ik weet zeker dat iedereen die dit leest dagelijks meerdere cloudservices gebruikt. Het lijkt een logische stap om te beginnen met het overwegen van codering in de cloud.