Вие ли сте в облака, или облака е във вас?!?


Отдавна ми се щеше да взема да напиша това. Но просто не ми остава време. Обаче преди малко мернах една реклама "Как се прави бизнес в Облака?" и без да чета нищо повече, се мотивирах да напиша това писание.

Така наречените Cloud Services, или "Облака" както го превеждаме у нас, е новата мода "зелен хайвер", която стана модна в последните няколко години.

Това че като маркетингов термин се задържа толкова време, говори на някой хора като мен следните неща (които вероятно винаги са били истина, но сега е толкова лесно да бъдат илюстрирани):
  1. Клиентите са идиоти
  2. Маркетинговите хора са идиоти и идея си нямат какво продават И/ИЛИ
  3. Маркетинговите хора се опитват да заблудят клиентите си и да представят обикновена еволюция в революция в най-добрият случай
За какво става дума?

Спомняте ли си какво е WEB? Вероятно всеки един от вас има идея какво е това, щом можете да прочетете това писание.
Оригиналният Web копираше класическият Client-Server модел, където имаме клиентско приложение с фиксирана функционалност (web browser), което комуникира със сървър, където съществената работа се извършва, и визуализацията и се връща под формата на HTML (и не само) към клиентското приложение, което визуализира резултатите.
Този модел еволюираше в началото главно в увеличаване на визуализационните възможности на web browser-а (и това бяха основните войни между конкурентите до HTML4). Сървърната страна е свободна за дизайн и не ограничена от съвместимости, така че и там се случиха много неща, но те не са важни за това, което искам да изложа.
В един момент се оказа, че времето за реакция на потребителският интерфейс започна да става проблем. Защото то зависеше от round-trip закъснението между browser-а и сървъра, тъй като всяка потребителска интеракция отиваше до сървъра, той променяше визуализацията и я връщаше на клиента. Нещо в повече, при по-тежките потребителски интерфейси, които са И ЛОШО проектирани (защото винаги има как да бъдат направени по добре), това генерираше и много трафик, понеже те обновяваха цялата тежка визуализация през мрежата на всяка итерация.
Така се появи идеологията на Web 2.0. Това всъщност не е нищо ново. Няма нов стандарт, няма нищо, просто говорим за ПО-ХИТЪР ПОДХОД при програмирането на web страници, където част от визуализацията се поема от код работещ директно в самият browser (написан на JavaScript), който управлява част от визуализацията, и така вместо всяка итеракция от клиента с интерфейса да отива към сървъра, част от тях остават и се интерпретират локално (в идеалният случай, всичко свързано с потребителският интерфейс) и само данни се обменят със сървъра. Това прави интерфейса да изглежда че работи значително по бързо, и да е много бърз по реакция (всеки модерен web сайт, и всички google услуги използват този подход).
В началото се говореше само за AJAX техники за програмиране на JS, но после започна да се налага термина Web 2.0, заради комбинацията от нови CSS техники, и сериозната употреба на JavaScript и data driven model-и между сървъра и клиента. MVC подхода там, даже очаква че всичко е в клиента, и само M (моделът) е споделено между клиента и сървъра.
JavaScript стана толкова важна част от потребителските интерфейси, че основната война между browser-ите днес (и в последните 5-6 години) е изключително концентрирана в производителността и функционалността на JavaScript, дотолкова, че JavaScript днес е най-бързият интерпретируем програмен език от mainstream-ите, по-някога по-малко от 2 пъти по-бавен от оптимизиран код написан на C. Ако разгледате проекта emscripten ще видите че код написан на C, и после компилиран до IR код, който се интерпретира от JavaScript по-някога е само 3 пъти по-бавен от оригиналната C програма (codeacademy.com например работи с ОРИГИНАЛНИЯТ python интерпретатор, написан на C и емулиран върху JavaScript, и той работи не съществено по-бавно от оригиналният Python). Съвременните оптимизации на JS, и JIT-овете му са толкова качествени, че са просто уникални. Особено JS в IE10 е убийствено бърз (за момента).
Така и цялото това движение HTML5 е малко смешно. Защото основните промени в новият задаващ се стандарт не са в HTML-а, който почти не е пипнат. А просто вече се добавят някой нови CSS атрибути, и JavaScript-а е задължителен, както и цял набор от свързани с него API-та, необходими за опериране с файлове, криптиране на трафик, използване на local storage, по леки (web но и не само)sockets, server data push, видео и аудио управление, и други. Новите стадарти днес са практически ИЗКЛЮЧИТЕЛНО в JavaScript (който бе разглеждан опционално, и не част от стандарта в HTML4 например). Ако отидете на http://html5test.com ще забележите, че няма нито един HTML таг или дори CSS атрибути тествани там. Само JavaScript.
HTML5 е тук за да се опита да даде стандарт, който да позволи Web 2.0 подхода да бъде основен при разработването на web приложения, и да гарантира определено ниво на съвместимост.
С тази еволюция, която се случва в Web приложенията, започнаха да се появяват определени Hardcore изпълнения.
JavaScript everywhere. Този програмен език започна не просто да е "единствен" за разработването на Web клиентски приложения. Той започна да се налага като embedded език във всякакви проекти замествайки ембедването на Perl, Python, Ruby, дори Lua. Тези които не го харесват заради "Free (Type) Style" програмирането му, почнаха да използват "конвертори, компилатори" до JavaScript като CoffeeScript (или Ruby 2 Js). Но това увеличава доминирането на JS, не го намалява. И JS бавно започва да става доминантен дори при Server side програмирането - просто е вече пълно с добри и евтини програмисти за JS, който предпочитат унифициран shared code (data model и репрезентация) между front-end-а и backend-а, и какво по добро от това да имаш обща програмна среда на всякъде? И тъй като front-end-а, е JavaScript, това означава JS на backend също. Само проследете невероятното развитие на проекти като Node.JS и не само, за да видите за какво става дума. "Революцията" се случва в JavaScript-а. Вече и чисти standalone приложения, които нямат нищо общо с каквато и да е визуализация се пишат на JS, защото е лесно, защото е бързо (във всички смисли на думата), и защото е модерно (например TFTP, DHCP сървъри и други).
Та след цялото това въведение да се върна на основната тема.
От къде дойде термина Cloud?
На фона на тази (р)еволюция, започна да се говори за Web 3.0.
Основната идея там е много проста, сравнена със старите модели:
Web 1.0 - Класически client-server модел, където имаме много тънък клиент, и всичката работа се извършва във сървъра, включително свързана с визуализацията на резултата
Web 2.0 - Цялата визуализация е в клиента, всякаква итеракция свързана с нея, се изпълнява на клиента, но всичкото обработване на данните и представянето им в подходящ формат се извършва на сървъра. Ако сървъра трябва да получи данни от други източници, то той си ги извлича сам, обработва ги и ги предава в подходящ опростен формат на визуализиращият клиент. Комуникацията е клиент към един сървър, основно данни.
Web 3.0 - Всичко се прави само от клиента. Вече нямаме централизиран сървър, който да подава данните предварително обработени. Напротив, клиента като browser извлича данните от различни услуги и сървъри по интернет, комбинира ги и ги визуализира спрямо своята си логика. Няма централен сървър, да не кажем че може да няма такъв въобще. Говорим за напълно самостоятелни standalone приложения, които работят на browser-а и всички използвани услуги в интернет подпомагат тяхната работа, но приложението е независимо.

