Програмер сам и свакодневно радим у Интегрисаном развојном окружењу (ИДЕ), као што је Интеллиј ИДЕА или Ецлипсе. Ови ИДЕ су радне површине. Од појаве Гоогле докумената, видео сам да све више људи премешта свој рад са верзија рачунара Ворд или Екцел у облак користећи мрежни еквивалент обраде текста или апликације за табеле.
Постоје очигледни разлози за коришћење облака за задржавање посла. Данас, у поређењу са традиционалним десктоп апликацијама, неке веб апликације немају значајан недостатак у функционалностима. Садржај је доступан свуда где постоји веб прегледач, а данас је то готово свуда. Сарадња и дељење су лакши, а губитак датотека је мање вероватно.
Нажалост, ове предности у облаку нису толико честе у свету развоја софтвера као код пословних апликација. Постоје неки покушаји да се обезбеди мрежни ИДЕ, али они нису ни близу традиционалним ИДЕ-има.
То је парадокс; док смо и даље везани за радну површину ради свакодневног кодирања, софтвер се сада рађа на више сервера. Програмери морају да раде са стварима које више не могу да чувају на рачунару. Заиста, преносни рачунари више не повећавају своју процесорску снагу; имати више од 16 ГБ РАМ-а на преносном рачунару је ретко и скупо, а новији уређаји, на пример, таблети имају још мање.
Међутим, чак и ако још увек није могуће заменити класичне радне површине за развој софтвера, то је могуће да бисте целу развојну радну површину преместили у облак . Оног дана када сам схватио да више није потребно имати сав софтвер на преносном рачунару, и приметивши доступност веб верзије терминала и ВНЦ-а, преместио сам све у облак. На крају сам развио комплет за изградњу за аутоматизовано стварање тог окружења.
У овом чланку представљам скуп скрипти за изградњу облачног окружења за развој Мердевине и апликације за велике податке, које раде са Доцкером у Амазон АВС, а састоје се од радне површине доступне на мрежи са услугама ИнтеллиЈ ИДЕ, Спарк, Хадооп и Зеппелин, као и алата за командну линију попут ССХ-а, СБТ-а и Аммоните-а на мрежи. Комплет је бесплатно доступан на ГитХуб , и овде описујем процедуру за његову употребу за изградњу ваше инстанце. Можете да изградите своје окружење и прилагодите га својим потребама. Не би вам требало више од 10 минута да то покренете.
Мој примарни циљ у развоју кита био је да моје развојно окружење буде нешто што могу једноставно да активирам, са свим услугама и серверима са којима радим, а затим да их уништим када више нису потребни. Ово је посебно важно када радите на различитим пројектима, неки од њих укључују велики број сервера и услуга, као када радите на пројектима великих података.
Моје идеално окружење засновано на облаку требало би да:
Користећи модерну инфраструктуру и софтвер у облаку, снагу савремених прегледача, широко доступну широкопојасну мрежу и непроцењив Доцкер, створио сам развојно окружење за Сцала и развој великих података то је на боље заменило мој развојни лаптоп.
Тренутно могу да радим у било ком тренутку, било са МацБоок Про-а, Сурфаце Таблета или чак иПад-а (са тастатуром), мада додуше последња опција није идеална. Сви ови уређаји су само клијенти; радна површина и сви сервери су у облаку.
Моје тренутно окружење је изграђено користећи следеће мрежне услуге:
Такође користим неколико бесплатних услуга, попут ДуцкДнс за динамичке ИП адресе и Шифрујмо да бисте добили бесплатни ССЛ сертификат.
У овом окружењу тренутно имам:
Што је најважније, приступ Интернету је у потпуности шифрован ХТТПС-ом, како за ВНЦ, тако и за ССХ засноване на вебу, а постоји и више заштитних мера како би се избегло губљење података, што је, наравно, важно када не поседујете садржај на ваш физички чврсти диск. Имајте на уму да је копирање свих ваших радова на рачунару аутоматско и врло брзо. Ако изгубите све јер вам је неко украо лозинку, ионако имате копију на рачунару, под условом да сте све правилно конфигурисали.
Почнимо сада да описујемо како функционише окружење. Када ујутро почнем да радим, прво је да се пријавим на Амазон Веб Сервицес конзолу где видим све своје инстанце. Обично имам много развојних инстанци конфигурисаних за различите пројекте, а неискоришћене држим искљученима ради уштеде рачуна. Уосталом, истовремено могу да радим само на једном пројекту. (Па, понекад радим на двоје.)
Дакле, одаберем инстанцу коју желим, покренем је, сачекам мало или одем по шољу кафе. Није толико различито од укључивања рачунара. Обично треба пуно секунди да би инстанца била покренута. Једном када видим зелену икону, отворим прегледач и прелазим на добро познати УРЛ: https://msciab.duckdns.org/vnc.html
. Напомена, ово је моја УРЛ адреса; када креирате комплет, створићете свој јединствени УРЛ.
Будући да АВС свакој машини додељује нови ИП када покренете, конфигурисао сам динамичку ДНС услугу, тако да увек можете користити исти УРЛ за приступ серверу, чак и ако га зауставите и поново покренете. Можете га чак и обележити у прегледачу. Поред тога, користим ХТТПС, са важећим кључевима, да бих добио потпуну заштиту свог рада од њушкања, у случају да треба да управљам лозинкама и осталим осетљивим подацима.
Једном учитан, систем ће вас дочекати са веб ВНЦ веб клијентом, НоВНЦ. Једноставно се пријавите и појавиће се радна површина. Користим минималну радну површину, намерно, само мени са апликацијама, а мој једини луксуз је виртуелна радна површина (с обзиром да отварам пуно прозора када се развијем). За пошту се и даље ослањам на друге апликације, данас углавном на друге картице прегледача.
У виртуелној машини имам оно што ми треба за развој апликација за велике податке. Прво и најважније, постоји ИДЕ. У изради користим издање заједнице ИнтеллиЈ Идеа. Такође, ту су СБТ алат за израду и Сцала РЕПЛ, Аммоните.
Кључне карактеристике овог окружења су, међутим, услуге распоређене као контејнери на истој виртуелној машини. Конкретно, имам:
http://zeppelin:8080
)http://sparkjobserver:8080
).http://hadoop:50070
).Имајте на уму да су ове УРЛ адресе фиксне, али им је могуће приступити у виртуелном окружењу. Њихов веб интерфејс можете видети на следећем снимку екрана.
Свака услуга ради у засебном Доцкер контејнеру. Не постајући превише технички, ово можете замислити као три одвојена сервера унутар ваше виртуелне машине. Лепота коришћења Доцкера је у томе што можете додати услуге, па чак и додати две или три виртуелне машине. Коришћењем Амазон контејнера можете лако да прилагодите своје окружење.
На крају, али не најмање важно, имате доступан веб терминал. Једноставно приступите свом УРЛ-у помоћу ХТТПС-а и дочекаће вас терминал на веб страници.
На снимку екрана изнад можете да видите списак контејнера, а то су три сервера плус радна површина. Ова љуска командне линије омогућава вам приступ виртуелној машини која држи контејнере, омогућавајући вам управљање њима. То је као да су ваши сервери „у Матрици“ (виртуелизовани у контејнерима), али ова љуска вам даје бекство изван „Матрице“ за управљање серверима и радном површином. Одавде можете поново покренути контејнере, приступити њиховим системима датотека и изводити друге манипулације које Доцкер дозвољава. Нећу овде детаљно расправљати о Доцкеру, али о томе постоји огромна количина документације Веб локација Доцкер .
Да ли вам се ово до сада свиђа и желите своју инстанцу? Лако је и јефтино. Можете га добити само за трошкове виртуелне машине на Амазон Веб Сервицес, плус складиште. Комплет у тренутној конфигурацији захтева 4 ГБ РАМ-а да би се покренуле све услуге. Ако пажљиво користите виртуелну машину само када вам је потребна и радите, рецимо, 160 сати месечно, виртуелна машина по тренутним ценама коштаће 160 к 0,052 УСД, односно 8 УСД месечно. Морате додати трошкове складиштења. Користим око 30 ГБ, али све скупа може бити мање од 10 УСД.
Међутим, ово не укључује бот трошкове (евентуалног) Дропбок (Про) рачуна ако желите да направите резервну копију више од 2 ГБ кода. То кошта додатних 15 УСД месечно, али пружа важну сигурност за ваше податке. Такође ће вам требати приватно спремиште, или ГитХуб који се плаћа или нека друга услуга, као што је Битбуцкет, која нуди бесплатна приватна спремишта.
Желим да нагласим да је ако га користите само када вам треба јефтинији од наменског сервера. Да, све овде поменуто може се подесити на физичком серверу, али пошто радим са великим подацима, потребно ми је много других АВС услуга, па мислим да је логично да све буде на истом месту.
Да видимо како да урадимо целокупно подешавање.
Пре него што започнете изградњу виртуелне машине, потребно је да се региструјете за следеће четири услуге:
Кредитна картица вам је потребна само за Амазон Веб Сервицес. ДуцкДнс је потпуно бесплатан, док ДропБок даје 2 ГБ бесплатног простора за складиштење, што може бити довољно за многе задатке. Лет’с Енцрипт је такође бесплатан и користи се интерно када правите слику за потписивање сертификата. Поред ових, препоручујем и услугу хостинга спремишта, попут ГитХуб-а или Битбуцкет-а, ако желите да сачувате свој код, међутим, то није потребно за подешавање.
За почетак идите на ГитХуб БигДатаДевКит спремиште .
Померите страницу и копирајте скрипту приказану на слици у одабрани уређивач текста:
Ова скрипта је потребна за покретање слике. Морате га променити и дати неке вредности параметрима. Пажљиво промените текст у наводницима. Имајте на уму да у лозинци не можете да користите знакове попут самог цитата, косе црте или знака долара, осим ако то не радите цитат њих. Овај проблем је релевантан само за лозинку. Ако желите да играте на сигурно, избегавајте цитате, знаке долара или косе црте.
Тхе PASSWORD
параметар је лозинка коју сте изабрали за приступ виртуелној машини путем веб интерфејса. Тхе EMAIL
параметар је ваша адреса е-поште и користиће се када региструјете ССЛ сертификат. Од вас ће се тражити да доставите своју е-пошту, а то је једини услов за добијање бесплатног ССЛ сертификата од Лет’с Енцрипт.
Да бисте добили вредности за TOKEN
и HOST
, идите на веб локацију ДуцкДНС и пријавите се. Мораћете да изаберете неискоришћено име хоста.
Погледајте слику да бисте видели где морате да копирате токен и где морате да додате име хоста. Морате кликнути на дугме „додај домен“ да бисте резервисали име хоста.
Под претпоставком да имате све параметре и да сте уредили скрипту, спремни сте за покретање ваше инстанце. Пријавите се на интерфејс за управљање Амазон Веб Сервицес, идите на таблу ЕЦ2 Инстанце и кликните на „Лаунцх Инстанце“.
На првом екрану ћете одабрати слику. Скрипта је изграђена око Амазон Линук-а и не постоје друге опције. Изаберите Амазон Линук, прву опцију на листи КуицкСтарт.
На другом екрану одаберите тип инстанце. С обзиром на величину покренутог софтвера, постоји више услуга и потребно вам је најмање 4 ГБ меморије, па вам препоручујем да одаберете т2.медиум инстанци. Можете да га смањите помоћу т2.мало ако искључите неке услуге или чак микро ако желите само радну површину.
На трећем екрану кликните на „Напредни детаљи“ и залепите скрипту коју сте конфигурисали у претходном кораку. Такође вам препоручујем да омогућите заштиту од раскида, тако да случајним прекидом нећете изгубити сав свој рад.
Следећи корак је конфигурисање складишта. Подразумевано за инстанцу је 8 ГБ, што није довољно да садржи све слике које ћемо направити. Препоручујем да га повећате на 20 ГБ. Такође, иако није потребан, предлажем други блок уређај од најмање 10 ГБ. Скрипта ће монтирати други блок уређај као фасциклу података. Можете направити снимак његовог садржаја, прекинути инстанцу, а затим је поново креирати помоћу снимка и опоравити сав посао. Поред тога, прилагођени блок-уређај се не губи када прекинете инстанцу, па имајте двоструку заштиту од случајног губитка података. Да бисте још више повећали своју сигурност, можете аутоматски направити резервне копије података помоћу Дропбок-а.
Пети корак је именовање инстанце. Изаберите свој. Шести корак нуди начин за конфигурисање заштитног зида. Подразумевано је доступан само ССХ, али потребан нам је и ХТТПС, па не заборавите да додате и правило за отварање ХТТПС-а. Могли бисте да отворите ХТТПС свету, али боље је ако само ваш ИП спречава друге да приступе вашој радној површини и љусци, иако је то и даље заштићено лозинком.
Када завршите са овом последњом конфигурацијом, можете да покренете инстанцу. Приметићете да иницијализација може потрајати неколико минута први пут откако се покреће иницијализациона скрипта, а такође ће обављати и неке дуготрајне задатке попут генерисања ХТТПС сертификата помоћу Лет’с Енцрипт.
Када на крају видите да управљачка конзола „ради“ са потврдом и више се не „иницијализује“, спремни сте за полазак.
Под претпоставком да су сви параметри тачни, можете доћи до https://YOURHOST.duckdns.org
.
Замените YOURHOST
са именом хоста које сте изабрали, али не заборавите да је то ХТТПС локација, а не ХТТП, тако да је ваша веза са сервером шифрована, тако да морате да напишете https//
у УРЛ-у. Сајт ће такође представити важећи сертификат за Лет’с Енцрипт. Ако постоје проблеми са добијањем цертификата, скрипта за иницијализацију ће генерисати самопотписани цертификат. И даље ћете моћи да се повежете шифрованом везом, али прегледач ће вас упозорити да је то непозната локација и везе су несигурне. То се не би требало догодити, али никад се не зна.
Под претпоставком да све функционише, тада приступате веб терминалу, Буттерфли. Можете се пријавити помоћу корисника app
и лозинку коју сте унели у скрипту за подешавање.
Једном пријављени, имате боотстраппед виртуелну машину, која такође укључује Доцкер и друге додатке, као што су Нгинк Фронтенд, Гит и Буттерфли Веб Терминал. Сада можете довршити подешавање изградњом Доцкер слика за ваше развојно окружење.
Даље, откуцајте следеће команде:
git clone https://github.com/sciabarra/BigDataDevKit cd BigDataDevKit sh build.sh
Последња команда ће такође тражити да унесете лозинку за приступ радној површини. Једном завршено, почеће да гради слике. Имајте на уму да ће израда трајати око 10 минута, али можете видети шта се дешава јер је све приказано на екрану.
По завршетку израде, можете и да инсталирате Дропбок следећом наредбом:
/app/.dropbox-dist/dropboxd
Систем ће приказати везу коју морате кликнути да бисте омогућили Дропбок. Морате се пријавити у Дропбок и онда сте готови. Шта год ставили у директоријум Дропбок, аутоматски се синхронизује између свих ваших инстанци Дропбок-а.
Када завршите, можете поново покренути виртуелну машину и приступити свом окружењу на https://YOURHOST.dyndns.org/vnc.html
УРЛ.
Када наставите са радом, можете зауставити машину и поново је покренути. Приступна УРЛ адреса остаје иста. На овај начин ћете платити само време које користите, плус месечни додатак за искоришћено складиште.
Следећа дискусија захтева одређено знање о томе како функционишу Доцкер и Амазон. Ако не желите да разумете детаље, имајте на уму следеће једноставно правило: У виртуелној машини постоји /app/Dropbox
доступна мапа, шта год да сместите у /app/Dropbox
је сачувано, а све остало је за једнократну употребу и може нестати. Да бисте додатно побољшали безбедност, такође похраните свој драгоцени код у систем за контролу верзија.
Ако желите ово да разумете, читајте даље. Ако сте следили моја упутства при креирању виртуелне машине, виртуелна машина је заштићена од прекида, тако да је не можете случајно уништити. Ако изричито одлучите да га прекинете, примарни волумен ће бити уништен. Све Доцкер слике ће бити изгубљене, укључујући све промене које сте направили.
Међутим, пошто је директоријум /app/Dropbox
је постављен као Доцкер Волуме за контејнере, није део Доцкер слика. У виртуелној машини, директоријум /app
је постављен у Амазон Волуме који сте креирали, а који се такође не уништава чак ни када изричито зауставите виртуелну машину. Да бисте уклонили јачину звука, морате је изричито уклонити.
Немојте бркати Доцкерове волумене, који су Доцкер-ов логички ентитет, са Амазон Волумес-ом, који је донекле физички ентитет. Оно што се дешава је да /app/Dropbox
Доцкер волумен је смештен унутар /app
Амазон запремина.
Амазон Волуме се не уништава аутоматски када прекинете виртуелну машину, па ће се сачувати све што се у њега стави, све док волумен такође не изричито уништите. Даље, све што ставите у Доцкер волумен чува се изван контејнера, тако да се не уништава када се контејнер уништи. Ако сте омогућили Дропбок, као што се препоручује, сав ваш садржај се копира на Дропбок сервере и на чврсти диск ако синхронизујете Дропбок са својим рачунарима. Такође, препоручује се да се изворни код чува у систему за контролу верзија.
Дакле, ако своје ствари сместите у систем за контролу верзија под директоријум Дропбок, да бисте изгубили податке, све ово мора да се деси:
Надам се да су ваши подаци довољно сигурни.
Држим виртуелну машину за сваки пројекат, а када завршим, неискоришћене виртуелне машине држим искљученима. Наравно, сав свој код имам на ГитХуб-у и резервну копију имам у Дропбок-у. Даље, када престанем да радим на пројекту, направим снимак блока Амазон Веб Сервицес пре него што у потпуности уклоним виртуелну машину. На овај начин, кад год се пројекат настави, на пример ради одржавања, све што треба да урадим је да покренем нову виртуелну машину помоћу снимка. Сви моји подаци се враћају на своје место и могу да наставим са радом.
Прво, ако имате директан приступ Интернету, а не посредује га прокси, можете да користите изворне ССХ и ВНЦ клијенте. Директни ССХ приступ важан је ако требате копирати датотеке у виртуелну машину и ван ње. Међутим, за дељење датотека, требало би да сматрате Дропбок једноставнијом алтернативом.
ВНЦ веб приступ је непроцењив, али понекад може бити спорији од матичног клијента. Имате приступ ВНЦ серверу на виртуелној машини помоћу порта 5900. Морате га изричито отворити јер је подразумевано затворен. Препоручујем вам да га отворите само на своју ИП адресу, јер је интернет препун „робота“ који скенирају Интернет тражећи услуге за које се могу повезати, а ВНЦ је честа мета тих робота.
Овај чланак објашњава како можете да искористите модерну технологију у облаку за примену ефикасног развојног окружења. Иако машина у облаку не може у потпуности заменити ваш радни рачунар или лаптоп, она је довољно добра за обављање развојних послова када је важно имати приступ ИДЕ-у. Према мом искуству, са тренутним Интернет везама је довољно брзо за рад.
Бити у облаку, приступ серверу и манипулација бржи су од локалног. Можете брзо повећати (или смањити) меморију, покренути друго окружење, створити слику итд. Имате центар података надохват руке, а када радите са великим пројектима за пренос података, требају вам робусне услуге и пуно простора. То је оно што облак пружа.