Back to top

Amazon CloudSearch oproti Solr Cloud

GUEST BLOG (příspěvky od autorů): Nedávno jsme měli možnost udělat interview s vedoucím konzultantem Amazon Web Services  (dále jen „AWS“) na téma, které je důležité pro řadu našich zákazníků. 

Do jaké míry je srovnatelná služba Amazon CloudSearch se Solr Cloud službou provozovanou na EC2 serverech, nebo na vnitropodnikové (in-house) infrastruktuře?

Co se týče technologie vyhledávání, jde o rozhodnutí týkající se konkrétního zákazníka, které by mělo být založeno na zevrubném chápání obchodních cílů zákazníka, hlubokém porozumění obsahu zdrojů jeho byznysu (content landscape) a dalších okolnostech. Naše služba Search Assessment představuje úžasný způsob, jak ověřovat a dokumentovat tyto faktory.

Následující poznámky pocházejí z tohoto interview a byly formátovány jako blog psaný v osobě poradce AWS spíše než naším běžným nezávislým stylem. Blog obsahuje užitečné informace pro každého, kdo provádí srovnání mezi Solr a Cloudsearch.

 

ÚVOD

Tato diskuse je určená k rychlému porovnání Amazon CloudSearch a Apache Solr Cloud a k usnadnění vašeho informovaného rozhodnutí při volbě mezi těmito dvěma vyhledávacími řešeními. Obě vycházejí z webového vyhledávače, ale zatímco jedna je plně řízenou službou, ta druhá bude vyžadovat další vývoj, management a údržbu implementátora.

 

Pozadí

Abychom integrovali vyhledávání na základě cloudů do aplikací, máme na výběr několik možností. Amazon CloudSearch je plně obhospodařovaná služba v AWS Cloud, která usnadňuje a zefektivňuje nastavení, správu a rozsah vyhledávacího řešení pro webovou stránku nebo aplikaci. Apache Solr je open-source platformou s multinodální kapacitou přizpůsobení, kterou nazýváme Solr Cloud.

S Amazon CloudSearch můžete rychle rozšířit vyhledávací schopnosti vašich webových stránek nebo aplikace, aniž byste se museli stát expertem na vyhledávání, nebo si dělat starosti o obstarání, nastavení a údržbu hardware. Několika kliknutími na konzoli AWS Management Console si můžete vytvořit vyhledávací doménu a nahrát ta data, která chcete, aby se dala vyhledávat. Amazon CloudSearch automaticky zajistí požadované zdroje a nainstaluje vysoce přizpůsobivý vyhledávací index.

Apache Solr Cloud nabízí velmi podobnou funkčnost jako Amazon CloudSearch, ale doprovází ji větší množství manuálních zásahů pro řízení zdrojů a budování kódu, abyste mohli dělat přesně to, co chcete.

Jak Amazon CloudSearch tak Solr Cloud budou automaticky distribuovat aktualizace indexů pro správné umístění, rozesílat vyhledávání napříč vícečetnými vyhledávacími příležitostmi. Oba nabízejí replikaci a zpětnou rekonstrukci; je však rozdíl ve způsobu, jak se dostanete do žádoucího stavu a jak ho potom budete spravovat & udržovat.

 

Řízení zdrojů

Když si vytvoříte doménu v Amazon CloudSearch, bude spravovat veškeré zdroje, které potřebujete na zavádění a úpravy vašeho řešení. CloudSearch spravuje trvalé uchovávání obsahu, hardware potřebný k zajištění provozu vyhledávání, hardware nezbytný pro vybudování vyhledávání podle indexů, frekvenci vyvažování zátěže, vysoce dostupnou replikaci, obnovení uzlu, zabezpečení vaší vyhledávací služby, a aktualizace softwaru. S CloudSearch získáte přístup ke všem těmto zdrojům prostřednictvím jediného účtu. Váš účet je zjednodušen, s pouze jediným poplatkem, abyste rozuměli tomu, co utrácíte na vyhledávání.

Správa vašeho vlastního clusteru Apache Solr přes Solr Cloud vyžaduje, abyste si všechny zdroje obstarali a nakonfigurovali sami. Pokud to uděláte na AWS, budete potřebovat přístupové služby jako například Amazon S3, Amazon EC2 a Amazon Elastic Load Balancing. Váš účet bude obsahovat všechny položky řádku za všechny tyto služby, čili budete stále ještě moci sledovat a kontrolovat náklady, i když méně přehledným způsobem. Pokud tak učiníte na své vlastní platformě, budete potřebovat si zaopatřit a konfigurovat počítačový výkon & úložiště.  Navíc bez elastických schopností AWS budete muset zvládnout opatřit si další zdroje pro škálování řešení. Uhádnout (správné řešení) při maximálním zatížení dotazů bylo odjakživa pro vyhledávací aplikace velmi složité. Často, zejména pro aplikace pracující s webem, jsou vysoká zatížení dotazy měřítkem úspěchu byznysu a vy pak zažíváte okamžiky trapnosti, když zjistíte, že vaší infrastruktuře vypověděl výkon a vaši uživatelé kvůli tomu dostávají nekvalitní službu.

 

