SharePoint u oblacima – kako ga koristiti bez i jednog jedinog servera

Samo za velike?

SharePoint je ultimativno oružje velikih tvrtki. Od pet stotina tvrtki na popisu Fortune 500 sve se u većem ili manjem opsegu služe SharePointom, no sad se situacija počinje mijenjati i kod srednjih i malih tvrtki gdje je SharePoint tehnologija manje zastupljena. Da pojasnimo, što se tiče krajnjih korisnika oni je jednako dobro prihvaćaju kako u velikim korporacijama tako i u malim tvrtkama s dvoje-troje zaposlenih, no dodatni posao koji SharePoint instalacija nosi sa sobom je ono za što male i srednje tvrtke nemaju resursa.

PIŠE Adis Jugo

Adis Jugo je Microsoft MVP za SharePoint Server i software arhitekt s više od dvadeset godina iskustva. Radi kao tehnološki stručni savjetnik i menadžer konzultant za tvrtku PlanB sa sjedištem u Njemačkoj i za njene tvrtke kćeri u BiH i Bugarskoj. Kao konzultant i arhitekt vodi SharePoint projekte u nekima od najvećih njemačkih i europskih tvrtki.

Već gotovo deset godina predaje na raznim Microsoftovim konferencijama uključujući i Microsoft WinDays, Microsoft Network, Microsoft Sinergija, ShareConf (Njemačka), CloudConf (Njemačka), Collaboration Days (Švicarska) i mnoge druge. Adisov blog s temama koje uključuju arhitekturu, razvoj, planiranje i upravljanje SharePoint rješenjima nalazi se na http://adis.jugo.ba

Pod resursima se ne misli na cijene licenci i dodatnog hardwarea nužnog za instalaciju. Uostalom, jedna edicija SharePointa (Foundation) je besplatna, no riječ je o tomu da SharePoint zahtijeva školovane administratore i stručni tim za podršku treće razine. Ako korisnički zahtjevi ili procesi unutar tvrtke nisu podržani standardnim mogućnostima SharePointa potrebni su i obrazovani SharePoint developeri. To su, barem dosad, bile glavne prepreke značajnijem prihvaćanju SharePointa u srednjim i malim tvrtkama.

Microsoft je već godinama svjestan tog problema pa je jedan od glavnih prioriteta u njihovoj SaaS strategiji (Software as a Service) bilo upravo migriranje SharePointa u sve popularniji oblak i da se korisnicima ponudi u obliku usluge. To bi isključilo komplicirani model licenciranja, dodatnu infrastrukturu koja osigurava kvalitetno i kontinuirano funkcioniranje SharePointa i posebno školovane administratore. Dakle, baš ono što oblak obećava: smanjenje troškova uz povećanu kvalitetu.


Kada govorimo o SharePointu kao usluzi u oblaku, cjelokupnu problematiku treba promotriti iz raznih kutova koji korespondiraju s poznatim slojevima oblaka. U prvom redu treba nam infrastruktura na kojoj će SharePoint u oblaku biti instaliran – IaaS (Infrastructure as a Service). SharePoint je zapravo .NET aplikacija pa je potreban operativni sustav Windows Server i .NET 4.0 na kojemu će se pokretati. Nadalje, jedna SharePoint instalacija neće opsluživati sve korisnike tog ciljnog oblaka - potrebna je tehnologija i proces koji će omogućiti kreiranje odvojenih tennanta (naloga, instalacija) na jednoj te istoj infrastrukturi. U tom smislu govorimo o PaaS zahtjevima (Platform as a Service) koje SharePoint postavlja u oblaku. Iako će se ponuditi u SaaS obliku SharePoint zahtijeva SQL Server kao SaaS uslugu jer zbog fizičkih ograničenja SharePointove baze podataka moraju biti kreirane i konfigurirane dinamički na osnovi trenutnih zahtjeva i potreba.

Iz ovoga je jasno - da bi SharePoint ponudili kao uslugu u Microsoftu su morali riješiti IaaS, PaaS i SaaS zahtjeve koje postavlja on sam, tj. uspostaviti svu nužnu infrastrukturu i logistiku, što nije bilo nimalo jednostavno. Dodatno, zbog popularnosti SharePointa kao platforme za razvoj poslovnih rješenja ponuda u obliku usluge povlači i pitanje mogućnosti instaliranja vlastitih rješenja na tu zajedničku oblak-platformu. S obzirom na to da su sve donedavno poslovna rješenja zasnovana na SharePointu bila serverski orijentirana (svako SharePoint rješenje bilo je dostupno na cijeloj farmi, bez obzira na broj korisnika koji SharePoint farmu koriste) to je cijelu stvar dodatno zakompliciralo. SharePoint se nije smio ponuditi kao usluga bez mogućnosti da korisnici na njega instaliraju vlastita poslovna rješenja, a takva otvorenost jednostavno ne bi bila prihvatljiva poslovnim korisnicima.

