Как е създаден OpenStack – една изключително интересна история от NASA до България!

OpenStack е софтуер за управление на облачни пространства с изключително гъвкави възможности за мащабируемост и автоскалиране. Интерфейсът позволява с лекота да се добавят ресурси към изградена IT инфраструктура.

Но как е започнало всичко? Генезисът на историята е в началото на 21 век, когато проектите на НАСА - Google Earth и Microsoft Worldwide Telescope – бързо трупат данни, които изискват гъвкава инфраструктура за съхранение и визуализация.

Искрата на проекта

Революционните промени прави Крис Кемп, който в далечната 2006 г. се присъединява към екипа на НАСА като директор на стратегическото бизнес развитие в Изследователския център на Еймс в Силициевата долина.

През 2007 г. той поема поста главен информационен директор (CIO), а с това и отговорността за по-голямата част от ИТ инфраструктурата в NASA Ames (мрежи, центрове за данни, системи и т.н.), както и няколко широкообхватни услуги, включително Оперативния център за сигурност на НАСА (SOC).

Сред задачите, пред чието решаване е изправен, е да осигури ресурсите за съхранение и визуализация на изображенията на Луната и Марс и за първи път в историята на НАСА вместо държавна поръчка той създава публично-частни партньорства с Google и Microsoft.

Крис Кепм е впечатлен, как Google винаги могат да намерят „още малко ресурси“, все едно винаги имат още малко под ръка, докато с Майкрософт ситуацията е в другата крайност – „трябва да се моли и проси“ за още малко ресурси.

Ето какво споделя той: „В Google, инфраструктурата се третира така, сякаш е безкрайна. Те имаха laissez-faire отношение: „Разбира се, можем да намерим няколко петабайта място за съхранение, когато ни потрябват.С Microsoft беше точно обратното. Хранилището беше собственост на някаква бизнес единица и трябваше да просите, заемате и крадете за изчислителните ресурси.“

През годините Google са изградили мащабна инфраструктура - софтуерна платформа с огромен брой сървъри, с възможност за мащабиране и нагоре и надолу, според това какво е необходимо. Тази платформа се е използвала само от Google, подобно на EC2 на Amazon.

В рамките на този си опит, Крис Кемп, кристално прозира от какво се нуждае НАСА - да може да хоства свои собствени изображения с висока разделителна способност - без зависимост от Google, Microsoft или Amazon.

Кемп коментира: „Отговорност на НАСА е да хоства златното копие на тези данни във формати, които могат да се консумират от платформи като Google Earth и Microsoft WorldWide Telescope. Но нямахме инфраструктура. И това беше искрата за проекта.“

Той нарича своя проект "Мъглявината на НАСА" - NASA Nebula, от който в перспектива се ражда проекта Nova. Но за да се стигне до Nova и в последствие OpenStack, искрта Nebula не трябва да загасва.

Битка за оцеляване - Мъглявината на НАСА е застрашена от изчезване

Прогресивното мислене на софтуерните инженери уви се сблъсква с  консервативното мислене на конгресмените във Вашингтон. Те виждат голяма заплаха в това, че тази облачна технология, дава възможност на центровете за данни да работят без хора, което логично би довело до съкращаване на работни места.

Голямото предимство, което проектът разкрива за бизнеса – функциониране на платформата без управление от хора, е сред основните негативи от гледната точка на политиците.

Спасителният пояс на проекта е Вивек Кундра - първият федерален CIO в САЩ, назначен от Барак Обама още с встъпването му в длъжност през 2009 година, за да преработи техническата инфраструктура на правителството.

Кундра е изключително далновиден и вижда, че платформата може да изпълнява приложения не само в НАСА, но и във федералното правителство. Той коментира: „Технологията беше в своя зародиш, но ясно виждах нейния потенциал. Тя бе „дигиталното масло“, от което се нуждаехме, за да променим стария неефективен модел, при който за да разполагаме с ресурсите, които са ни нужни в пиковите дни, плащахме за тях през цялата година – без да ги използваме“

