Zacal by som trocha inak.
Preco zacal cloud?
Vsetko sa zacalo podstate virtualizaciou, ktora umoznuje vyuzivat "chytro" prostriedky, to znamena na jednom fyzickom serveri mozes mat XYZ instancii -> setrenie nakladov, vytazovanie fyzickych serverov.
Mas 8x jadrovy XEON 64GB RAM a na nom si mozes vytvorit X serverov, co pred rokom 2000 az take jednoduche nebolo.
Teraz si predstav, ze ak ti fyzicky server odide, ty prides o biznis, server je down atd...
Riesenie je vyuzivanie dalsich serverov.
Vytvoris dalsi fyzicky server s instanciami OS.
Takze mas 3 fyzicke servery a na nich rovnake instancie OS.
Kedze ak sa nad tym zamyslis, ak nespravis nejaky load balancing, tak stale len 1 server bude zatazovany a ostatne budu, len keby nieco.
To je velmi neefektivne a vyzadauje to $.
Sumar: Na jednej strane z jednej fyzickej krabicky si dokazal vytvorit virtualne 8, ale na druhej ak ti zomrie fyzicky server prisiel si dajme tomu o 8 sluzieb. Takze musis vytvorit backupy.
A teraz sa zamyslime, preco by som mal mat zapnute vsetky pocitace, ked momentalne zatazenie/cerpanie poziadaviek dokaze obsluhovat iba 1 server?
Riesenie: Mozem urcite fyzicke servery poddimenzovat (statistika...) a zaroven mozem "usetreny" vykon predavat tretej strane.
V podstate mam farmu strojov, ktore mi bezia nonstop. Momentalne zatazenie urcitej casti je take, ze mozem si dovolit prenajimat vypocetny vykon tretej strane.
Ked sa nad tym zamyslis, jednoducho takato vec "naskriptovat" nejde. Predstav si farmu 10000 serverov a migrovat medzi nimi virtualne instancie "tradicnym sposobom" nie je jednoduche.
Podstata celeho cloudu je chytry loadbalancing, zdielat "chytro" vykon medzi ostatnych zakaznikov a setrit vykon serverov. Napriklad ak tvoje datacentrum dlhodobo je zatazene na 85% vykonu, ty na zaklade urcitej statistiky mozes dajme tomu 10% serverov vypnut
Tym padom, ak by prisiel aj naraz, tych tvojich 5% mas stale online, a kym ti nastartuju sa ostatne casti infrastruktury (ci fyzicky alebo zo "setriaceho modu"), tak si zahojeny.
A ked si das vygooglit 'elastic computing' tak najdes viac informacii.
Existuju 4 (aspon ja o nich viem) moznosti/varianty cloudu.
IaaS
PaaS
SaaS
Prve 3 vygooglis, ale NaaS ani nie,
NaaS (Network as a Service)
Ked sa zamyslis nad tym, mas datacentrum, kde bezia nejake aplikacie, kde tvoje sietove zariadenia podla niecoho routuju/forwarduju data. Z pohladu zakaznika to nie je stale vhodne, napriklad ak mas zlozitejsie infrastruktury (najdes to v tych lepsich virtual hostingovych spolocnostiach) potrebujes si siet manazovat nejako inak. Napriklad vlastny firewall, nejaky "vlastny" loadbalancer na urcitej urovni aj virtualnych dat.
Ak sa pozries na novovznikajuci fenomen SDN (Software Defined Networking), tak si uvedomis, ze siete prezivaju revoluciu.
Vid Cisco ACI (Nexus 9k5). Podstata je ta, ze "tradicne" siete sa konfigurovali staticky raz za cas sa spravilo nieco (novy OS, kontrola...). Ale tym, ze su staticky nakonfigurovane, tak casto tvoja sietova infrastruktura nevie RYCHLO reagovat na ine stavy.
Ano, existuje SNMP, NETCONF, ale tieto protokoly nie su "REALTIME", tam nemas, ze do 100ms zmenis topologiu 10k sietovym nodom.
Napriklad, tradicne smerovacie protokoly nevedia reagovat na veci "zatazenie infrastruktury", nedokazes custom robit smerovanie na 1000 smerovacich(routroch), len tak...
Inymi slovami siete su strasny moloch, co sa neda dynamicky menit. Jedina vec co sa vyzaduje od sietovej instrastruktury je poslanie dat z bodu A do bodu B pricom su dodrzane kvalitativne poziadavky aplikacie na "cestu" (latencia, sirka pasma...) s urcitou policy.
Preto vzniklo viacmenej SDN, co som to riesil, tak najdalej su Cisco onePK (Cisco ONE) a OpenFlow a NSX(s tym som sa realne nezaoberal).
SDN si mozes predstavit ako urcite API zariadeni, ktore mozes programovat. (Je to strasne zjednodusene, ale aby si to pochopil).
Napriklad co som vytvoril v openflow?
Switch na 20 (Ruby) riadkoch, router na 100 riadkoch (Ruby), loadbalancer (na zaklade aktivity ludi na IRC (Ruby))
V onePK, xmpp/IRC (zariadenia sa pripoji na Jabber/IRC a mozem ho tam cez "conf t" konfigurovat), dynamicke smerovanie dat na zaklade stavu infrastruktury :-) (Python)
V podstate nie je problem v onePK spravit nieco taketo, posles ICMP s datami splachni zachod na urcitu adresu router na zaklade eventu da prikaz toalete a ta splachne... (Nie, zeby sa to nedalo teraz nejako naskriptovat, len ked niekto drzal enterprise zariadenie, tak uzna, ze to az take lahke nie je.)
Prec od sieti skor k sw na cloudy.
Ked sa nad tym zamyslis, puppet a chef je naco, v podstate opiciu pracu administratorov dokazes "vyklikat" v nastroji.
A ked sa skusis nad tym zamysliet, na viac rokov, tak podla mna informacne technologie budu take klikacie, ze niektore pracovne pozicie zaniknu.
Vid SDN, a Cisco ACI, nepotrebujes mat 20 CCIE v datacentre, ked ta krabicka vie sa sama o vsetko postarat, ty len jej das policy a spravi vsetko.
Podobne to bude aj pri serveroch.
Napriklad FreeBSD koketuje s outputmi programov cez serializacne formaty, a registrovat eventy -> posunut automatizaciu dalej.
Preco? Potrebujes sa na nieco dynamicky pozerat, takze potrebujes mat nejaky zaregistrovany event (spadol mi interface, preroutuj cely internet cez iny fyzicky stroj), ktory sa odosle.
Preco serializacny format, je jednoduchsie v JSONe parsovat text ako raw (sed/awk/cokolvek).
Dalej o futuristickych planoch nechcem pisat, lebo by som niekoho urazil.
Kazdopadne bude to este zaujimave.
Ano, cloud je fajn, len ma mnoho nevyhod (bezpecnost a ako bolo viac veci hore napisanych).
Podstata je asi taka, ze tvoja aplikacia by sa mala vysporiadat s viacerymi faktormi (load balancing,...)
:-)