Još kad se zna da je zbog zakonodavstva u pojedinim zemljama i zakona o privatnosti podataka bilo niz ograničenja za fizičke lokacije data-centara, jasno je koliko je kompleksna cijela problematika.

Prvi potez u smjeru ponude SharePointa kao usluge napravljen je 2008. godine u sklopu BPOS paketa (Microsoft Business Productivity Online Services). To je bio prvi korak pri seljenju Microsoftovih poslovnih i serverskih rješenja u oblak (Exchange Server, Communications Server, SharePoint Server). SharePoint Online koji se nalazio u sklopu Microsoft BPOS-a imao je jedan ključni limitirajući faktor: na njemu su se mogla razvijati samo tzv. serverska rješenja na razini farme koja su duboko integrirana u sam SharePoint server. S obzirom na to da BPOS infrastrukturu dijeli mnoštvo korisnika, to je istodobno značilo da su i rješenja koja je namjenski razvio jedan korisnik bila u određenoj mjeri vidljiva i drugima. Zbog toga je Microsoft uveo rigorozan program provjere i osiguranja kvalitete tih rješenja. Očito, kao prvi korak pri seljenju SharePointa u oblak BPOS je imao svoje dječje bolesti, ali je i ukazao kojim će se pravcem stvari kretati sljedećih godina.

Dobrodošao Office 365
SharePoint 2010 je donio jedan novi model razvoja - Sandbox za koji je od početka bilo jasno da je usmjeren k oblaku. Rješenja su se i dalje razvijala kao serverska, ali su administratori mogli ograničiti resurse koje je sandbox rješenje moglo koristiti. Sandbox rješenja bila su izolirana na razini site-kolekcije pa korisnici koji su ih htjeli instalirati nisu ometali ostale niti su ta rješenja bila vidljiva drugima.

I zaista, kad je u travnju 2011. Microsoft predstavio svoju novu SaaS platformu, nasljednika BPOS-a, pod nazivom Office 365, Sandbox je postao jedini mogući način razvoja rješenja za Office 365 - SharePoint online. Office 365 koji je osim SharePoint Onlinea uključivao i Exchange Online i Lync Online (nasljednik Communication Servera) brzo je stjecao popularnost.

Iako su se Sandbox rješenja pokazala dobrima, upotrebljivima i primjenjivima kako u SharePoint Online tako i u on-premise scenarijima ipak su pokazala i neke nedostatke. Nije bio dostupan cjelokupni SharePoint objektni model (API), a bilo je zabranjeno korištenje bilo kakvih vanjskih resursa, poput vanjskih baza podataka ili web-servisa. Ako je neko Sandbox rješenje moralo koristiti web-servis jedina je opcija bila da se razvije u Silverlightu (što ga je tehnički činilo klijentskim rješenjem) no to je za sobom povlačilo druge probleme. Silverlight nije bio svugdje dostupan, a često čak nije bio dozvoljen ni pravilima tvrtke. Praktički nije bilo moguće koristiti eksterne baze podataka. Dakle, Sandbox rješenja su bila ograničena isključivo na SharePoint podatke unutar site-kolekcije u kojoj takvo rješenje živi. To je bilo njihovo glavno ograničenje.

Sretna nova 2013...
Ovog ljeta, neposredno pred izlazak nove verzije SharePointa - SharePoint Server 2013 - Microsoft je poslao važnu poruku: sve što je dostupno u SharePointu on-premise - instaliranom na infrastrukturi korisnika - mora biti dostupno i u oblaku. Dalje, obje platforme SharePoint i SharePoint Online razvijat će se paralelno i istodobno dobivati nove mogućnosti. Zbog toga je napravljeno nekoliko radikalnih rezova, kako u arhitekturi SharePointa tako i u arhitekturi rješenja koja se pišu za njega. Kako je glavna prepreka široj upotrebi SharePoint rješenja u oblaku bila što ta rješenja neminovno žive u samom SharePointu (serverska rješenja), postalo je jasno da ih treba preseliti izvan SharePointa. Tako bi se izbrisala razlika između SharePoint Servera (on-premise) i SharePoint Onlinea (Office 365) koji bi bili čisti SharePoint, a rješenja bazirana na SharePoint podacima preselila bi se negdje drugdje.

