Olen kehittäjä ja työskentelen päivittäin integroidussa kehitysympäristössä (IDE: Integrated Development Enviroment), kuten Intellij IDEA tai Eclipse. Nämä IDE: t ovat työpöytäsovelluksia. Google Documentsin tulon jälkeen olen nähnyt yhä useamman siirtävän työnsä Word- tai Excel-työpöytäversioista pilveen käyttämällä online-vastaavaa tekstinkäsittelyohjelmaa tai taulukkolaskentaohjelmaa.
On ilmeisiä syitä käyttää pilviä työsi tallentamiseen. Nykyään joillakin verkkosovelluksilla ei ole perinteisten työpöytäyrityssovellusten toiminnallisuuteen liittyviä haittoja. Sisältö on käytettävissä kaikkialla, missä on verkkoselain, ja nykyään sitä tapahtuu melkein kaikkialla. Yhteistyö ja jakaminen on helppoa, ja tiedostojen menetys on vähemmän todennäköistä.
Valitettavasti nämä pilven edut eivät ole yhtä yleisiä ohjelmistokehityksen maailmassa kuin yrityssovelluksissa. On olemassa joitain yrityksiä tarjota online-IDE, mutta ne eivät ole lähellä perinteisiä IDE: itä.
Se on paradoksaalista; Vaikka olemme edelleen sidoksissa työpöydällemme päivittäistä aikataulutusta varten, ohjelmisto on nyt luotu useille palvelimille. Kehittäjien on työskenneltävä asioiden kanssa, joita he eivät enää voi pitää tietokoneillaan. Tietenkään kannettavat tietokoneet eivät enää lisää niiden prosessointitehoa; Yli 16 Gt RAM-muistia kannettavassa tietokoneessa on harvinaista ja kallista, puhumattakaan siitä, että uudemmilla laitteilla, kuten tableteilla, on vielä vähemmän muistia.
Vaikka perinteisiä työpöytäsovelluksia ei silti ole mahdollista korvata ohjelmistokehityksessä, se on mahdollista siirrä koko kehitystyöpöytäsi pilveen . Sinä päivänä kun löysin sen, ei enää tarvinnut pitää kaikkia ohjelmistoja kannettavalla tietokoneellani, ja kun huomasin päätelaitteiden ja VNC: n web-version saatavuuden, muutin kaiken pilveen. Lopulta kehitin rakennuspaketin luomaan kyseisen ympäristön automaattisesti.
Tässä artikkelissa esitän joukon komentosarjoja pilvipohjaisen kehitysympäristön rakentamiseksi Tikapuut ja big data -sovellukset, teloitukset Dockerilla Amazon AWS -palvelussa ja verkkopohjaisen työpöydän pakkaaminen palveluina IntelliJ IDE, Spark, Hadoop ja Zeppelin sekä komentorivityökalut, kuten verkkopohjainen SSH, SBT ja Ammonite. Sarja on vapaasti saatavilla osoitteessa GitHub , Kuvaan myös menettelyn, jolla sitä käytetään instanssisi rakentamiseen. Voit rakentaa ympäristöäsi ja mukauttaa sitä omiin tarpeisiisi. Sen saaminen valmiiksi lähtöön ei saisi kestää yli 10 minuuttia.
Päätavoitteeni paketin kehittämisessä oli, että kehitysympäristöni olisi jotain, jonka voisin yksinkertaisesti aktivoida kaikilla palveluilla ja palvelimilla, joiden kanssa työskentelen, ja sitten tuhota ne, kun niitä ei enää tarvita. Tämä on tärkeää, varsinkin kun työskentelet eri projektien parissa.
Ihanteellisen pilvipohjaisen ympäristöni pitäisi:
Hyödyntämällä moderneja pilviohjelmistoja ja infrastruktuuria, nykyaikaisten hakukoneiden voimaa, erilaista laajakaistan saatavuutta ja korvaamatonta Dockeria, loin kehitysympäristön Scalalle ja big data -kehitys joka korvasi kehityskannettavani lopullisesti.
Tällä hetkellä voin työskennellä milloin tahansa, olipa se sitten MacBook Pro, Surface Tablet tai jopa iPad (näppäimistöllä), vaikka myönnän, että jälkimmäinen vaihtoehto ei ole ihanteellinen. Kaikki nämä laitteet ovat pohjimmiltaan asiakkaita; työpöytä ja kaikki palvelut ovat pilvessä.
Nykyinen ympäristöni rakennetaan seuraavilla verkkopalveluilla:
Käytän myös pari ilmaista palvelua, kuten DuckDns IP-osoitteille ja Salataan saadaksesi ilmaisen SSL-varmenteen.
Tällä hetkellä minulla on tässä ympäristössä:
Mutta mikä tärkeintä, verkkoon pääsy on salattu HTTPS: llä sekä verkkopohjaiselle VNC: lle että SSH: lle, ja tietojen häviämisen välttämiseksi on olemassa monia hengenpelastajia, mikä on tietysti tärkeää, kun et 'omista' sisältöä. fyysinen kiintolevy. Muista, että kopio kaikista työistäsi tietokoneellasi on automaattista ja nopeaa. Jos menetät kaiken, koska joku on varastanut salasanasi, sinulla on silti kopio tietokoneellasi, kunhan olet määrittänyt kaiken oikein.
Aloitetaan nyt kuvaamaan, miten ympäristö toimii. Kun aloitan työn aamulla, menen ensin Amazon Web Services -konsoliin, jossa näen kaikki instanssini. Yleensä minulla on useita kehitysprojekteja, jotka on määritetty eri projekteille, ja pidän niitä, joita ei ole käytetty, pois päältä säästääksesi laskuja. Loppujen lopuksi voin työskennellä vain yhdessä projektissa kerrallaan. (No, joskus työskentelen kahdessa).
Joten valitsen haluamasi ilmentymän, käynnistän sen, odotan hetken tai menen kupilliseen kahvia. Tietokoneen käynnistämiseen ei ole paljon eroa. Yleensä kestää muutaman sekunnin, ennen kuin ilmentymä alkaa toimia. Kun näen vihreän kuvakkeen, avaan hakukoneen ja menen tunnettuun URL-osoitteeseen: https://msciab.duckdns.org/vnc.html
Muista, että tämä on URL-osoitteeni. kun luot paketin, luot oman URL-osoitteen.
Koska AWS määrittää kullekin koneelle uuden IP-osoitteen käynnistyksen yhteydessä, asetin dynaamisen DNS-palvelun, joten voit käyttää aina samaa URL-osoitetta palvelimesi käyttämiseen, vaikka pysäytät ja käynnistät sen uudelleen. Voit myös merkitä sen hakukoneellesi. Lisäksi käytän HTTPS: ää ja kelvollisia avaimia suojellakseni työni mahdollisimman paljon uteliailta katseilta, jos minun on käsiteltävä salasanoja ja muita arkaluontoisia tietoja.
Lataamisen jälkeen järjestelmä toivottaa sinut tervetulleeksi NoVNC, VNC -verkkoyhteisöön. Kirjaudu sisään ja työpöytä tulee näkyviin. Käytän työpöytää hyvin vähän, tarkoituksella, vain valikko sovelluksilla ja ainoa ylellisyyteni on virtuaalinen työpöytä (koska avaan monia ikkunoita kehittäessäni). Postin osalta olen edelleen riippuvainen muista sovelluksista, nykyään enimmäkseen muista hakukoneen välilehdistä.
Minulla on mitä tarvitsen virtuaalikoneessa kehittääkseni big data -sovelluksia. Ensinnäkin on olemassa IDE. Rakennusaikana käytän IntelliJ-versiota Ideayhteisö . Lisäksi siellä on SBT-rakennustyökalu ja Scala RELP: n Amonnite.
Tämän ympäristön pääpiirteet ovat kuitenkin palvelut, jotka on toteutettu säilöinä samassa virtuaalikoneessa. Erityisesti minulla on: * Zeppelin, verkkokirja, joka käyttää Scala-koodia tällä hetkellä ja suorittaa tietojen analysointia (http://zeppelin:8080
) * Spark Job Server, suorittamaan ja toteuttamaan kipinä työpaikkoja Rest-käyttöliittymällä (http://sparkjobserver:8080
). * Hadoop-ilmentymä tietojen tallentamiseen ja noutamiseen HDFS: stä (http://hadoop:50070
).
Huomaa, että nämä URL-osoitteet ovat kiinteitä, mutta ne ovat käytettävissä virtuaalisessa ympäristössä. Näet heidän verkkoliittymänsä seuraavassa kuvakaappauksessa.
Jokainen palvelu toimii erillisessä Docker-kontissa. Ajattelematta tätä kolmena eri palvelimena virtuaalikoneessasi puhumatta kovin teknisesti. Dockerin käytön viehätys on, että voit lisätä palveluja ja jopa lisätä kaksi tai kolme virtuaalikonetta. Käyttämällä Amazon-astioita voit helposti säätää ympäristöäsi.
Viimeisenä mutta ei vähäisimpänä, sinulla on käytettävissä verkkopääte. Syötä vain URL-osoitteesi HTTPS: llä ja sinut tervehditään verkkosivulle päätelaitteella.
Yllä olevassa kuvakaappauksessa näet luettelon säilöistä, jotka ovat kolme palvelinta ja työpöytä. Tämä komentorivi Kuori Se antaa sinulle pääsyn virtuaalikoneeseen, jossa säilöt sijaitsevat, mikä antaa sinun hallita niitä. On kuin palvelimesi olisivat 'Matrixissa' (käytännössä konttien sisällä), mutta tämä Kuori se antaa sinulle mahdollisuuden päästä matriisin ulkopuolelle palvelinten ja työpöydän hallintaan. Täältä voit käynnistää säilöt uudelleen, syöttää niiden tiedostojärjestelmät ja tehdä muita Dockerin sallimia käsittelyjä. En aio keskustella Dockerista yksityiskohtaisesti tässä vaiheessa, mutta siinä on paljon asiakirjoja Dockerin verkkosivusto .
Pidätkö tästä toistaiseksi ja haluatko esimerkkisi? Se on helppoa ja halpaa. Voit hankkia sen Amazon Web Services -palvelun virtuaalikoneen ja tallennustilan hintaan. Paketti nykyisessä kokoonpanossa vaatii 4 Gt RAM-muistia voidakseen käyttää kaikkia palveluja. Jos olet varovainen ja käytät virtuaalikonetta vain silloin, kun sitä tarvitset, ja työskentelet esimerkiksi 160 tuntia kuukaudessa, virtuaalikone nykyisiin hintoihin maksaa sinulle 160 x 0,052 dollaria tai 8 dollaria kuukaudessa. Sinun on lisättävä tallennuskustannukset. Käytän noin 30 gb, mutta kaikki voidaan pitää yhdessä alle 10 dollarilla.
Tämä ei kuitenkaan sisällä (Pro) Dropbox-tilin (mahdollisesti) kustannuksia, jos haluat varmuuskopioida yli 2 gigatavua koodia. Tämä maksaa 15 dollaria enemmän kuukaudessa, mutta tarjoaa tärkeän tietoturvan. Tarvitset myös yksityisen arkiston, olipa se sitten maksettu GitHub tai jokin muu palvelu, kuten Bitbucket, joka tarjoaa ilmaisia yksityisiä arkistoja.
Haluan korostaa, että jos käytät sitä vain silloin, kun tarvitset sitä, se on halvempaa kuin oma palvelin. Kyllä, kaikki tässä mainitut voidaan asentaa fyysiselle palvelimelle, mutta koska työskentelen isojen tietojen kanssa, tarvitsen paljon AWS-palveluita, joten mielestäni on järkevää pitää kaikki samassa paikassa.
Katsotaanpa, kuinka tehdä koko asennus.
Ennen kuin aloitat virtuaalikoneen rakentamisen, sinun on rekisteröidyttävä seuraaviin neljään palveluun:
Ainoa näistä, jossa on tarpeen käyttää luottokorttiasi, on Amazon Web Services -palvelussa. DuckDns on täysin ilmainen, kun taas DropBox antaa sinulle 2 gt ilmaista tallennustilaa, mikä voi riittää moniin tehtäviin. Let’s Encrypt on myös ilmainen ja sitä käytetään sisäisesti, kun rakennat kuvaa varmenteen allekirjoittamiseen. Tämän lisäksi suosittelen myös arkiston isännöintipalvelua, kuten GitHub tai Bitbucket, mutta jos haluat tallentaa koodisi, sitä ei tarvitse asentaa.
Aloita siirtymällä kohtaan GitHub BigDataDevKit -tietovarasto .
Selaa sivua alaspäin ja kopioi kuvassa näkyvä komentosarja haluamaasi tekstieditoriin:
Tätä komentosarjaa tarvitaan kuvan parantamiseksi. Sinun on muutettava sitä ja annettava parametreille joitain arvoja. Vaihda teksti huolellisesti sitaattien sisällä. Huomaa, että salasanassa ei voi käyttää merkkejä, kuten lainausmerkkiä, vinoviivaa tai dollarin symbolia, ellet aseta niitä nimittäminen . Tämä ongelma koskee vain salasanaa. Jos haluat olla turvallinen, vältä lainauksia, dollarin merkkejä tai taaksepäin viiltoja.
Parametri PASSWORD
Se on salasana, jonka valitset syöttääksesi virtuaalikoneen verkkoliitännän kautta. Parametri EMAIL
Se on sähköpostiosoitteesi ja sitä käytetään, kun rekisteröit SSL-varmenteen. Sinua pyydetään antamaan sähköpostiosoitteesi, mikä on ainoa vaatimus SSL-varmenteen hankkimiseksi Let’s Encrypt -sivustolta.
Saadaksesi arvot TOKEN
ja HOST
, siirry DuckDNS-sivustoon ja kirjaudu sisään. Sinun on valittava isäntänimi Uusi.
Katso kuvasta nähdäksesi, mihin sinun pitäisi kopioida tunnus ja mihin sinun pitäisi lisätä isäntänimi . Sinun on napsautettava Lisää verkkotunnus -painiketta varataksesi isäntänimi .
Olettaen, että sinulla on kaikki parametrit ja olet muokannut komentosarjaa, olet valmis käynnistämään ilmentymän. Siirry Amazon Web Services -hallintaliittymään, siirry EC2-instanssit-paneeliin ja napsauta Käynnistä instanssi.
Ensimmäisessä näytössä aiot valita kuvan. Skripti on rakennettu Amazonin Linuxin ympärille, eikä muita vaihtoehtoja ole käytettävissä. Valitse Linux Amazonista, se on ensimmäinen vaihtoehto QuickStart-luettelossa.
Valitse toisesta näytöstä ilmentymän tyyppi. Käynnissä olevan ohjelmiston koon vuoksi palveluja on useita ja tarvitset vähintään 4 gigatavua muistia, joten suosittelen, että valitset ilmentymän t2.medium . Voit pienentää sen käyttämällä t2.pieni jos sammutat joitain palveluita tai jopa mikro jos haluat vain työpöydän.
Napsauta kolmannella näytöllä 'Lisätiedot' ja liitä edellisessä vaiheessa määrittämäsi komentosarja. Suosittelen myös, että asetat suojan ajalta, jotta vahingossa tapahtuvan irtisanomisen tapahtuessa et menetä kaikkea työtäsi.
Seuraava vaihe on määrittää tallennustila. Instanssin standardi on 8 Gt, mikä ei riitä sisällyttämään kaikkia rakennettavia kuvia. Suosittelen sen lisäämistä 20 gigatavuun. Samoin, vaikka sitä ei tarvita, ehdotan toista vähintään 10 gigatavun estolaitetta. Komentosarja yhdistää toisen estolaitteen datatiedostona. Voit ottaa kuvan sen sisällöstä, viimeistellä instanssin, luoda sen sitten uudelleen sisällön kuvan avulla ja palauttaa kaikki työt. Mukautettu estolaite ei myöskään menetetä, kun lopetat ilmentymän, joten sinulla on kaksinkertainen suoja tahattomalta tietojen katoamiselta. Voit lisätä tietoturvaa edelleen varmuuskopioimalla tietosi automaattisesti Dropboxin avulla.
Viides vaihe on nimetä ilmentymä. Valitse haluamasi. Kuudes vaihe tarjoaa tavan määrittää kulunvalvontapalkki. Oletuksena vain SSH on käytettävissä, mutta tarvitset myös HTTPS: n. Voit avata HTTPS: n maailmalle, mutta on parempi, jos vain IP-osoitteesi estää muita tulemasta työpöydällesi ja kuori , vaikka se on edelleen suojattu salasanalla.
Kun olet tehnyt tämän viimeisen määrityksen, voit käynnistää ilmentymän. Huomaat, että alustaminen voi kestää muutaman minuutin ensimmäisen kerran käynnistyskomentosarjan suorittamisen jälkeen, ja se tekee myös joitain pitkiä testejä, kuten HTTPS-varmenteen luominen Let’s Encrypt -sovelluksella.
Lopulta, kun näet hallintakonsolin 'käynnissä' sitoutumisella ja että se ei enää 'alusta', olet valmis menemään.
Jos kaikki parametrit ovat oikeita, voit siirtyä kohtaan https://YOURHOST.duckdns.org
Korvataan YOURHOST
valitsemallasi isäntänimellä, mutta älä unohda, että se on HTTPS-sivusto, ei HTTP, joten yhteys palvelimeen on salattu, joten sinun on kirjoitettava https//
URL-osoitteessa. Sivusto esittelee myös kelvollisen varmenteen Let’s Encryptille. Jos varmenteen hankinnassa on ongelmia, alustuskomentosarja luo itse allekirjoitetun varmenteen. Voit silti muodostaa yhteyden salattuun yhteyteen, mutta hakukone varoittaa, että se on tuntematon sivusto ja suojaamattomat yhteydet. Sen ei pitäisi tapahtua, mutta sitä ei voi koskaan tietää.
Olettaen, että kaikki toimii, voit siirtyä Butterfly-verkkopäätteeseen. Voit kirjautua sisään käyttäjänimellä app
ja salasana, jota käytit komentosarjassa asennuksen yhteydessä.
Kun olet kirjautunut sisään, sinulla on virtaa käyttävä virtuaalikone, joka sisältää myös Dockerin ja muita ilmaisohjelmia, kuten Nginx Frontend, Git ja Butterfly Web Terminal. Nyt voit suorittaa asennuksen loppuun rakentamalla Docker-kuvat kehitysympäristöäsi varten.
Syötä sitten seuraavat komennot:
git clone https://github.com/sciabarra/BigDataDevKit cd BigDataDevKit sh build.sh
Viimeinen komento pyytää sinua syöttämään salasanan päästäksesi työpöydälle. Kun tämä on tehty, se alkaa rakentaa kuvia. Huomaa, että rakentaminen kestää noin 10 minuuttia, mutta näet mitä tapahtuu, koska kaikki näkyy näytöllä.
Kun rakennus on valmis, voit myös asentaa Dropboxin seuraavalla komennolla:
/app/.dropbox-dist/dropboxd
Järjestelmä näyttää linkin, jota sinun on napsautettava aktivoidaksesi Dropbox. Sinun on annettava Dropbox ja olet valmis. Aina, mitä laitat Dropbox-kansioon, synkronoidaan automaattisesti kaikkien Dropbox-esiintymiesi kanssa.
Kun olet valmis, voit käynnistää virtuaalikoneen uudelleen ja kirjoittaa ympäristösi URL-osoitteeseen https://YOURHOST.dyndns.org/vnc.html
.
Voit pysäyttää koneesi ja käynnistää sen uudelleen, kun jatkat työtä. Pääsy-URL pysyy samana. Tällä tavoin maksat vain käyttämästäsi ajasta sekä kuukausittaisen lisämaksun käytetystä tallennustilasta.
Seuraava keskustelu vaatii jonkin verran tietoa Dockerin ja Amazonin toiminnasta. Jos et halua ymmärtää yksityiskohtia, pidä mielessä seuraava sääntö: Virtuaalikoneessa on käytettävissä oleva kansio /app/Dropbox
mitä tahansa lisäämäsi /app/Dropbox
se on säilynyt, ja kaikki muu on kertakäyttöistä ja voi kadota. Paranna tietoturvaa tallentamalla arvokoodisi järjestelmän ohjausversioon.
Nyt, jos haluat ymmärtää tämän, jatka lukemista. Jos noudatit ohjeita virtuaalikoneen luomisessa, se on suojattu irtisanomiselta, joten et voi vahingossa tuhota sitä. Jos päätät lopettaa sen tarkoituksella, päätuote tuhoutuu. Kaikki Docker-kuvat menetetään, mukaan lukien kaikki tekemäsi muutokset.
Koska /app/Dropbox
se on asennettu Docker-tilavuutena kontteihin, se ei ole osa Docker-kuvia. Virtuaalikoneessa kansio /app
se on asennettu luomallesi Amazon-levylle, jota ei myöskään ole tuhottu, vaikka lopetatkin virtuaalikoneen erikseen. Voit poistaa äänenvoimakkuuden poistamalla sen erikseen.
Älä sekoita Docker-määriä, jotka ovat loogisia Docker-kokonaisuuksia, Amazon Volumeen, jotka ovat jonkin verran fyysisiä kokonaisuuksia. Tapahtuu, että Docker-äänenvoimakkuus /app/Dropbox
on Amazonin äänenvoimakkuuden sisällä /app
.
Amazon-äänenvoimakkuutta ei tuhota automaattisesti, kun lopetat virtuaalikoneen, joten kaikki sisällä oleva säilyy, kunnes tuhoat nimenomaisesti äänenvoimakkuuden. Lisäksi mitä laitat Docker-tilavuuteen, se säilytetään säiliön ulkopuolella, joten se ei tuhoutu, kun säiliö tuhoutuu. Jos otit Dropboxin käyttöön suositusten mukaisesti, kaikki sisältösi kopioidaan Dropbox-palvelimille ja kiintolevylle, jos synkronoit Dropboxin tietokoneesi kanssa. On myös suositeltavaa, että lähdekoodi tallennetaan versionhallintajärjestelmään.
Joten, jos laitat asiat versionhallintajärjestelmään Dropbox-kansioon, tietojen häviämisen on tapahduttava:
Toivon tietojesi riittävän suojatun.
Pidän virtuaalikoneen kutakin projektia varten, ja kun se on valmis, pidän käyttämättömät virtuaalikoneet sammutettuna. Tietenkin minulla on kaikki koodini GitHubissa ja tallennettu Dropboxiin. Kun lopetan projektin parissa työskentelyn, otan valokuvan Amazon Web Services -blokista, ennen kuin poistan virtuaalikoneen kokonaan. Tällä tavalla, kun palaan projektiin, esimerkiksi ylläpitoa varten, minun tarvitsee vain käynnistää uusi virtuaalikone lohkokuvan avulla. Kaikki tietoni palautetaan sivustollesi ja voin jatkaa työtäni.
Ensinnäkin, jos sinulla on internetyhteys ilman välityspalvelinta, voit käyttää alkuperäisiä SSH- ja VNC-asiakkaita. Suora SSH-yhteys on tärkeä, jos haluat kopioida tiedostoja virtuaalikoneeseen ja ulos siitä. Tiedostojen jakamisessa kannattaa kuitenkin harkita Dropboxia yksinkertaisempana vaihtoehtona.
VNC-verkkoyhteys on korvaamaton, mutta se voi joskus olla hitaampaa kuin natiivi asiakas. Sinulla on pääsy virtuaalikoneen VNC-palvelimeen porttia 5900 käyttäen. Sinun on avattava se nimenomaan, koska se sulkeutuu oletusarvoisesti. Suosittelen, että avaat sen vain IP-osoitteellesi, koska Internet on täynnä 'botteja', jotka etsivät Internetistä palvelujen liittymistä, ja VNC on näiden bottien tavallinen kohde.
Tässä artikkelissa kerrotaan, kuinka voit hyödyntää modernia pilvitekniikkaa tehokkaan kehitysympäristön toteuttamiseksi. Vaikka pilvikone ei välttämättä ole täydellinen korvaus työtietokoneellesi tai kannettavallesi, se on tarpeeksi hyvä tekemään kehitystyötä, kun IDE: n käyttö on tärkeää. Kokemukseni mukaan nykyisillä Internet-yhteyksillä se on riittävän nopea toimimaan.
Pilvessä ollessa pääsy palvelimelle ja käsittely on nopeampaa kuin silloin, kun niitä käytetään paikallisesti. Voit lisätä (tai vähentää) muistia, aloittaa uuden ympäristön, luoda kuvan ja niin edelleen. Sinulla on dekantteri käden ulottuvilla, ja kun työskentelet isojen dataprojektien kanssa, tarvitset vankkoja palveluita ja paljon tilaa. Sitä pilvi tarjoaa.