Cloudportal – składowanie danych dla aplikacji w RIAK CS
Ze względu na specyfikę platformy, którą zapewnia CloudPortal, do efektywnego funkcjonowania wielu aplikacji należy wykorzystać dodatkowe usługi, które nie są niezbędne w tradycyjnym środowisku uruchomieniowym.
Elastyczne instancjonowanie aplikacji wymaga od developera dodatkowej pracy przy ich projektowaniu i programowaniu, aby poradzić sobie z kwestią współdzielenia zasobów między instancjami i składowania danych w przypadku restartu aplikacji. Dotyczy to zarówno danych sesyjnych przechowywanych w pamięci, jak i systemu lokalnych plików. Jedną z usług, która może rozwiązać część tych problemów bez konieczności wprowadzania znaczących modyfikacji do aplikacji, jest RIAK CS.
RIAK CS (Cloud Storage) jest usługą magazynu obiektowego dla CloudPortal, bazującą na oprogramowaniu RIAK. Może być wykorzystana do mapowania zdefiniowanych w konfiguracji aplikacji folderów, aby zagwarantować składowanie lokalnych plików w jej bazie a nie w pamięci komórki obliczeniowej.
Główne cechy RIAK CS to:
- magazyn o wysokiej dostępności, odporny na awarie dzięki wykorzystaniu wielu węzłów,
- wsparcie dla dużych obiektów i możliwość wieloczęściowego podładowywania zbiorów,
- mechanizm uwierzytelniania i AP kompatybilne z S3,
- wsparcie dla separacji podmiotów (multi-tenancy) i raportowanie per-user,
- elastyczne statystyki monitorowania i wydajności.
Dzięki kompatybilności APIS RIAK CS z S3 operacje związane z magazynem mogą być wykonywane przy pomocy istniejących bibliotek i narzędzi. API RIAK wspiera operacje RESful GET, PUT i DELETE dla obiektów i porcji danych. Obecnie można znaleźć wiele napisanych klientów we wszystkich popularnych języków programowania. Oficjalnie są usługa jest zgodna z oprogramowaniem klienckim w językach Java, Ruby, Python i Erlang. Przykładami sprawdzonych klientów dla CloudPortal mogą być:
- s3curl,
- s3cmd,
- fog,
- Basho java client.
Podczas podładowywania obiektu RIAK CS rozbija go na mniejsze bloki, które są składowane, udostępniane i replikowane na klastrze węzłów RIAK. System replikacji Riak bazuje na technologii Dynamo i teorii CAP. Do replikacji i dystrybucji N kopii każdej wartości pomiędzy węzłami klastra składającego się kilku maszyn fizycznych jest wykorzystywana technika zgodnego mieszania (consistent hashing). Dzięki temu zagwarantowana jest duża skalowalność partycjonowania danych w stosunku do liczby węzłów współpracujących w klastrze.
W przypadku klastra opisywanej usługi każdy węzeł jest równoprawny i może koordynować operacje zapisu/odczytu dla dowolnego węzła. RIAK kładzie nacisk na dostępność tych operacji i sam ciężar rozwiązywania konfliktów może powierzać klientowi podczas operacji czytania lub można to powierzyć wewnętrznemu podsystemowi antyentropii. W związku z tym, że RIAK kładzie duży nacisk na możliwość zapisu informacji, jest zgodny również z mechanizmami obsługującymi wersjonowanie i gwarantującymi spójność danych. Do rozwiązywania konfliktów może być użyta funkcjonalność vector clock lub prosty mechanizm oparty o kopie migawkowe.
Podobne artykuły
Mongo DB: zarządzanie bazą danych w chmurze
Tradycyjne podejście do przetwarzania danych w przypadku systemów zarządzania relacyjną bazą danych nie we wszystkich przypadkach jest najbardziej optymalne. Konieczność przechowywania coraz bardziej rozbudowanych i skomplikowanych danych, oraz próba ich opisania w postaci tabel i relacji może prowadzić do wolnych wielotabelowych zapytań i rozrośniętych indeksów. W niektórych przypadkach, zamiast korzystać z narzędzia uniwersalnego, warto sięgnąć po system specjalistyczny. Jednym z takich systemów oferowanych w CloudPortal jest nierelacyjny system zarządzania bazą danych MongoDB.
Mechanizmy wysokiej dostępności relacyjnych baz danych w CoudPortal.pl
Wszystkie aplikacje udostępnianie w CloudPortal ze względu na elastyczną architekturę platformy w dużym stopniu wykorzystują dodatkowe usługi. Rozproszone systemy plików, bazy SQL i NOSQL, usługi kolejkowania, pamięci podręczne sesji i wiele innych mają zagwarantować szeroką gamę możliwości dla tworzonych i udostępnianych przez platformę rozwiązań.
Aplikacje Ruby na platformie CloudPortal
CloudPortal jest elastyczną platformą PaaS, która umożliwia tworzenie i utrzymywanie w jednym środowisku aplikacji przygotowanych w najpopularniejszych językach programowania i korzystających z szerokiej gamy usług. Jednym ze wspieranych środowisk uruchomieniowych jest konfiguracja wspierająca aplikacje Ruby, Rack, Rails i Sinatra.