Според Кундра към онзи момент правителствените центрове за данни са използвали само около 40% от общия си капацитет - и около 27% от своята процесорна мощност. Той ясно вижда, че Nebula може да промени това, като предоставя ресурси за обработка и съхранение на всяка агенция, само когато е необходимо.

Вивек Кундра кани Крис Кемп в Белия дом, за да използват прогресивната технологията за сайта USAspending.gov, на който правителството се отчита как са изразходвани федералните средства. Идеята му е за последващо разширяване на платформата и към други агенции.

За съжаление обаче, не всички щатски сенатори са въодушевени от неговите намерения и по-скоро са склонни да убият проекта. По думи на Кемп – най-яростен противник е Ричард Шелби, председател на комисията по бюджетните кредити на Сената.

Кемп коментира, че сенаторът е видял Nebula като ликвидатор на работни места. „Винаги, когато говорех във Вашингтон за тази облачна технология, чрез която центровете за данни ще работят без хора, в това се виждаше закриване на работни места. Имаше много сериозно политическо предизвикателство пред проекта... и бях извикан в управлението на НАСА да го обясня.“

Кундра е по-дипломатичен с думите - "имаше съпротива срещу новата идея". Това споделя и Рей О'Брайън - техническият директор за ИТ в НАСА Еймс тогава.

Натискът от Вашингтон достига до критичната точка на пречупване през есента на 2009 г. За да защити проекта, Кундра заминава в Силициевата долина, за да стартира официално стратегията на федералното правителство за облачни изчисления.

Така той подкрепя Nebula както публично, така и частно. Кемп потвърждава, че без Кундра, проектът е нямало да бъде реализиран.

Първата версия на Nebula

Първата версия на Nebula е създадена върху съществуваща софтуерна платформа с отворен код с името Eucalyptus - плод на труда на екип от академици в Калифорнийския университет в Санта Барбара.

Но според Крис Кемп и Джошуа Маккенти, Eucalyptus не се мащабира толкова лесно, колкото биха искали: „Имаше фундаментални проблеми с архитектурата, които не съответстваха на това, което се опитвахме да направим. Имаше грешки в кода и сериозни бъгове."

Проблем са и бизнес целите на екипа, създал Eucalyptus Те сформират търговско дружество, за да могат да продадат проекта, а това е в разрез с идеята за отворения код на проекта Nebula.

Eucalyptus е с "отворен" бизнес модел, но само донякъде. Ядрото на проекта е с отворен код, но кодът около него не е и това не съответства на идеята на Кемп, Маккенти и останалата част от екипа на НАСА: да създадат платформа с отворен код, която всеки може не само да използва, но и да допринесе за нея.

Проектът Nebula действително се разработва с цел сътрудничество. Но и НАСА не е подходящата среда за съвместна работа с външния свят.

Кемп, Маккенти и Джеси Андрюс – ръководителят на софтуерния инженеринг по проекта дълго време обсъждат дали НАСА може просто да започне нов проект с отворен код от нулата. Но те знаят колко трудно е това.

За нуждите на НАСА е допустимо да се използва код от съществуващ проект с отворен код, след като се прескочат няколко законови препятствия. Но към онзи момент никой в НАСА не е бил наясно как да се стартира inhouse проект, по който да има ежедневно сътрудничество с външния свят.

„Това е федерална агенция, която обикновено разработва системи за милиарди долари. Софтуерът в тези системи обичайно е продукт на десетилетия инвестиции и съдържа всякакъв вид интелектуална собственост и чувствителна информация по отношение на национална сигурност“, казва Кемп. „Това е средата, в която се опитвахме да отворим нашия код. Nebula беше предназначена за сътрудничество. Но НАСА не беше среда, предназначена да колаборация. Трябваше да създадем софтуера и да отворим кода по съвсем различен начин.

Вратичката намират Маккенти и Андрюс: те решават да посветят един уикенд от личното си време, за да създадат своя версия на Eucalyptus. Така създаденият проект ще е техен – личен, а не inhouse проект на НАСА.

И след като в понеделник са отново на работа като служители на НАСА, те вече биха могли да работят по него, като върху проект – външен за НАСА: „Така код на НАСА няма да изтече към външния свят, а НАСА технически ще допринесе за външен проект“, споделя Маккенти.

