Možda ste se pitali kako je sve moguće iskoristiti mogućnosti vašeg NAS uređaja, a možda ste ga i svjesno kupili s nekom specifičnom namjenom koju Synology aplikacije ne pokrivaju.

Naime, iako sa nedavno u članku Synology aplikacije, koje su i čemu služe? napravio kratki prikaz najpoznatijih aplikacija iz Synology palete, ovisno o vašem modelu NAS-a, imati ćete i mogućnosti iskoristiti njegov potencijal za korištenje puno drugih aplikacija i servisa.

Pogledajmo u nastavku što je sve potrebno i na koji način možete izvući maksimum iz ovih čudnovatih "malih" kutija.

Docker - upoznajte budućnost kroz mikro servise i kontejnere  

Synology već negdje od 2015. podržava Docker platformu na svojim Intel NAS uređajima iz "+ linije" (ili bolji model, više o njima pogledajte u ovom članku), no što je zapravo Docker i što vaš NAS njegovom podrškom zapravo može?

Jednom riječju, svašta! Docker je po definiciji slijedeće:

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.

Princip generiranja kontejnera

Dakle virtualiziranje aplikacije ili servisa u obliku "kontejnera". Što to zapravo znači? Pa to znači da aplikaciju koju želite pokrenuti na NAS-u neće instalirati putem Package center-a kao bilo koju drugu "službenu" aplikaciju, već ćete za to koristiti Docker okolinu, koja će u konačnici izolirati to rješenje od ostatka operativnog sustava (DSM). Zašto je to dobro? Iz jednostavnog razloga što nećete imati straha da neke sistemske promjene na razini DSM-a će vam poremetiti rad aplikacije. Dodatno, ako želite prebaciti aplikaciju na neki drugi uređaj, tamo je samo potrebno imati Docker platformu instaliranu, sve ostalo putuje unutar kontejnera neovisno o time kakav je uređaj ili OS u pitanju.

Docker je platforma unutar koje možete imati kompleksne operativne sustave pa sve do običnih web servisa generalne namjene ili pak web platforme kao recimo ova na kojoj se nalazi ovaj site.

Kao primjer uzeti ćemo recimo činjenicu da želite koristiti nekakvu platformu za forum i to držati na vašem NAS-u. Ukoliko instalacija navedene platforme ne postoji za DSM, istu nećete moći instalirati. No, ukoliko to napravite na Docker platformi (pod pretpostavkom da ga NAS podržava), dobiti ćete u konačnici jednaki rezultat. Forum platforma će samo biti izolirana unutar Docker okoline kao kontejner, ali i dalje dostupna na uređaju gotovo jednako kao da je i instalirana direktno preko Package centra.

Dakle kontejner je virtualno računalo?

Ne nije. Česta pogreška je izjednačavanje virtualnog računala sa Docker kontejnerom.

Naime nije čudno za očekivati takav ishod i zaključak, ali kontejner u usporedbi sa virtualnim računalom troši neusporedivo manje resursa i pritom stavlja u kontejner samo aplikaciju ili servis te sve popratne pomoćne elemente koji su potrebni da bi se ista pokrenula i radila.

Ako to usporedimo sa virtualnim računalom, onda ćemo vidjeti da VM u biti emulira i fizičke resurse koje bi inače računalu trebalo (CPU, RAM, HDD i mreža), operativni sustav i tek onda na samom kraju, aplikaciju ili servis koji vam je potreban.

Dakle resursno gledajući kontejner je izuzetno "lagan", u usporedbi sa virtualnim računalom, a time daje i dojam da sama aplikacija radi direktno na Docker uređaju.

Usporedba virtualnog računala (lijevo) i Docker koncepta (desno)

Kao što je vidljivo sa slike, ako je ideja koristiti aplikaciju ili servis na nekom uređaju koji je ne može nativno instalirati, ali može imati podršku za Docker ili virtualna računala, uvijek će se isplatiti istu koristiti putem Docker-a.

Kada to stavimo u perspektivu NAS uređaja koji, iako jesu načelno raznoliki po pitanju snage, uvelike dominiraju oni koji nemaju jake i brze procesore kao ni previše radne memorije. To su upravo dvije stvari koje virtualna računala trebaju najviše. Dobiti funkcionalnu aplikaciju na slabijem uređaju koji podržava Docker biti će neusporedivo lakše, brže i jednostavnije, a nećete u realnosti razaznati razliku da ti taj ista aplikacija radi putem Docker platforme ili je instalirana direktno na fizički NAS.

Test, pred produkcija, produkcija!

Dodatni benefit Docker platforme je taj što možete istu aplikaciju ili servis koristit na istom stroju kompletno izolirane jedne od drugih putem kontejnera gdje će svaki od njih predstavljati određenu fazu života aplikacije ili navedenog servisa.

Migracija kontejnera sa jednog na drugi Docker server je trivijalna i neće zahtijevati nikakve dodatne korake osim da migrirate kontejner na novi server i pokrene te ga.

Ukoliko primjerice imate potrebu testirati da li neka promjena aplikacije je dobra i radi kako treba (recimo dolazi nova verzija aplikacije koju koristite), možete istu prvo testirati unutar nekog testnog kontejnera prije nego nadogradite svoju "glavnu" verziju istoga i time uzrokujete nedostupnost aplikacije ili servisa ako nešto pođe po zlu.

Kako radi Docker na Synology NAS-u?