To je pak potaknulo nekoliko novih arhitektonskih izazova. Kako rješenja koja žive na nekom drugom serveru instalirati unutar SharePointa? Kako će se autentificirati? Tko će i kako izdavati dozvole za resurse i podatke koje ta rješenja smiju koristiti? Kako će se dograđivati nove verzije?

Odgovor je u modelu čiji naziv pomalo zbunjuje - Apps. Apps za SharePoint nisu Angry Birds, to su poslovna rješenja koncipirana i razvijana na poseban način. Ne žive u SharePointu, no po potrebi se instaliraju u SharePoint site-kolekcije i obavljaju funkcije za koje su razvijene. Iz Microsofta rado priznaju da je glavni motiv za kreiranje nove arhitekture i platforme bio SharePoint Online mada je to - shodno motu da više nema razlike između online i on-premise - primjenjiv i preferirani model i za razvoj on-premise rješenja.


SharePoint App Model
Odgovori na gore postavljena pitanja nude se u Microsoft SharePoint Storeu i korporativnom katalogu za distribuciju i licenciranje Appsa (rješenja), a u OAuth protokolu za autentificiranje i unaprijeđenim CSOM i REST/OData API-jima za pristup Appsa SharePoint podacima.

Microsoft SharePoint Store je središnje mjesto za kupnju Appsa, kako u Officeu 365 tako i u SharePointu on-premise. Svi vendori mogu razvijati Apps i uključiti se u Store. Dakako, proces odobravanja Appsa za Store je vrlo rigorozan i podliježe strogim Microsoftovim standardima, ali najpoznatiji SharePoint vendori - uključujući AvePoint, Nintex i ostale - već su postavili App-verzije svojih rješenja na Microsoft SharePoint Store. Rješenja ponuđena na Storeu mogu biti besplatna i komercijalna. Ako su komercijalna unutar SharePoint Online administracije imate mogućnost upravljanja licencama i licencnim modelima za sve kupljene aplikacije.


Microsoft SharePoint Store s dostupnim aplikacijama
U trenutku kad je aplikacija kupljena na Storeu, ovisno o licencnom modelu, prebacuje se u tzv. korporativni katalog i može se koristiti unutar site-kolekcija. Korporativni katalog je središnje mjesto unutar tvrtke iz kojega se SharePoint Apps instaliraju u site-kolekcije.


Aplikacija kupljena ili preuzeta iz Microsoft SharePoint Storea
Tko može kupiti aplikacije ako koristi SharePoint Online? To ovisi o poslovnom procesu i pravilima unutar tvrtke. Možete dozvoliti voditeljima odjela pa čak i pojedincima da kupuju aplikacije, ali u tom slučaju treba voditi računa o upravljanju licencama i pravima korištenja. Češće se događa - a to je i najtraženija opcija u SharePoint Onlineu - da se SharePoint aplikacije kupuju centralizirano s jednog mjesta u tvrtki s kojega se upravlja i licencama. Tada voditelji odjela i krajnji korisnici mogu slati zahtjeve za pojedinim aplikacijama, a s popisa - ako je zahtjev odobren – administratori mogu direktno prijeći na Store i kupiti traženu aplikaciju. Tako je uspostavljen kontroliran i jasan proces nabavke aplikacija iz Storea.

Sve što je dostupno u SharePointu instaliranom na infrastrukturi mora biti dostupno i u oblaku

A što je sa samostalno razvijanim rješenjima? Moraju li i ona ići preko Microsoft SharePoint Storea? Ne moraju. Ako su razvijena po App-modelu mogu se direktno uključiti u korporativni katalog i koristiti na site-kolekcijama gdje je to potrebno. Dakako, za vlastita rješenja koja ne dolaze sa Storea nema Microsoftove provjere kvalitete ni mogućnosti upravljanja licencama. Ali, ako ugovor s vendorom uključuje točno određeni broj licenci, kroz monitoring aplikacija može se saznati na koliko je site-kolekcija određena aplikacija instalirana i korištena.

Vlastita aplikacija instalirana u korporativni katalog
A što je ispod haube?

Spomenuto je da se Appsi ne izvršavaju na SharePoint serverima nego na drugima posebno namijenjenima za tu svrhu.