Речено-сторено! Избират уикенд и наемат HouseKu – голям имот в Сан Франциско, предназначен за съвместна дейност, в който живее друг служител на НАСА - Анди Смит.

Но само един уикенд не се оказва достатъчен. Прототипът е завършен за около две седмици и получава името Nova.

Партньорството на НАСА с Rackspace

Партньорството на НАСА с Rackspace стартира след публикация през май 2010 г., която почти никой не прочита. „Изстреляхме Nova“, пише Джошуа Маккенти от НАСА, който е редовен гост в Rainbow Mansion. Ето как е изглеждала публикацията в блога:

Изглед от публикацията в блога, с която е обявен проекта Nova.

Nova е създадена с езика за програмиране Python, като алтернатива на Elastic Compute Cloud на Amazon. Amazon EC2 дава възможност да стартирате софтуерни приложения, без да настройвате свои собствени физически машини, а използвате повече виртуални сървъри, когато е необходимо.

Съществената разлика е, че Nova е с отворен код и тъй като е с лиценз за Apache, няма ограничения кой да използва платформата за изграждане на своя собствена версия на EC2.

Рик Кларк от Rackspace узнава за проекта Nova седмица след анонса му. Той се присъединява към Rackspace година по-рано от Canonical – екипът зад дистрибуцията Ubuntu Linux.

Той споделя, че мисията му е била да създаде платформа с отворен код за изграждане на „облачна инфраструктура“. Няколко ръководители на Rackspace настояват за същото, включително вицепрезидентът по корпоративното развитие Джим Къри и главният стратегически директор Лю Мурман.

Кларк разглежда кода Nova на НАСА и недоумява колко сходен е с платформата, която Rackspace планира да отвори. Светкавично информира големите в Rackspace с кратък имейл: „В НАСА са около три месеца пред нас. Трябва да говорим с тях и да намерим начин да работим с тях или да го “”fork”-нем.“

За Кларк в този момент сътрудничеството с НАСА изглежда немислимо. Но възможност не липсва - ръководителят на Кларк - вицепрезидент по корпоративното развитие Джим Къри - е син на инженер от НАСА, който в продължение на 40 години работи върху системите за термична защита за космическата совалка и други космически кораби. Той израства в сянката на космическия център на агенцията в Хюстън, Тексас. „Бих взел моя бойскаутски отряд да наминем към инженерната лаборатория“, коментира той.

Къри открива Кемп в НАСА и седмица по-късно с няколко служители на Rackspace заминават за Силициевата долина за среща с екипа на НАСА. Срещата в Ames се пренася в тайландски ресторант наблизо.

„Беше като да намериш отдавна изгубен близнак“, споделя Маккенти. „Това беше най-странното преживяване, което някога съм имал. Използвахме едни и същи инструменти. Бяхме взели едни и същи езикови решения. Събрахме двата екипа, които се срещаха за първи път и заедно възкликнахме: „Уау, вие току-що написахте кода, който ние щяхме да напишем.

Нещо повече, двете кодови бази се допълваха. Докато в НАСА разработват Nova, Rackspace създават платформа, наречена Swift. Nova предоставя виртуални сървъри – т.е. мощност за обработка – а Swift осигурява съхранение.

Докато Nova е алтернатива на Amazon EC2, Swift е аналогичен на Amazon Simple Storage Service (S3). На вечерята двете страни решават да комбинират двата проекта и да ги отворят като един под името „OpenStack“.

Те обаче ясно си дават сметка, че да се работи с правителството е крайно рисковано, защото такъв проект може и да не види бял свят – никога!

Трудната битка за разрешение от НАСА да отворят кода

Пет седмици след срещата между екипите на НАСА и Rackspace в тайландския ресторант, съвместният проект с комбиниран код под името OpenStack е готов за дебют на търговското изложение OSCON в Портланд, Орегон.

Няколко дни по-рано двата екипа дори се срещат с други компании в Тексас, някои от които вече са се ангажирали с проекта. Но вечерта преди планирания анонс, Кемп все още не разполага с окончателното одобрение от НАСА за отваряне на кода Nova под лиценз на Apache.