Da bi dobili inicijalnu podršku Docker-a, trebate ga instalirati na NAS. Ovaj dio priče ide putem zadanog Package Center-a, gdje ćete u konačnici završiti sa Docker podrškom na vašem uređaju.

NAPOMENA: ovo je popis trenutno podržanih uređaja za Docker platformu

FS series: FS6400, FS3600, FS3400, FS3017, FS2017, FS1018
SA series: SA3600, SA3400, SA3200D
21 series: RS4021xs+, RS3621xs+, RS3621RPxs, RS2821RP+, RS2421RP+, RS2421+, RS1221RP+, RS1221+, DS1821+, DS1621xs+, DS1621+, DVA3221
20 series: RS820RP+, RS820+, DS1520+, DS920+, DS720+, DS620slim, DS420+, DS220+
19 series: RS1619xs+, RS1219+, DS2419+II, DS2419+, DS1819+, DS1019+, DVA3219
18 series: RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+
17 series: RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xsII, DS3617xs, DS1817+, DS1517+
16 series: RS18016xs+, RS2416RP+, RS2416+, DS916+, DS716+II, DS716+, DS216+II, DS216+
15 series: RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+
14 series: RS3614xs+, RS3614RPxs, RS3614xs, RS2414RP+, RS2414+, RS814RP+, RS814+
13 series: RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+

Po instalaciji, Synology Docker sučelje će biti dostupno

Ono što vam je sada potrebno jest Docker image (predložak temeljem kojeg će se konfigurirati aplikacija ili servis koji vam je potreban). Do kompletnog javnog repozitorija koji ima veliki broj istih u svojoj ponudi možete doći ili putem docker sučelja, naredbenog retka ili preko web stranice hub.docker.com.

hub.docker.com prikazan preko Synology Docker sučelja
hub.docker.com web lokacija

Jednom preuzeta slika može se zatim iskoristit kako bi se putem odgovarajuće konfiguracije pokrenula aplikacija ili servis u obliku kontejnera.

Popis svih preuzetih imeage-a koji se nalaze na NAS-u

U konačnici, kada se zadovolje svi potrebni koraci za konfiguracije aplikacije ili servisa koji vam treba, unutar sučelja ćete imati vizualnu prezentaciju da je ista u obliku kontejnera i pokrenuta.

Svi dostupni Docker kontejneri na NAS uređaju

Dakle samo da još jednom prođemo generalno sve glavne korake koji su jedinstveni neovisno o tome koja aplikacija ili servis je u pitanju.

  1. Instalacije Docker platforme (jednokratno)
  2. Preuzimanje image-a
  3. Pokretanje kontejnera temeljem navedenog image-a

Neću ulaziti u detalje kako se to radi na pojedinoj aplikaciji niti je to ideja ovog članka. Tu sam samo htio pokazati da realno ako imate NAS koji može koristiti Docker platformu, imate u biti potencijal pomaknuti granice što sve vaš uređaj može raditi i koristiti.

Tko se brine o samim aplikacijama?

Bitno je napomenuti da kada koristite aplikacije putem Docker platforme, Synology nema nikakve veze sa istima niti vam je dužan pružiti podršku. Zašto? Iz jednostavnog razloga jer Synology obaveza prestaje nakon instalacije Docker platforme. To je "paket" oko kojeg se oni brinu da radi kako treba na uređajima kojima treba. Dodatno, to je paket koji spada u tip A aplikacije (podržane od strane Synology-a), pa se time nadogradnja na novu verziju kao i podrška oko generalnog problema Docker paketa svodi na Synology.

Ako govorimo o aplikacijama koje će se pokretati putem Docker platforme, e to je nešto drugo. Odgovornost na toj strani, kao i podrška te nove nadogradnje, padaju kao odgovornost na pojedinca ili tvrtku čije se rješenje koristi.

To znači da bi bilo dobro da koristite redovno ažurne i održavane image-e ako očekujete podršku i nove značajke s vremena na vrijeme.

Čisto kao primjer nekih redovno održavanih platformi sa službenom podrškom za Docker bile bi slijedeće:

Prikaz "službenih" Docker image-a

Primijetite da imaju Official image oznaku koju ne možete tek tako dobiti na hub.docker.com repozitoriju, a vama kao korisnicima će biti naznaka da se radi o legitimnom predlošku za koji ćete moći tražiti podršku i vjerojatno ima ažurnu i kvalitetno napisanu dokumentaciju.

Ovo se čini kompliciranim...

Realno trebati će neko vrijeme i malo vježbe kako bi pohvatali sve konce oko cijele ove priče, ali ovaj članak je bio samo kao prikaz dodatnih mogućnosti koje možete konfigurirati i koristiti na svojem NAS-u čak i ako ta aplikacija službeno nije podržana od strane Synology-a u obliku dediciranog paketa.

Da li je kontejner tehnologija za svih, nije? Da li je komplicirana i teška, pa i nije? Samo morate biti uporni i proći cijelu priču ispočetka kako ne bi bilo nekih velikih nejasnoća.

Jednom kada savladate osnove vidjeti ćete da neovisno od aplikacije ili neke druge veće platforme koju želite koristiti, sve se svodi na isti kalup. Uputa, članaka i dokumentacije ima brdo, tako da samo hrabro i vidjet ćete da vaš NAS može dodatno opravdati svoju inicijalnu cijenu i vrijednost.