Felietony

Jacek Artymiak : Zaprogramuj sobie chmurki

Grzegorz Marczak
Jacek Artymiak : Zaprogramuj sobie chmurki
8

Jest to tekst Jacka Artymiaka, który tworzy serwis texy.co W kolejnym odcinku cyklu artykułów o chmurach chciałbym przedstawić interfejsy programistyczne (API) do chmurek. Są one niezbędne, ponieważ wygoda uruchamiania setek serwerów na raz niesie ze sobą niewygodę zarządzania tym stadkiem. Jeż...

Jest to tekst Jacka Artymiaka, który tworzy serwis texy.co

W kolejnym odcinku cyklu artykułów o chmurach chciałbym przedstawić interfejsy programistyczne (API) do chmurek. Są one niezbędne, ponieważ wygoda uruchamiania setek serwerów na raz niesie ze sobą niewygodę zarządzania tym stadkiem. Jeżeli jesteśmy masochistami (albo mamy mądrego inaczej szefa) posłużymy się interfejsem webowym. Jeżeli chcemy mieć czas na życie to przyjrzymy się dostępnym interfejsom programistycznym (API).

Każdy liczący się na rynku gracz oferuje własne API, co powoduje że w chwili obecnej mamy na rynku bałagan podobny do tego w czasach gdy wojny o sieci firmowe toczyły Token Ring, Netware, AppleTalk, LAN Manager i Banyan VINES.

Jakie funkcje powinno oferować cloudowe API?

Dobre API eliminuje konieczność wchodzenia w interakcję dwóch mocno przepracowanych przedstawicieli rodzaju ludzkiego. Osobniki te to: administrator serwerów firmowych próbujący nie wyrwać sobie pielęgnowanej od pierwszego roku studiów brody oraz administrator serwerowni próbujący nie odbezpieczyć pistoletu po kolejnym zleceniu na ponowną instalację systemu operacyjnego na serwerze zamontowanym w szafie strukturalnej w ostatnim rzędzie, pod nawiewem klimatyzatora. Obaj panowie są zwykle w stanie, w którym uważają swojego interlokutora za kompletnego idiotę więc im rzadziej wchodzą sobie w paradę tym lepiej.

Dobrze zaprojektowane API pozwala wirtualizować podstawowe czynności, które do tej pory wykonywali pracownicy serwerowni czyli m.in.:

  • zakup serwera dla klienta
  • instalacja serwera w szafie strukturalnej
  • podłączenie serwera do prądu i sieci
  • instalacja systemu operacyjnego
  • podstawowa konfiguracja systemu operacyjnego
  • restart komputera
  • ponowna instalacja systemu operacyjnego
  • upgrade serwera (sprzętu)
  • downgrade serwera (sprzętu)
  • backup serwera
  • odtworzenie serwera z kopii zapasowej
  • spięcie serwerów w grupy
  • zarządzanie load balancerem
  • zarządznie zaporami ogniowymi
  • publikacja plików do CDN-u i hurtowni danych
  • zarządzanie DNS-em

Wszyscy dostawcy usług w chmurach, którzy chcą przetrwać i wiedzą co robią oferują API do swojej chmury. Bez tego nie da się przyciągnąć dużych klientów.

Czyje API jest lepsze?

Mniejsi gracze na rynku, np. wspomniany w poprzednim tekście Storm on Demand czy GoGrid, próbują oferować własne API. Nie są to rozwiązania kompatybilne ze sobą co w ciągu kilku najbliższych lat spowoduje ich marginalizację i wyginięcie. Powód jest prosty: skrypt napisany w celu komunikowania się z SoD API nie jest kompatybilny z GoGrid API, co zmusza administratorów do modyfikacji skryptów a to jak wie każdy programista nie jest dobry pomysł, bo wymaga ponownych testów. No i jeśli chcemy utrzymywać serwery u dwóch lub więcej różnych dostawców, musimy niańczyć tyle samo zestawów skryptów administracyjnych. Oraz kolejny serwer SVN z instalką Trac. Miodzio, o niczym innym nie marzy doświadczony sysadmin.

Można podejść do sprawy beznamiętnie i po prostu zdecydować się na jednego dostawcę (Amazon AWS, Rackspace Cloud Servers), ale takich, którzy zaoferują nam niezależne serwerownie w kilku regionach geograficznych jest dosłownie kilku. I niekoniecznie oferują nam najlepsze ceny albo poziom usług. Pora więc rozejrzeć się za alternatywą Open Source. Istnieją już narzędzia, które "tłumaczą" nasze życzenia na składnię API różnych dostawców, ale korzystając z nich jesteśmy uzależnieni od dobrej woli twórcy.

A może OpenStack Compute API?

W poprzednim odcinku chmurowego cyklu pisałem o projekcie OpenStack, który firmuje Rackspace Hosting, NASA, HP, Ubuntu, i paru innych dużych graczy. W ramach tego projektu powstaje też OpenStack API, które jest odpowiedzią na problemy związane z praktyczną stroną zarządzania zwirtualizowaną infrastrukturą.

Już dziś mamy do dyspozycji API do zarządzania serwerami (OpenStack Compute API), hurtownią danych (OpenStack Object Storage API), obrazami serwerów (OpenStack Image Service API) oraz uwierzytelniania (OpenStack Identity Service API).

Kto jest zainteresowany, może za darmo przetestować OpenStack oraz OpenStack API zakładając konto na TryStack.org.

Sun miał rację

Firma Sun posługiwała się kiedyś sloganem, "dopiero sieć to komputer" i widać to najlepiej na przykładzie cloud computing. Mamy już dostęp do zasobów mocy obliczeniowej, infrastruktury sieciowej, hurtowni danych, oraz aplikacji, które możemy kontrolować tak jak możemy kontrolować pracę komputera za pomocą specjalizowanych aplikacji, które pomagają nam wykonać jakąś pracę. Różnica jest taka, że dziś możemy pisać aplikacje, które kontrolują zasoby zlokalizowane poza granicami narzuconymi przez rozmiar płyty głównej i obudowy serwera.

Autor uczestniczy w pracach nad dokumentacją projektu OpenStack. Opinie prezentowane przez autora nie są opiniami firmy Rackspace Hosting.

Jacek Artymiak tworzy serwis texy.co

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu

Więcej na tematy:

cloud computing