Zvládnutí přizpůsobení rozlišení

Amazon CloudSearch je službou RESTful – vy zašlete dokumenty do koncového bodu pro dokumenty a požadavky na vyhledání do vyhledávacího koncového bodu, vše přes HTTP nabízené prostřednictvím vstupů DNS. Jakmile zašlete dokumenty, CloudSearch je začlení do vašeho indexu v čase blízkém reálnému času; automaticky přitom obstará a zapojí hardware s dostatečnou kapacitou pro takové indexy. Pokud je třeba vaše data sdílet mezi větším počtem hostitelů, CloudSearch automaticky provede jejich rozčlenění na menší objemy dat a rozmístí je na hostitele, aniž by přerušil zpracování dotazů.  

Jakmile odešlete vyhledávací zprávu do své domény, CloudSearch zařídí zdroje nutné pro splnění této zprávy. CloudSearch sleduje využívání CPU na všech uzlech v tomto seskupení (clusteru) a pokud to je nutné, přidá další doplňující repliky sloužící pro objem přenosu. Pokud se provoz zhoršuje, CloudSearch sníží objem provozu tak, že odstraní zbytečnou kapacitu. Automatické škálování CloudSearchem probíhá hladce a nevynucuje si od vás další práci – vy jen odešlete dokumenty a dotazy pro vyhledávání a CloudSearch zajistí nezbytné zdroje.

Zařídíte si své vlastní uzly na Apache Solr Cloudu, typicky s druhým softwarovým systémem jako například Apache Zookeeper. Abyste to zvládli, nejprve si zjistíte, kolik uzlů budete potřebovat, podle toho, kolik dat budete mít a jak velké budou indexy, které budou data obsahovat. Poté se rozhodnete, jaké provozní zatížení budete muset obsluhovat a změříte si, nebo odhadnete pro každý uzel, jeho kapacitu stačit na takový provoz. Opatříte si uzly na ukládání těchto dat, dodáte zatížení vyhledávání a nakonfigurujete master uzly a uzly repliky prostřednictvím souborů XML, přičemž použijete Apache Zookeper. Jestliže objem vašich dat roste, překonfigurujete manuálně svůj cluster, opět prostřednictvím XML, přebudujete indexy a uvedete je do provozu. Každá změna počtu uzlů ve vašem clusteru vyžaduje manuální zásah a rekonfiguraci.

Takto jste u Solr Cloud sami zodpovědní za řešení zajistit, aby a) mělo dostatek zdrojů a aby b) nespotřebovávalo příliš mnoho zdrojů.  Na základě takového monitoringu se pak budete muset manuálně postarat o to, aby zajištění zdrojů bylo správné.

Skutečný rozdíl mezi těmito dvěma přístupy je vidět na rychle škálovaných vyhledávacích požadavcích, nebo tam, kde je zatížení vyhledávání nepředvídatelné, například na rozsáhlých webových stránkách e-komerce, na kterých se mění provoz podle času určitého dne / podle času určitého roku / podle kampaní, které právě probíhají. Zde je pak automatické škálování Amazon CloudSearch skutečnou výhodou. Pro statické vyhledávání na webových stránkách s předvídatelným zatížením vyhledávání, poté co ho nakonfigurujete, pak pravděpodobně nebude mezi těmito dvěma řešeními velký rozdíl.

 

Vysoká dostupnost

Amazon CloudSearch nabízí četné vlastnosti, díky kterým bude vaše vyhledávací řešení daleko odolnější proti selhání. V rámci jediné AWS zóny dostupnosti (AZ) je CloudSearch schopen odhalit a zotavit se ze selhání jednoho nebo více uzlů. Když uzel selže, CloudSearch může obnovit index a automaticky takový uzel updatuje, protože trvale tyto indexy uchovává a aktualizuje. 

Pro ještě lepší dostupnost má Amazon CloudSearch vlastnost Multi-AZ, která replikuje vaši doménu ve dvou různých zónách dostupnosti (AZ). CloudSearch se stará o dodávání a údržbu hardwaru, nasazení indexů, zařídí replikaci aktualizace, vyvážené zatížení provozu i převzetí služeb při selhání když je jeden uzel nebo jedna zóna offline.

Solr Cloud vás vybaví vysokou dostupností tím, že přidá a bude spravovat dodatečné uzly sám. Vy ovládáte replikace aktualizací prostřednictvím konfigurace, kterou spravuje ZooKeper. Všimněte si, že když se požadavky na zdroje vyhledávání změní, budete muset spravovat změny v zajišťování zdrojů a brát přitom ohled na vysokou dostupnost.