U novoj iteraciji SharePoint platforme, kodno nazvanoj Wave 15, Microsoft se u novoj verziji SharePoint Onlinea, koji dijeli platformu i kod sa SharePoint 2013 paketom, značajno primaknuo postavljenom cilju da ta dva proizvoda imaju istu funkcionalnost i nude iste mogućnosti. Razlike uvijek postoje prije svega u WCM (Web Content Management) mogućnostima koje su u on-premise verziji (SharePoint Server 2013) značajno naprednije negoli u online inačici. Dakako, na SharePoint Online nećete moći instalirati serverski kod, ali to je tehnologija od koje će se Microsoft u budućnosti sve radikalnije odmicati, a u on-premiseu zadržana je najviše zbog kompatibilnosti s prethodnim verzijama, kao i zbog specifičnih administrativnih funkcija koje u online verziji nit su dostupne niti bi imale smisla (provisioning, timer jobs i sl.). Za standardna poslovna rješenja novi App-model, skup alata i protokola koji je isporučen uz njega nudi više negoli dovoljno prostora i mogućnosti za razvoj kvalitetnih rješenja. Kombinacija Office 365 i Windows Azure platforme pokazala se dobrom jer su razvijena rješenja performantna, skalabilna, i ne zahtijevaju nikakvu vlastitu infrastrukturu.

Ako smo SharePoint već preselili u oblak pomoću Microsoftove Office 365 SaaS platforme, nije li kontradiktorno postavljati vlastitu infrastrukturu i trošiti vlastite resurse za hostanje servera na kojem će biti aplikacije? Odgovor je potvrdan i, mada je to u principu moguće, nije baš konzekventno. Za te scenarije Microsoft je predvidio poseban tip Appsa nazvan - Azure Autoprovisioned Apps. Vrijedi malo detaljnije analizirati taj naziv jer sam govori dosta toga. Azure označava da se takva rješenja hostaju na Microsoftovoj Iaas i PaaS platformi Windows Azure koja osim što pruža hardversku infrastrukturu nudi i usluge platforme poput korištenja procesa i servisa pa čak i usluge iz SaaS segmenta kroz Azure SQL bazu podataka. Ovog ljeta, paralelno s izlaskom nove verzije SharePointa, u Windows Azure je dodana nova usluga Web Sites koja omogućuje hostanje vlastitih web-stranica na Windows Azure. Baš ta usluga dopunjuje Office 365/SharePoint Online ponudu i nudi mogućnost hostanja vlastitih SharePoint rješenja na Windows Azure web-sites, dakle odvojeno od SharePoint Onlinea, baš onako kako zahtijeva Apps arhitektura. Dakle, SharePoint Online je u Office u365, a aplikacije su u Windows Azureu.

Kako sve ne bi postalo previše komplicirano, Microsoft je za Azure Autoprovisioned Apps model omogućio automatsko instaliranje Appsa na Windows Azure, direktno kroz Office 365/SharePoint Online okruženje. Zbog toga je tu i izraz Autoprovisioned što znači da se ne mora ručno instalirati u Azure. Pri instalaciji takve aplikacije unutar neke site-kolekcije automatski se u pozadini kreira Azure web-site i po potrebi Azure SQL baza podataka koji služe za spremanje poslovne logistike i podataka. Zanimljivo je da korisnik Officea 365 ne mora sklapati poseban ugovor za korištenje Windows Azure resursa jer se uz SharePoint Online tennant (nalog) u pozadini kreira i Windows Azure nalog. Po Azure modelu licenciranja koji podrazumijeva plaćanje po korištenju, ako se taj nalog ne iskoristi neće biti ni fakturiran. Ako ga koristite u sklopu Office 365 računa, vidjet ćete i stavku za Windows Azure na osnovi utroška tih resursa. Zanimljivo je da se ovaj specijalni Azure nalog ne može koristiti nikako drukčije već isključivo za SharePoint Online rješenja jer ne postoji mogućnost da se na njemu drži nešto drugo. Za njega se ne dobiju čak ni pristupni podaci. Cijela je magija skrivena u pozadini i može se koristiti jedino uz Office 365 i SharePoint Online. Podaci u Azure nalogu uvijek su smješteni u istom data-centru kao i vaši Office 365 podaci. Ako niste specijalno podesili željeni centar to će biti onaj koji je fizički najbliži adresi prijave. Za Hrvatsku to je zapadnoeuropski data-centar u Republici Irskoj.