Андрюс и Маккенти вече бяха отворили кода на Nova, който са създали в свободното си време. Но работата им като служители на НАСА - все още беше затворена. И проектът се нуждаеше от косвеното одобрение на НАСА.

По-лесно би било, кодът Nova да бъде пуснат под лиценза на NOSA – лиценз на НАСА за софтуер с отворен код от преди няколко години. Но и Къри и Кемп са наясно, че ако OpenStack не е с отворен код под лиценз на Apache, няма да добие масовост и да бъде широко използван.

Zorawar Singh от HP потвърждава това с думите, че платформата се използва толкова много за съвсем различни проекти, тъй като лицензът на Apache дава възможност всеки да я използва, без да се налага да добавя още код.

Но бюрокрацията в НАСА е на различно мнение. „Беше почти невъзможно да принудим НАСА да отвори кода под Apache“, споделя Кемп. „В екипа си имах техничари с юридическо образование, но те не бяха назначени в НАСА, като юристи, за да ме подкрепят в моя кръстоносен поход.“

И в крайна сметка той успява! Кемп получава положителната резолюция от НАСА в ранната сутрин на 19 юли, само часове преди OpenStack да бъде официално представен на света.

„Просто избухна“, споделя Маккенти. „Вероятно беше около хиляди пъти по-голям, отколкото всеки от нас очакваше.“ Проектът беше незабавно прегърнат от NTT Data, ИТ консултантското звено на японския телекомуникационен гигант NTT.

Само четири месеца след анонса, той получава и подкрепа от Microsoft - компания, която е известна с това, че не поддържа софтуер с отворен код. И през следващата година Dell, HP и Cisco се присъединяват към проекта.

Докато Рик Кларк е в Canonical, компанията консолидира своята Ubuntu Linux дистрибуция с Eucalyptus, за да бъде реализиран облачен свят с отворен код. А през май 2011 г. - по-малко от година след анонса на OpenStack - Canonical стартира Eucalyptus от Ubuntu в полза на новата платформа.

Подобно на Кемп, Маккенти, Андрюс и други разработчици от НАСА, Canonical целят платформа с отворен код, която да се използва от всеки и на която всеки да може да допринесе. Това е единственият начин за конкуриране с Amazon.

Успехът е в сътрудничеството

OpenStack създава възможност на бизнеса да се конкурира с Amazon. Към онзи момент „Amazon е във война с всеки доставчик на ИТ услуги“, споделя Себастиан Стадил, главен изпълнителен директор на Scalr (облачно управление с отворен код), основател на групата Silicon Valley Cloud Computing и бивш жител на Rainbow Mansion.

Една от причините, поради които OpenStack получава толкова голяма популярност – въпреки, честно казано, съмнителната си стабилност [тогава] – е, че е единствената надежда на индустрията да оцелее.“ – допълва той.

През 2011 г. бизнесът на Amazon Web Services нараства със 70%. Ако използвате Amazon EC2, вие не купувате физически сървъри от компании, като HP и Dell. Вие не купувате и голяма част от софтуера, който бихте използвали за управление на тези сървъри. И ако използвате услугите, които Amazon предлага с EC2 и S3 – включително бази данни и други инструменти – не купувате и много други добавки.

OpenStack дава възможност за изграждане на публични уеб услуги, които се конкурират директно с Amazon. С OpenStack компаниите могат да създават персонализирани услуги за своите конкретни нужди

За много компании не е удачно да съхраняват информация на чужди сървъри. А с OpenStackте получават предимствата на Amazon EC2 в собствените си data центрове, без да предоставят своите данни на Amazon.

Amazon преобърна статуквото в ИТ света. А OpenStack идва с амбициите да преобърне Amazon. Но за това е нужно сътрудничество!

След старта на проекта OpenStack, Крис Кемп поема управлението на Nebula Inc., компания, която носи името на проекта му в НАСА и продава хардуерна и софтуерна облачна изчислителна система, базирана на OpenStack.

Джошуа Маккенти става главен изпълнителен директор на Piston Cloud Computing, организация, която предлага дистрибуция на OpenStack за традиционни корпоративни екипи.