Kromě Solr Cloud existuje ještě interní ZooKeeper který sebou přináší distribuci, což by mohlo být přítěží při plánování Solr Cloud řešení s vysokou dostupností, protože takový interní ZooKeeper by pak byl jako řešení nadbytečný. Pro účely vysoké dostupnosti implementací Solr Cloud doporučujeme zákazníkovi nastavit si externí komplet ZooKeeper, který je podobný počátečním vícenásobným instancím (výskytům), ale je nakonfigurován tak, aby o sobě věděly a navzájem spolu promlouvaly, a měly kvorum pro případy selhání.

 

Vyhledávací funkce

Nejen Amazon CloudSearch ale i Apache Solr nabízejí bohatou škálu vyhledávacích funkcí jako jsou strukturované vyhledávání bez textu, omezující vlastnosti, zvýrazňování výsledků, náměty na vyhledávání, přizpůsobitelná důležitost, vyhledávání mezi složitými výrazy, párování chybně napsaných výrazů, přirozená podpora pro různé jazyky a schopnost přiřazovat větší význam určitým termínům nad ostatními („term boosting“). Není to nijak překvapující, protože oba mají stejný postup pro vyhledávání, i když CloudSearch má navíc vlastnosti pro udržení kompatibility s předchozím vyhledávačem A9.

 

Údržba & podpora

Protože je CloudSearch plně spravovatelnou službou, nabízí automatickou údržbu softwaru. Vaše vyhledávací doména je stále aktualizovaná a disponuje nejaktuálnějšími opravami chyb a nejnovějšími verzemi funkcí. Podpora poskytovaná Amazonem je ve světě vyhlášená; úrovně dostupné podpory jsou různé: základní, pro developery, podpora obchodní činnosti a podnikání.

V případě Solr Cloud jde to samostatně řízený proces. Jelikož se jedná o produkt z otevřeného zdroje (Open Source), bude záležet na vás, abyste ověřili nejaktuálnější změny softwaru a určili si, zda vůbec a jak by měly být aplikovány. A na vás bude záležet, zda takové změny budou zpětně kompatibilní či nikoliv. Podporu si budete také muset sami zajistit; pokud objevíte problém, budete muset sami najít řešení a doufat v nápomoc od Open Source komunity.

 

Ekonomická stránka

S Amazon CloudSearch nemáte žádné počáteční závazky, ani nastavené poplatky, přičemž řešení je automaticky přizpůsobeno vašemu zadání. Zákazníkům jsou pouze účtovány platby za využívání služeb následujícího rozsahu:

Rychlosti (instance) vyhledávání

Nahrávání dávek dokumentů

Požadavky na indexaci dokumentů (IndexDocuments)

Přenos dat

Zákazníci si mohou vypočítat odhadované ceny na jednoduché AWS kalkulačce nákladů cost calculator.

U Solr Cloud nemáte žádné počáteční náklady na software, protože software je Open Source; avšak doba potřebná ke konfiguraci a implementaci řešení Solr bude určitě podstatně delší než u CloudSearch, zejména kvůli vysoké dostupnosti a / nebo velké šíři řešení. Navíc bude poskytování výpočetních a skladovacích zdrojů, společně se zdroji na vyváženost zátěže vyžadovat počáteční náklady, pokud se ovšem neuchýlíte ke cloudům, kde se o to postarají. Nezávisle na tom, jakým způsobem si zdroje opatříte, budete mít také další možné náklady, pokud nebude vaše řešení šité na míru - buď bude čas odezvy pro uživatele zbytečně dlouhý díky nedostatečnému vybavení, nebo vám vzniknou další náklady na zdroje při zbytečně objemném vybavení.

 

Dokumentace

Úplnou dokumentaci k oběma produktům získáte na webových stránkách, URL bázi pro každý produkt naleznete níže.

 

Shrnutí

Jak Amazon CloudSearch tak Apache Solr Cloud nabízejí komplexní sadu vlastností, které mohou vaši aplikaci vybavit kvalitními vyhledávacími schopnostmi.

S CloudSearch nemusíte zvládat různé části software, manuálně konfigurovat, plánovat replikaci ani strategii vysoké dostupnosti, zaopatřovat si hardware, škálovat svůj vyhledávač, nebo obnovovat uzly po selhání. U Solr Cloud však musíte uvedené věci zvládnout sami.

S technologií CloudSearch jsou také automaticky prováděny aktualizace prostředí a máte přístup do podpory AWS světové kvality, zatímco u Solr Cloud byste byli sami zodpovědní za aktualizace, údržbu a podporu řešení.

0