Olen arendaja ja töötan iga päev integreeritud arenduskeskkonnas (IDE: Integrated Development Enviroment), näiteks Intellij IDEA või Eclipse. Need IDE-d on töölauarakendused. Alates Google Documents'i tulekust olen näinud üha enam inimesi, kes viivad oma töö Wordi või Exceli töölauaversioonidelt pilve, kasutades tekstitöötlusprogrammi või arvutustabeli rakenduse veebivastet.
Tööde salvestamiseks on ilmselged põhjused pilve kasutamiseks. Tänapäeval ei ole mõnel veebirakendusel võrreldes tavapäraste töölauaärirakendustega funktsionaalsuse poolest miinuseid. Sisu on saadaval kõikjal, kus on veebibrauser, ja tänapäeval juhtub seda peaaegu kõikjal. Koostöö ja jagamine on lihtne ning failikadu on vähem tõenäoline.
Kahjuks pole need pilve eelised tarkvaraarenduse maailmas nii levinud kui ärirakenduste puhul. On olemas katseid pakkuda veebipõhist IDE-d, kuid need pole ligilähedased traditsioonilistele IDE-dele.
See on paradoksaalne; kui igapäevase sõiduplaani koostamiseks oleme endiselt laua taga seotud, on tarkvara nüüd loodud mitmes serveris. Arendajad peavad töötama asjadega, mida nad ei saa enam oma arvutis hoida. Muidugi ei suurenda sülearvutid enam oma töötlemisvõimsust; Kui sülearvutis on rohkem kui 16 GB RAM-i, on see haruldane ja kallis, rääkimata sellest, et uuematel vidinatel, näiteks tahvelarvutitel, on veelgi vähem mälu.
Kuid isegi kui klassikalisi töölauarakendusi pole tarkvaraarenduse jaoks veel võimalik asendada, on see siiski võimalik teisaldage kogu oma arenduslaua pilve . Päeval, kui selle avastasin, ei olnud enam vaja kogu oma tarkvara sülearvutis hoida ning kui märkasin terminalide ja VNC veebiversiooni kättesaadavust, kolisin kõik pilve. Lõpuks töötasin selle keskkonna loomiseks välja ehituskomplekti.
Selles artiklis tutvustan skriptide komplekti, mille jaoks pilvepõhine arenduskeskkond luua Redel ja suurandmete rakendused, hukkamised Dockeriga Amazon AWS-is ja veebile juurdepääsetava töölaua pakkimine teenustena IntelliJ IDE, Spark, Hadoop ja Zeppelin ning käsurea tööriistad nagu veebipõhised SSH, SBT ja Ammonite. Komplekt on vabalt saadaval aadressil GitHub , Kirjeldan ka protseduuri, kuidas seda teie eksemplari koostamiseks kasutada. Saate luua oma keskkonna ja kohandada seda vastavalt oma konkreetsetele vajadustele. Selle valmisolekuks ei tohiks kuluda rohkem kui 10 minutit.
Minu peamine eesmärk komplekti väljatöötamisel oli see, et minu arenduskeskkond peaks olema midagi sellist, mida saaksin lihtsalt aktiveerida kõigi teenuste ja serveritega, millega töötan, ning seejärel need hävitada, kui neid enam vaja pole. See on oluline, eriti kui töötate erinevate projektidega.
Minu ideaalne pilvepõhine keskkond peaks:
Kasutades kaasaegset pilvetarkvara ja infrastruktuuri, kaasaegsete otsingumootorite jõudu, lairiba mitmekesist kättesaadavust ja hindamatut Dockerit, lõin Scalale arenduskeskkonna ja suurandmete arendamine see asendas minu arendus sülearvuti lõplikult.
Praegu võin töötada igal ajal, olgu see siis MacBook Pro, Surface Tablet või isegi iPad (klaviatuuriga), kuigi möönan, et viimane variant pole ideaalne. Kõik need seadmed on põhimõtteliselt kliendid; töölaud ja kõik teenused on pilves.
Minu praegune keskkond on üles ehitatud järgmiste veebiteenuste abil:
Kasutan ka paari tasuta teenust, näiteks DuckDns IP-aadresside jaoks ja Krüpteerime tasuta SSL-sertifikaadi saamiseks.
Praegu on mul selles keskkonnas:
Kuid mis kõige tähtsam, veebijuurdepääs on nii veebipõhise VNC kui ka SSH jaoks krüpteeritud HTTPS-iga ning andmete kaotamise vältimiseks on olemas mitmesugused päästjad, mis on muidugi oluline, kui te sisu „ei oma”. teie füüsiline kõvaketas. Pidage meeles, et kogu oma töö koopia saab arvutisse automaatselt ja väga kiiresti. Kui kaotate kõik sellepärast, et keegi varastas teie parooli, on teil nagunii arvutis koopia, kui olete kõik õigesti seadistanud.
Alustame nüüd keskkonna toimimist. Hommikul tööd alustades lähen esimese asjana Amazoni veebiteenuste konsoolile, kus näen kõiki oma eksemplare. Tavaliselt on mul paljude projektide jaoks konfigureeritud palju arendusprotsesse ja arved säästmiseks hoian need, mida pole kasutatud, välja lülitatud. Lõppude lõpuks saan korraga töötada ainult ühe projektiga. (No vahel töötan kahekesi).
Niisiis valin soovitud eksemplari, käivitan selle, ootan veidi või lähen tassi kohvi jooma. Arvuti sisselülitamisel pole suurt vahet. Tavaliselt võtab eksemplari tööle hakkamine mõne sekundi. Kui näen rohelist ikooni, avan otsingumootori ja lähen tuntud URL-ile: https://msciab.duckdns.org/vnc.html
. Pidage meeles, et see on minu URL; komplekti loomisel loote oma ainulaadse URL-i.
Kuna AWS määrab käivitamisel igale masinale uue IP, seadistasin dünaamilise DNS-teenuse, nii et saate oma serverile juurdepääsemiseks kasutada alati sama URL-i, isegi kui selle peatate ja taaskäivitate. Saate selle märkida ka oma otsingumootorisse. Lisaks sellele kasutan HTTPS-i koos kehtivate võtmetega, et kaitsta oma tööd nii palju kui võimalik uudishimulike pilkude eest, juhul kui mul on vaja paroole ja muid tundlikke andmeid käsitseda.
Pärast üleslaadimist tervitab süsteem teid NoVNC, VNC veebikliendiga. Logige lihtsalt sisse ja ilmub töölaud. Kasutan töölauda tahtlikult väga vähe, ainult rakendustega menüü ja minu ainus luksus on virtuaalne töölaud (kuna arendamise ajal avan palju aknaid). Posti puhul olen endiselt sõltuvuses muudest rakendustest, täna enamasti muud otsingumootori vahelehed.
Virtuaalses masinas on mul olemas see, mida mul on vaja suurandmete rakenduste arendamiseks. Esiteks on olemas IDE. Ehitamise ajal kasutan IntelliJ väljaannet Ideekogukond . Samuti on olemas SBT-i ehitustööriist ja Amonnite ettevõttelt Scala RELP.
Selle keskkonna põhijooned on aga teenused, mida rakendatakse konteineritena samas virtuaalses masinas. Eelkõige on mul: * veebimärkmik Zeppelin, et kasutada hetkel Scala koodi ja teha andmete analüüsi (http://zeppelin:8080
) * Spark Job Server, käivitamiseks ja juurutamiseks säde töökohti Rest-liidesega (http://sparkjobserver:8080
). * Hadoopi eksemplar HDFS-i andmete salvestamiseks ja toomiseks (http://hadoop:50070
).
Pange tähele, et need URL-id on fikseeritud, kuid neile on juurdepääs virtuaalses keskkonnas. Nende veebiliideseid näete järgmisel ekraanipildil.
Iga teenus töötab eraldi Dockeri konteineris. Väga tehniliselt rääkimata mõelge sellele kui oma virtuaalmasina kolmele erinevale serverile. Dockeri kasutamise võlu seisneb selles, et saate lisada teenuseid ja lisada isegi kaks või kolm virtuaalset masinat. Amazoni konteinereid kasutades saate oma keskkonda hõlpsalt reguleerida.
Viimaseks, kuid mitte vähem tähtsaks, teil on saadaval veebiterminal. Sisestage lihtsalt oma URL HTTPS-iga ja teid tervitatakse terminaliga veebisaidile.
Ülaltoodud ekraanipildil näete konteinerite loendit, milleks on kolm serverit ja töölaud. See käsurida Kest See annab teile juurdepääsu virtuaalsele masinale, kus konteinerid asuvad, mis võimaldab teil neid hallata. Teie serverid oleksid justkui 'Matrixis' (praktiliselt konteinerite sees), aga see Kest see võimaldab teil pääseda väljaspool 'Matrixi' serverite ja töölaua haldamiseks. Siit saate konteinerid taaskäivitada, sisestada nende failisüsteemid ja teha muid manipuleerimisi, mida Docker lubab. Ma ei hakka Dockerit praegu üksikasjalikult arutama, kuid seal on palju dokumente Dockeri veebisait .
Kas teile meeldib see siiani ja soovite oma eksemplari? See on lihtne ja odav. Selle saate osta Amazon Web Servicesi virtuaalmasina maksumusest, millele lisandub salvestusruum. Praeguses konfiguratsioonis olev komplekt nõuab kõigi teenuste kasutamiseks 4 GB RAM-i. Kui olete ettevaatlik ja kasutate virtuaalmasinat ainult siis, kui seda vajate, ja töötate näiteks 160 tundi kuus, maksab virtuaalne masin praeguste hindadega teile 160 x 0,052 dollarit ehk 8 dollarit kuus. Peate lisama hoiukulu. Ma kasutan umbes 30 gb, kuid seda kõike saab kokku hoida vähem kui 10 dollari eest.
Kuid see ei sisalda (Pro) Dropboxi konto maksumust (lõpuks), kui soovite varundada rohkem kui 2 GB koodi. See maksab veel 15 dollarit kuus, kuid tagab teie andmetele olulise turvalisuse. Teil on vaja ka privaatset hoidlat, olgu see siis tasuline GitHub või mõni muu teenus, näiteks Bitbucket, mis pakub tasuta erahoidlaid.
Tahan rõhutada, et kui kasutate seda ainult siis, kui seda vajate, on see odavam kui spetsiaalne server. Jah, kõik siin mainitud saab installida füüsilisse serverisse, kuid kuna ma töötan suurandmetega, vajan palju AWS-teenuseid, nii et minu arvates on mõttekas hoida kõik samas kohas.
Vaatame, kuidas kogu installimist teha.
Enne virtuaalmasina ehitamise alustamist peate registreeruma järgmises neljas teenuses:
Ainus neist, kus on vaja oma krediitkaarti kasutada, on Amazon Web Services. DuckDns on täiesti tasuta, samas kui DropBox annab teile 2 GB tasuta salvestusruumi, mis võib olla piisav paljude ülesannete jaoks. Let’s Encrypt on samuti tasuta ja seda kasutatakse sisemiselt, kui ehitate pildi oma sertifikaadi allkirjastamiseks. Peale selle soovitan ka hoidla hostimisteenust, nagu GitHub või Bitbucket, kuid kui soovite oma koodi salvestada, pole see installimiseks vajalik.
Alustamiseks navigeerige saidile GitHubi BigDataDevKiti hoidla .
Kerige lehte alla ja kopeerige pildil näidatud skript eelistatud tekstiredaktorisse:
See skript on vajalik pildi paremaks muutmiseks. Peate seda muutma ja parameetritele mõned väärtused lisama. Muutke teksti tsiteerides ettevaatlikult. Pange tähele, et paroolis ei saa kasutada selliseid märke nagu tsitaat ise, tagasilöögi tähis või dollari sümbol, välja arvatud juhul, kui sisestate need kohtumine . See probleem on asjakohane ainult parooli jaoks. Kui soovite olla turvaline, vältige jutumärke, dollarimärke või tagasilööke.
Parameeter PASSWORD
See on parool, mille valite virtuaalmasinasse sisenemiseks veebiliidese kaudu. Parameeter EMAIL
See on teie e-posti aadress ja seda kasutatakse SSL-sertifikaadi registreerimisel. Teil palutakse esitada oma e-posti aadress, mis on ainus nõue, et saaksime Let’s Encryptist SSL-sertifikaadi.
TOKEN
Väärtuste saamiseks ja HOST
, minge DuckDNS-i saidile ja logige sisse. Peate valima hostinimi uus.
Vaadake pilti, et näha, kuhu peaksite kopeerima märk ja kuhu peaksite lisama oma hostinimi . Selle broneerimiseks peate klõpsama nuppu 'Lisa domeen' hostinimi .
Eeldades, et teil on kõik parameetrid ja olete skripti redigeerinud, olete valmis oma eksemplari käivitama. Sisestage Amazoni veebiteenuste haldusliides, minge paneelile EC2 Instances ja klõpsake nuppu „Käivita eksemplar”.
Esimesel ekraanil valite pildi. Skript on üles ehitatud Amazoni Linuxi ümber ja muid võimalusi pole saadaval. Valige Amazon Amazonist, see on QuickStarti loendi esimene valik.
Valige teisel ekraanil eksemplari tüüp. Arvestades töötava tarkvara suurust, on teenuseid mitu ja vajate vähemalt 4 GB mälu, seega soovitan teil valida eksemplar t2.keskmine . Selle abil saate selle minimeerida t2.väike kui lülitate mõne teenuse või isegi teenuse välja mikro kui soovite lihtsalt töölauda.
Kolmandal ekraanil klõpsake nuppu 'Täpsemad üksikasjad' ja kleepige eelmises etapis konfigureeritud skript. Samuti soovitan teil määrata tähtajaga kaitse, et juhusliku lõpetamise korral ei kaotaks te kogu oma tööd.
Järgmine samm on salvestusruumi konfigureerimine. Eksemplari standard on 8 GB, millest ei piisa kõigi meie koostatavate piltide mahutamiseks. Soovitan seda suurendada 20 GB-ni. Samamoodi, kuigi seda pole vaja, soovitan mõnda teist vähemalt 10 gb blokeerivat seadet. Skript ühendab teise plokiseadme andmefailina. Võite selle sisust pildi teha, eksemplari lõpule viia, seejärel sisu sisu abil uuesti luua ja kogu töö taastada. Lisaks ei kao eksemplari lõpetamisel kohandatud blokeerimisseade, nii et teil on topeltkaitse juhusliku andmekadu eest. Turvalisuse täiendavaks suurendamiseks saate Dropboxi abil oma andmed automaatselt varundada.
Viies samm on eksemplari nimetamine. Valige soovitud. Kuues etapp pakub viisi juurdepääsu kontrollriba konfigureerimiseks. Vaikimisi on saadaval ainult SSH, kuid vajate ka HTTPS-i. Saate HTTPS-i kogu maailmale avada, kuid parem on, kui see on ainult teie IP-aadress, et takistada teiste sisenemist teie töölauale ja kest , kuigi see on endiselt parooliga kaitstud.
Kui olete selle viimase konfiguratsiooniga lõpetanud, saate eksemplari käivitada. Märkate, et alglaadimine võib esmakordselt pärast käivituskripti töötamist võtta mõne minuti, see teeb ka pikki teste, näiteks genereerib Let’s Encryptiga HTTPS-sertifikaadi.
Lõpuks, kui näete, et juhtimiskonsool pühendusega „töötab“ ja et see ei ole enam „initsialiseerimine“, olete valmis minema.
Eeldades, et kõik parameetrid on õiged, saate navigeerida saidile https://YOURHOST.duckdns.org
Asendate YOURHOST
valitud hostinimega, kuid ärge unustage, et see on HTTPS-sait, mitte HTTP, seega on teie ühendus serveriga krüptitud, nii et peate kirjutama https//
URL-is. Sait esitab ka kehtiva sertifikaadi Let’s Encrypt. Kui sertifikaadi hankimisel on probleeme, loob initsialiseerimisskript ise allkirjastatud sertifikaadi. Saate endiselt ühenduse luua krüptitud ühendusega, kuid otsingumootor hoiatab teid, et see on tundmatu sait ja ebaturvalised ühendused. See ei tohiks juhtuda, kuid seda ei või kunagi teada.
Eeldades, et kõik töötab, saate siseneda Butterfly veebiterminali. Võite sisse logida kasutajanime abil app
ja parool, mida kasutasite skriptis installimisel.
Kui olete sisse loginud, on teil virtuaalse masinaga masin, mis sisaldab ka Dockerit ja muid tasuta pakkumisi, nagu Nginx Frontend, Git ja Butterfly Web Terminal. Nüüd saate installimise lõpule viia, luues oma arengukeskkonnale Dockeri pildid.
Seejärel sisestage järgmised käsud:
git clone https://github.com/sciabarra/BigDataDevKit cd BigDataDevKit sh build.sh
Viimane käsk palub teil töölauale sisenemiseks sisestada parooli. Kui see on tehtud, hakkab see pilte üles ehitama. Pange tähele, et ehitamine võtab aega umbes 10 minutit, kuid näete, mis juhtub, kuna kõik kuvatakse ekraanil.
Kui ehitus on lõpule jõudnud, saate Dropboxi installida ka järgmise käsuga:
/app/.dropbox-dist/dropboxd
Süsteem näitab teile linki, millel peate Dropboxi aktiveerimiseks klõpsama. Peate sisestama Dropboxi ja siis olete valmis. Ükskõik, mis Dropboxi kausta panete, sünkroonitakse automaatselt kõigi teie Dropboxi eksemplaridega.
Kui olete valmis, võite taaskäivitada virtuaalmasina ja sisestada oma keskkonna URL-i https://YOURHOST.dyndns.org/vnc.html
Töö jätkamisel saate oma masina peatada ja taaskäivitada. Juurdepääsu URL jääb samaks. Nii maksate ainult selle kasutamise aja eest, millele lisandub igakuine lisatasu kasutatud ladustamise eest.
Järgmine arutelu nõuab mõningaid teadmisi Dockeri ja Amazoni toimimise kohta. Kui te ei soovi üksikasjadest aru saada, pidage meeles järgmist reeglit: Virtuaalses masinas on saadaval kaust /app/Dropbox
mis iganes te panete /app/Dropbox
see on säilinud ja kõik muu on ühekordselt kasutatav ning võib kaduda. Turvalisuse suurendamiseks salvestage oma väärtuslik kood süsteemi juhtversioonis.
Kui soovite sellest aru saada, lugege edasi. Kui järgisite virtuaalmasina loomisel minu juhiseid, on see kaitstud lõpetamise eest, nii et te ei saa seda kogemata hävitada. Kui otsustate selle tahtlikult lõpetada, hävitatakse peamine maht. Kõik Dockeri pildid, sealhulgas kõik teie tehtud muudatused, lähevad kaduma.
Kuna aga /app/Dropbox
see on paigaldatud konteinerite jaoks Dockeri helitugevusena, see ei kuulu Dockeri piltide hulka. Virtuaalmasinas kaust /app
see on paigaldatud teie loodud Amazoni köitele, mis pole samuti hävitatud, kuigi te spetsiaalselt virtuaalmasina lõpetate. Helitugevuse eemaldamiseks peate selle spetsiaalselt eemaldama.
Ärge ajage segi Dockeri köiteid, mis on loogiline Dockeri olem, Amazoni köidetega, mis on mõnevõrra füüsiline üksus. Mis juhtub, on see, et Dockeri helitugevus /app/Dropbox
on Amazoni mahu sees /app
.
Virtuaalmasina lõpetamisel ei hävitata Amazoni helitugevust automaatselt, nii et kõik, mis seal sees on, säilib seni, kuni te helitugevuse sõnaselgelt hävitate. Lisaks on kõik, mida Dockeri köite panete, salvestatud väljaspool konteinerit, nii et konteineri hävitamisel seda ei hävitata. Kui lubasite Dropboxi vastavalt soovitusele, kopeeritakse kogu teie sisu Dropboxi serveritesse ja kõvakettale, kui sünkroonite Dropboxi oma arvuti (te) ga. Samuti on soovitatav, et lähtekood salvestataks versioonihaldussüsteemis.
Niisiis, kui panete oma asjad versioonihaldussüsteemi kausta Dropbox alla, peab see kõik andmete kaotamiseks juhtuma:
Loodan, et teie andmed on piisavalt kaitstud.
Hoian iga projekti jaoks virtuaalmasinat ja kui see on tehtud, siis hoian kasutamata virtuaalmasinad välja lülitatud. Muidugi on mul kogu kood GitHubis olemas ja Dropboxi salvestatud. Samuti, kui lõpetan projektiga töötamise, siis enne virtuaalmasina täielikku kustutamist pildistan Amazon Web Services ploki. Sel viisil, kui naasen projekti juurde, näiteks hoolduseks, ei pea ma muud tegema, kui plokifoto abil uue virtuaalse masina käivitama. Kõik minu andmed tagastatakse teie saidile ja saan oma tööd jätkata.
Esiteks, kui teil on Interneti-ühendus ilma puhverserverita, võite kasutada kohalikke SSH- ja VNC-kliente. Otsene SSH-juurdepääs on oluline, kui peate faile kopeerima virtuaalmasinasse ja sealt välja. Kuid failide jagamiseks peaksite Dropboxi kaaluma lihtsama alternatiivina.
VNC veebi juurdepääs on hindamatu, kuid võib mõnikord olla aeglasem kui kohalikul kliendil. Teil on juurdepääs virtuaalse masina VNC-serverile porti 5900 kasutades. Peate selle spetsiaalselt avama, kuna see sulgub vaikimisi. Soovitan teil avada see ainult oma IP-aadressi jaoks, kuna Internet on täis „roboteid“, mis otsivad Internetist teenuste liitumist ja nende robotite jaoks on VNC sagedane sihtmärk.
Selles artiklis selgitatakse, kuidas saate tõhusa arenduskeskkonna juurutamiseks kõige paremini ära kasutada kaasaegset pilvetehnoloogiat. Kuigi pilvemasin ei pruugi olla teie tööarvuti või sülearvuti täielik asendaja, on see piisavalt hea, et teha arendustöid, kui juurdepääs IDE-le on oluline. Minu kogemuse kohaselt on praeguste Interneti-ühendustega see piisavalt kiire.
Pilves olles on juurdepääs serverile ja manipuleerimine kiirem kui siis, kui neil on lokaalselt. Saate suurendada (või vähendada) mälu, käivitada teist keskkonda, luua pilti ja nii edasi. Dekant on käeulatuses ja suurandmete projektidega töötades vajate tugevaid teenuseid ja palju ruumi. Seda pakub pilv.