Swift, v překladu rychlý nebo také pták rorýs, je zástupce objektové storage, o kterých jsem obecně psal minule. Dnes si představíme tohoto zajímavého zástupce. Proč zrovna Swift? Protože je součást OpenStack projektu – a nejen to, společně s Nova (orchestrací virtualizace) je přímo dědou zakladatelem celého OpenStack.
OpenStack Swift
Před rokem 2010 vytvořil public cloud poskytovatel Rackspace svůj vlastní object storage systém jako reakci na Amazon S3. V roce 2010 americká NASA uvolnila do open source svůj kód pro nadstavbu nad virtualizací a Rackspace udělal pro tento společný projekt totéž se svou object storage. Vznikl tak OpenStack a projekty Nova a Swift (a takhle ve dvou to celé začalo). Swift je tedy plně otevřený s Apache2 licencí a je nasaditelný jak samostatně, tak jako součást OpenStack distribuce. Přináší tak naprostou otevřenost, žádný vendor lock-in a možnost nasazení na komoditním železe.
Swift je objektová storage, obvykle namíchaná jako AP systém v rámci CAP teorému. O tom proč je tento typ storage tak zajímavý jsem psal v článku na cloudsvet.cz. Nabízí tedy masivní škálovatelnost ve výkonu i kapacitě a řadu zajímavých funkcí.
V rámci samotného OpenStack je Swift používán třeba k ukládání image (Glance modulem) nebo záloh volumů (Cinder modul). Výhodou toho také je, že různé instalátory OpenStack umí rychle a snadno instalovat i Swift nody, takže se svou object storage můžete pracovat velmi cloudovým způsobem. Typické využití v dalších systémech je ukládání multimédií (audio, video, záznamy z kamer), snímků ve vysokém rozlišení (zdravotnictví, průmysl, umění), při renderingu a modelování, k zálohování a diskovým obrazům nebo pro cloudové ukládání fotek a dokumentů. To všechno můžete mít nejen jako službu od veřejného poskytovatele, ale Swift si jednoduše postavíte interně u sebe – bezpečně, spolehlivě a bez závazků.
Vlastnosti Swift
Přestavme si nejzajímavější funkce:
- Samozřejmě přirozené vlastnosti scale-out object storage – velká horizontální škálovatelnost, použití komoditního hardware, vstup a výstup HTTP protokolem atd.
- Erasure-coding (v nejnovější verzi Kilo) umožňuje místo ukládání celých objektů na nodu a jejich replikaci k několika dalším využít rozsekání velkého objektu na dílky, ty rozprostřít po nodech a přidat k nim kontrolní součty. Za cenu snížení výkonu a zvýšení latence lze snížit cenu za úložný prostor (srovnání obou metod se budeme věnovat v samostatném článku)
- Řízení přístupu k vašim objektům (kdo smí?)
- Streamované vkládání, tedy schopnost vkládat objekt aniž by byla dopředu známa jeho délka
- Verzování zápisů, takže URL vede vždy na nejnovější verzi, ale systém drží a umožní získat ty předchozí
- Přímý upload z klienta přes HTTP POST, tedy webová aplikace dovoluje prohlížeči vzít lokální soubor a poslat přímo do object storage, nemusí se jít přes web server
- Časově omezené URL (dočasné odkazy)
- Časově omezené objekty (sami se odmažou)
- Velmi flexibilní storage politiky – dá se například podle uživatele nebo typu dat preferovat SSD, omezit fyzikální umístění dat na určitý region nebo naopak vynutit celoplanetární repliku
V příštích dílech se budeme některým vlastnostem věnovat podrobněji, ukážeme si Swift v praxi, zkusíme si jej využít v aplikaci a prozkoumáme možnosti nasazení aneb kam se objektová storage dobře hodí. Čtěte cloudsvet.cz
P.S.: Všem ornitologům – pták na obrázku v úvodní stránce s největší pravděpodobností rorýs není, ačkoli se zdá být podobný. Nevěřili byste, jak beznadějné je najít jejich obrázek v bezlicenční knihovně. Více informací o něm najdete na Wikipedii 🙂