pondělí 8. srpna 2011

BeeScale API


Projekt BeeScale byl rozšířen o veřejné API umožnující uživatelům pohodlně ovládat své vServery v BeeScale cloudu z pohodlí jejich vlastní aplikace. Ke službě BeeScale tedy můžete přistupovat nejenom pomocí webového uživatelského rozhraní, ale také pomocí nového BeeScale API. Webové rozhraní je určeno pro přímé využití uživateli služby a BeeScale API je pak určeno především jako počítačové rozhraní pro programování aplikací.

BeeScale API je typu REST. Nosným médiem komunikace je HTTP protokol a jeho metody GET, POST a DELETE spolu se stavovými kódy. Komunikace je šifrována SSL v rámci HTTPS. Data v odpovědích jsou za účelem snadného strojového zpracování odesílána ve formátu XML. Autentikace probíhá opět v rámci HTTP protokolu pomocí standardní Basic access authentication (jednoduché ověření přístupu). Komunikace s API je zcela bezestavová. Server neukládá žádné informace mezi jednotlivými požadavky. Ty jsou zcela samostatné a nezávislé. Tyto přístupy zcela odpovídají popisu RESTful API a umožňují velice pohodlné a jednoduché použití BeeScale API.


Nové rozhranní služby odpovídá nejenom architektuře REST, ale také sjednocujícímu cloudovému rozhraní Deltacloud API, jehož je nativní implementací. Deltacloud API přesněji popisuje styl použití REST architektury pro tvorbu cloudového API tak, aby bylo například možné jedním klientem ovládat více cloudů. Základem jsou resources, které služba poskytuje. To jsou například vServery nebo vDisky. Každý resource má vlastní, unikátní URL, na kterou lze zasílat HTTP požadavky (GET, POST, DELETE) a každý resource náleží do nějaké kolekce. Na tyto kolekce lze také zasílat HTTP požadavky (GET, POST). Seznam všech kolekcí je dostupný na takzvaném entry-point (vstupním bodu) API. Díky tomuto způsobu uchovávání adres jednotlivých resources není nutné znát adresní prostor BeeScale API předem, ale lze jej procházet stejně přirozeně, jako obyčejný web.
Jak se sami můžete přesvědčit na následujících příkladech, rozhranní je skutečně velmi jednoduché a intuitivní. Pro testování doporučujeme aplikaci rest-client nebocURL.
  • Získání přehledu kolekcí: GET /api/ HTTP/1.1
  • Získání seznamu všech vServerů: GET /api/instances HTTP/1.1
  • Spuštění vypnutého vServeru: POST /api/instances/42/start HTTP/1.1
  • Vytvoření vServeru: POST /api/instances HTTP/1.1, data:image_id=platform-1&cpu=1&memory=128
  • Smazání vDisku: DELETE /api/images/disk-42 HTTP/1.1
BeeScale API nabízí základní funkčnost služby jako je vytváření vServerů, jejich přehled, zapínání a vypínání, ovládání VNC přístupu a další běžné akce. Některé schopnosti webového rozhraní nebyly do BeeScale API integrovány. Například nastavování účtu nebo výpis kreditu a kreditní historie není součástí BeeScale API. Nicméně integrace těchto součástí je v případě zájmu uživatelů možná.
Ve fázi analýzy BeeScale API byly zvažovány i další technologie cloud API a komunikace. Nakonec vybrané RESTful Deltacloud API se ukázalo být velmi vhodné pro implementaci nativního cloud API. Zvolené technologie umožňují snadné rozšiřování BeeScale API do budoucna a snadné využití pro programování aplikací.

Žádné komentáře:

Okomentovat