Джеси Андрюс и няколко други служители на НАСА, които са работили по Nebula, продължават в Rackspace, като помагат за изграждането на публичната облачна услуга на компанията и поддържат услуги, които помагат на други екипи да управляват свои собствени облаци OpenStack.

Според Джош Маккенти това е била идеята на Nebula още през 2008 г. Тя до голяма степен се разгръща в такава среда - в Rainbow Mansion. Имението е разположено високо - на хълм с изглед към Силицивата долина.

С покрив от испански керемиди и полилей във фоайето, този мини-дворец от 500 кв.м. на Западния бряг някога е бил дом на човек, който е спечелил милионите си от продажба на чипове за компютърни графични карти и CD-ROM устройства.

През първото десетилетие на 21 век Rainbow Mansion приютява хората, които са готови да променят света. Там живеят и служители на Google, и инженери на НАСА, служители на Tesla и инженери на Apple.

Имението Rainbow е създадено да бъде инкубатор на идеи. В непосредствена близост до фоайето има обща библиотека, в която се формират всякакви дискусии – от темите за национализма до свят, в който свободният поток на информация в мрежата надделява над необходимостта от лично уединение.

В гаража има импровизирана хардуерна лаборатория, където Mansionites изграждат миниатюрни подводници, сателити и безпилотни летателни апарати, на които можете да летите от своя Android телефон. И през годините от там са тръгнали много успешни стартъпи.

За да живеете в Rainbow Mansion, трябва да искате да промените света. Mansionites вече са променили света, създавайки най-важния проект с отворен код на десетилетието: OpenStack - Linux на облачните изчисления.

Кемп създава имението заедно с Джеси Шинглер, която също е част от екипа, разработил Nebula. Маккенти също живее там. Джеси Андрюс и Девин Карлън, също са редовни гости в къщата, както и други членове на екипа като Рахан Хозеин, Креон Левит и Джеф Линдзи.

Това са само някои от основателите на OpenStack. Много повече от тях са в Rackspace, включително Джим Къри, Лу Мурман, Джонатан Брайс, Марк Колиър и Рик Кларк, както и други от индустрията, най-вече Тиери Карез, разработчик на Ubuntu, който обсъди идеята за наистина отворен код на Amazon EC2 с Рик Кларк в Canonical, преди Кларк да се премести в Rackspace.

Само две години след дебюта си, OpenStack се прилага в Dell и HP и IBM и Cisco.

Във времето, около OpenStack се оформя много силна общност от компании, които използват платформата и допринасят за нейното развитие. Ето част от тях:

OpenStack днес

Към момента – над 10 години по-късно, платформата OpenStack дава много повече. В резултат на успешното сътрудничество и приноса на редица технологични гиганти, сред които Microsoft, Intel, Samsung, Cisco, Ubuntu и др. -  в среда OpenStack могат да бъдат изпълнявани редица услуги и приложения.

Сред тях са Marketplace, BackUp и SnapShot, които са в процес на имплементация от българската хостинг компания Делта Клауд ООД и ще бъдат анонсирани съвсем скоро.

OpenStack в България

Делта Клауд (Delta.bg) е първата българска хостинг компания, която успешно интегрира OpenStack в своя облак. Това осигурява впечатляваща гъвкавост за системните администратори на хостинг компанията и нейните клиенти, и разкрива ключови предимствата за бизнеса в България с услугите, които предстои да анонсираме съвсем скоро - stay tuned!

Боряна Попова

Боряна Попова

Боряна обича технологиите и има афинитет към това - сложните неща да бъдат обяснявани разбираемо, за да бъдат достъпни за повече хора. Има интереси и в областите AI, ML, SEO, копирайтинг, дизайн и др. С внимание към детайла и силата на думите, Боряна харесва нетипичните и нестандартни решения и обича да излиза out of the box.

Абонирайте се за Delta Cloud бюлетин

Абонирайте се за бюлетина на Delta Cloud, за да получавате ексклузивни оферти, актуални новини, статистики и ценна информация за облачните технологии, информационната сигурност и услугите, които предлагаме.