Web 3.0 има много интересни предимства.
Но най-важната разлика - нямаме централизиран сървър.

Тогава как точно изглеждат и могат да бъдат описани услугите и комбинацията микс от сървъри и клиенти без никаква конкретна централизация, които реализират сборно функционалността на това приложение? И в ранните презентации за Web 3.0 просто започна да се използва терминат Cloud. Описващ масивна дистрибуция между безброй различни по функционалност клиенти и безброй различни по функционалност и услуги сървъри, които нямат ясна структура, а просто са обединени в частната специфика на даденото приложение, но могат да бъдат използвани едновременно и от други съвсем различни приложения.

ТОВА Е ОРИГИНАЛНАТА ИДЕЯ, която стоеше зад термина Cloud. И той (Б)е изключително свързан с идеологията зад Web 3.0.

Днес Web 3.0 тип приложения се срещат тук там, но са рядкост, точно както бяха рядкост Web 2.0 приложенията преди 10 години, въпреки че ги имаше. Но това няма значение.

Маркетолозите на някой производиели и услуги харесаха термина и започнаха да го използват. И той постепенно започна да изкривява своето значение.
Например Амазон в началото хареса идеята за масивна дистрибуция на сървърната част, с неясното и без значение определение кой сървър точно извършва услугата, за техните AWS (които са класическо MPP подход, използван масово в определени среди от 40-50 години) и така започна да използва термина за тях. Важно е да отбележа, че ТОВА Е МНОГО ОГРАНИЧЕН ЧАСТЕН СЛУЧАЙ на оригиналната идея. Първоначално те го ползваха само за услугите си където има масово дистрибутиране чрез специално API и няма обвързаност с хардуер, но в последствие започнаха да го използват като термин за всичките си услуги, дори когато говорим за обикновен хостинг, дори да няма нищо общо с тази идея (обикновен хостинг е равно на класически клиент-сървър модел, не говорим за cloud тук въобще). После Microsoft поеха термина с голям ентсиазъм с техният Azure, първоначално както Amazon само за дистрибутираната сървърна част, после и за обикновеният хостинг.
После други производители почнаха да изкривяват термина (хареса им маркетинговата сила на Web 3.0 - нова версия, и маркетинговото наливане от Амазон и Microsoft) така че да отговаря на техните класически модели. Например VMware смята за вид cloud дори това, че можеш да местиш виртуална машина от една физическа машина на друга. Едва ли не, щом нямаш задължителна обвързаност с хардуер (макар и винаги съотношението да е 1:1 в даден момент) говорим за cloud. Други почнаха да наричат класическите си CDN-и Cloud (така изведнъж куп service provider-и започнаха да предоставят "cloud" услуги!?!?! че и винаги ги били предоставяли в последните 15 години). Трети изпаднаха до там, че наричат обикновени client-server модели cloud (и тук мога да сложа и производители като IBM например). Едва ли не, днес под Cloud се разбира всяка услуга, която е host-ната някъде в Интернет, дори и ако е client-server, дори и ако говорим за централизиран сървър (дори и от виртуална гледна точка).
Аз не мога да не се потреса от това. Какво стана с Интернет хостинг и Интранет термина едно време? Просто го сменихме на Cloud, и сега обясняваме на клиентите как сме открили топлата вода и те трябва да платят прескъпо за да им продадем същото нещо, което им продадохме преди 15 години! Не че има нещо лошо в това. Просто искам да изкрещя тук, че искам списък с всички клиенти, които се връзват на това, защото аз имам още много други интересни стари неща, които искам да им продам прескъпо под нови имена. Даже обещавам, че ще си назнача специалист по измислянето на ЖЕСТОКИ имена! Гаранция (Франция)!
Но Cloud изкривяванията не се спират до там. Толкова си го харесаха този термин разни маркетолози, че заради близките по идеология outsourcing и hosting модели, днес вече Cloud като термин се използва от някой производители дори за референция към класически outsourcing, заменяйки "software as a service" терминологията,и идеите от ... началото на 90-те?!?!? (И тук мога да включа компании като Cisco и Microsoft в това изкривяване). Дори термини като crowdsourcing, започнах да забелязвам на места написани като cloudsourcing, да се чудиш за правописна грешка ли говорим или налагане на масивен идиотизъм.
Иди разбери, някой като ти продава "Cloud" какво точно ти продава - хостинг, оутсорсинг, отказоустойчивост на сървърите, дистрибутирани в един логически сървър калкулации (MPP), или дистрибутирани в различни сървъри услуги, с независим клиент, който обслужва сам данните или всичко взето заедно и нищо?
Днес Cloud няма никакъв смисъл като термин. Той така се разми, че не казва вече нищо. И точно за това, говори толкова много, за тези които го използват, и тези които му вярват. Те търгуват едно нищо. Или както ние у нас обичаме да казваме "зелен хайвер".
Затова и този термин започва да ме дразни. Дразни ме не това че света е пълен с идиоти, дразни ме това, че и аз не правя пари от този факт. Какви Cloud услуги искате да ви продам?

Страници: 1

Бързи връзки


Търсене


Архив

RSS Абонамент

Новини от Грамофон

"Новини от Грамофон" - Следете последните новини от България и чужбина обединени на едно място. Обновяват се през 1 минута.

 

  •  

Ново: Публикуване