Společnost ownCloud vznikla v roce 2011 s cílem nabídnout svobodnou alternativu k proprietárním poskytovatelům služeb pro ukládání dat v cloudu. Výsledný produkt - ownCloud server - umožňuje na téměř libovolném stroji zdarma postavit službu konkurující již zmíněnému Dropboxu nebo třeba Google Drive.
Uživatelské rozhraní
Uživatelé přistupují k datům přes webový prohlížeč nebo pomocí desktopových či mobilních klientů. Existují klienti pro všechny významné operační systémy, přičemž ti desktopoví jsou k dispozici zdarma a mobilní za symbolický poplatek.
Desktopový klient je aplikace běžící na pozadí operačního systému. Pro svou funkci potřebuje adresu ownCloud serveru, uživatelské jméno, heslo a také složku, kterou průběžně synchronizuje se serverem. Uživateli pak stačí nahrát dokumenty do zmíněné složky a během několika minut se na serveru objeví jejich kopie. Pokud provede změny v době, kdy nemá možnost připojení, změny se synchronizují při nejbližší možné příležitosti. Stav synchronizace je možné zkontrolovat rychlým pohledem na ikonu aplikace, která je obvykle viditelná v hlavním panelu (Windows) nebo menu baru (OS X, Linux).
Obr. 1: Náhled ikon při synchronizovaném stavu, během synchronizace a při chybě
Sympatickou vlastností klienta je, že pro spojení používá šifrovaný protokol HTTPS a cílový port tcp/443. Provoz vznikající během synchronizace je tedy neodlišitelný od běžného webového provozu a snadno tak projde firewallem třeba v hotelu nebo na letišti.
V nastavení je navíc možné vyloučit ze synchronizace soubory nad určitou velikost nebo odpovídající určité masce. Uživatel se tak může například rozhodnout na stolním počítači synchronizovat vše, zatímco na notebooku s menším diskem vyloučit videa a .iso soubory.
Na mobilních zařízeních s operačními systémy iOS a Android jsou k dispozici jednoduché aplikace pro přístup k datům na serveru. Stojí zhruba jeden dolar a oproti desktopovým klientům nesynchronizují data na lokální úložiště s výjimkou malé cache pro naposledy navštívené soubory. Pro správnou funkčnost tedy vyžadují datové připojení.
Obr. 2: Webové rozhraní pro administraci v Safari
Webové prostředí
Z počítačů a mobilních zařízení bez příslušného klienta jsou soubory stále dostupné přes webové rozhraní serveru. Pro přístup slouží stejné údaje jako pro připojení klientů. Prostředí je lokalizováno do českého jazyka a na pohled působí velmi přehledně.
Přihlášený uživatel má možnost stáhnout nebo nahrát zvolené soubory, zobrazit nahrané obrázky formou galerie, případně stáhnout starší verze souborů, pokud je k tomu serverová část patřičně nastavena. OwnCloud se nesnaží nahradit nástroje k verzování určené, stále je ale tato možnost sympatická a v našem prostředí využívaná.
Významnou částí je možnost snadného sdílení souborů i adresářů, a to jak mezi registrovanými uživateli, tak pomocí odkazu. V prvním případě se zvoleným uživatelům sdílený obsah zobrazí přímo v synchronizované složce, jako by šlo o jejich vlastní data.
V případě sdílení pomocí odkazu dojde k vytvoření unikátní URL adresy, kterou je následně možné zaslat třeba emailem obchodnímu partnerovi. Adresa funguje jako odkaz k přímému stažení souboru nebo zobrazení obsahu adresáře či obrázkové galerie. Přístup je možné snadno dodatečně chránit heslem nebo časově omezit jeho platnost. V našem prostředí tuto funkci používáme například ke sdílení galerií fotek z teambuildingů a dalších firemních akcí.
Obr. 3: Náhled galerie v Safari
Serverová část
Instalace serverové části je poměrně přímočará a aplikace byla bezpochyby navržená tak, aby se dala provozovat například i na sdíleném webhostingu. Rozpaky na první pohled budí použitý programovací jazyk, serverová komponenta je totiž napsaná v PHP. Je tedy zřejmé, že výkon a škálování bude horší než u komerčních nástrojů typu RushFiles, aplikace zato poběží téměř kdekoliv. V našem prostředí s necelou stovkou aktivních uživatelů navíc žádné problémy s výkonem nepozorujeme a jediným důvodem pro přidání druhého CPU jádra bylo pomalejší zobrazování webových galerií.
Serverová komponenta pro svůj běh vyžaduje Linux, podporovanými distribucemi jsou Debian, Ubuntu, SUSE a RHEL/CentOS. Pro každou z nich je k dispozici repozitář s hotovými balíčky. Pro instalaci do nestandardního prostředí je možné stáhnout .bz2 nebo .zip archiv, který následně stačí rozbalit do zvoleného adresáře a nastavit práva. Vlastní provoz aplikace pak vyžaduje jen Apache webserver s podporou PHP a vhodný databázový server, nejčastěji MySQL nebo MariaDB.
Pokud by měl být ownCloud nabízen jako placená služba koncovým uživatelům, je vhodné zvolit některý z pokročilejších modelů instalace. Ty jsou velmi pěkně zdokumentovány v instalační příručce a ovykle zahrnují HAproxy loadbalancer, sdílenou storage pro data a následné zdvojení všech komponent.
Sluší se dodat, že přestože na serveru používáme podporovanou distribuci CentOS, instalovali jsme z .bz2 archivu. Jedním z důvodů byl fakt, že v repu pro CentOS byla v době instalace starší verze než v archivu. Hlavním důvodem pak to, že aktualizace z repozitáře neprobíhají tak, jak jsme na CentOSu zvyklí.
Aktualizace serveru
Starost o aplikaci instalací nekončí a v případě ownCloudu to platí dvojnásob. U otevřených aplikací tohoto typu jsme si na určité bolesti již navykli, stejně ale neškodí některé situace zrekapitulovat.
Dokumentace k ownCloudu zmiňuje tři možnosti aktualizace serverové komponenty - manuální instalace nejnovější verze, aktualizace z repa a použití vestavěné Updater aplikace. Silně doporučená je možnost první, tedy manuální instalace. Za povšimnutí stojí, že tato varianta nekoresponduje s doporučenou medodou instalace, a sice instalací z repozitáře.
Důvodem je zřejmě fakt, že zatímco aktualizace z repozitáře obvykle nevyžadují zásah administrátora, u ownCloudu toto neplatí. Aktualizací z repozitáře dojde pouze k přepsání PHP kódu jeho nejnovější verzí, což je pouze první krok k úspěšnému dokončení procesu.
Následovat by měla aktualizace databázového schématu, instalovaných modulů a v některých případech i samotných uživatelských dat. Tyto kroky se již provádí ručně. Problém však nastane ve chvíli, kdy jste aktualizace nějaký čas neprováděli a verze nainstalovaná z repa nepodporuje přechod z verze předcházející. Co s tím?
Přesně v této situaci jsme se ocitli, když se v námi používané verzi 8.0 objevila bezpečnostní chyba a v repozitáři již byla verze 9.1. Nakonec nezbylo než postahovat všechny tzv. major releases (8.1, 8.2, 9.0) mezi verzí původní a současnou a strávit příjemný půlden postupnou aktualizací. Časově je to přitom od 8.0 k 9.1 pouhých pár měsíců, takže se určitě nejedná o situaci ojedinělou. Jednoznačně pozitivně ale hodnotím fakt, že celý proces nakonec proběhnul bez jediného zádrhelu, což ve světě IT není nikdy zaručeno.
Závěrem
Už vlastně ani nevím, jak dopadnul projekt, kvůli kterému jsme původně ownCloud vůbec nainstalovali. Platforma pro snadné sdílení souborů ale žije dál. Časem jsme ji napojili na interní LDAP a dnes ji používá celá firma. Občas některému ze zákazníků pošleme odkaz na soubor chráněný heslem nebo neveřejnou galerii. Tak jako tak, ownCloud vždy budil ohlas ze strany uživatelů. A jsme rádi, že dosud to vždy byl ohlas pozitivní.
Pavel Žák
Autor článku je cloud architekt společnosti Master Internet.