Tu jesteś:
Start
Z branży
Treść artykułu
 
 
Klienci o nas
 

Architektura systemów dużej skali osadzonych w chmurze obliczeniowej

W artykule omówiono propozycję architektury systemów dużej skali przeniesionych do chmury obliczeniowej. Z punktu widzenia projektu można opierać się na różnych wzorcach dla aplikacji dużej skali, które pozwolą na przeniesienie danych oraz osadzeniu aplikacji w projektowanej chmurze obliczeniowej. Omówiono trzy podstawowe wzorce oraz zaproponowano architekturę odpowiadającą tym rozwiązaniom.

Wstęp

Przetwarzanie w chmurze obliczeniowej (ang. cloud computing) jest modelem przetwarzania opartym na użytkowaniu usług dostarczonych przez zewnętrzne organizacje. Model ten umożliwia tworzenie dedykowanych usług, oferuje różnorakie oprogramowanie oraz konieczną do jego funkcjonowania infrastrukturę. Wszystkie płaszczyzny architektury są dostępne online. Funkcjonalność chmur obliczeniowych znajduje zastosowanie w wielu systemach informatycznych. Chmura obliczeniowa jest kolejnym milowym krokiem w rozwoju informatyki. W odróżnieniu od dostarczania oprogramowania, cloud computing jest metodą dostarczania opartych na oprogramowaniu serwisów i usług. Możliwości, jakie zapewnia, obejmują zarówno rozwiązania dla użytkowników indywidualnych, jak i przedsiębiorstw. W kontekście omawianych systemów, wszystkie wdrożenia typu desktop, oraz systemy działające offline można przenieść do chmury obliczeniowej. Spośród wielu korzyści, jakie płyną z takiego rozwiązania najważniejsza wynika z potencjalnej możliwości ułatwienia realizacji skomplikowanych analiz danych – wymagających przydzielenia dużej mocy obliczeniowej w określonej sytuacji [1].

Chmura obliczeniowa a systemy dużej skali

Z punktu widzenia projektu można opierać się na różnych wzorcach dla aplikacji dużej skali, które pozwolą na przeniesienie danych oraz osadzeniu aplikacji w projektowanej chmurze obliczeniowej.

Pierwszym ze wzorców jest tzw. przeniesienie istniejących już zasobów do chmury obliczeniowej. taki wzorzec jest stosowany najczęściej, kiedy istotne są czynniki ekonomiczne. wykorzystanie zasobów chmury może okazać się tańsze niż działanie aplikacji i składowanie danych na lokalnych serwerach i sprzęcie. sytuacja taka występuje szczególnie wówczas, gdy lokalne centrum danych nie korzysta z zaawansowanej wirtualizacji, zwiększającej wykorzystanie zasobów.

drugi ze wzorców, nazywany też skalą internetową dotyczy sytuacji, gdy tworzymy przeznaczone i osadzane w chmurze aplikacji oraz dane, które mają być dostępne dla sporej rzeszy użytkowników, bez konieczności ponoszenia wielkich kosztów inwestycyjnych na starcie. wzorzec ten szczególnie sprawdza się w przypadku prototypów nowych aplikacji, ponieważ nie ma konieczności zakupu serwerów, więc faktycznie koszty wejściowe są niskie. wykorzystujemy wówczas gotowe centra danych stanowiące dla nas chmurę obliczeniową.

kolejny ze wzorców, jakie można zastosować w naszym przypadku, to burst computer (ang. „wybuch obliczeń”), w którym stosuje się zdolności wykorzystania dodatkowych zasobów jeśli wystąpi taka konieczność. taki mechanizm sprawdzi się, gdy będziemy mieli do czynienia z sytuacją zmiennego obciążenia zwłaszcza, gdy takie skoki zdarzą się rzadko. stosowanie takiego wzorca wynika z ekonomii chmury, ponieważ koszt dodatkowego sprzętu lokalnego, dodatkowych lokalnych serwerów byłby bardzo duży. bardzo efektywne będzie, jeśli zastosujemy w takim kontekście model płacenia za rzeczywiste zużycie.

ostatni ze wzorców to elastyczne składowanie danych i dotyczy takich systemów czy aplikacji, w których dane, ich ilość – przyrasta wykładniczo – przy wzroście czego?. wykorzystanie platformy w chmurze okazuje się tańsze niż użytkowanie projektowanych danych lokalnie. korzystanie z tego wzorca wymaga bardzo starannego zaprojektowania danych.

Proponowana architektura

Na rysunku 1. przedstawione zostały wszystkie podstawowe składowe systemu dużej skali osadzonego w chmurze obliczeniowej. Proponowana architektura (Rys.1), jest architekturą zorientowaną na usługi. Umożliwia projektowanie i wdrażanie rozproszonych aplikacji, w których procesy biznesowe oraz obsługująca je infrastruktura informatyczna są traktowane jako komponenty, które można łączyć i mieszać w zależności od potrzeb. Platformą dla integracji systemów rozproszonych w tej architekturze są usługi sieciowe (ang. web services). W proponowanym rozwiązaniu występują komponenty, które mogą działać niezależnie od siebie, udostępniając złożone funkcje poprzez usługi z interfejsem ukrywającym szczegóły implementacyjne. Zakładamy istnienie wspólnego, dostępnego dla wszystkich medium komunikacyjnego, umożliwiające swobodny przepływ danych pomiędzy wszystkimi komponentami – magistrala usług. Usługi sieciowe, nazywane serwisami lub usługami webowymi (lub usługami sieciowymi web), są komponentami programowymi, stanowiącymi podstawę implementacji rozwiązań w naszej architekturze [11].

Zakładamy, że podstawowym elementem systemu jest Centrum danych zawierające wszystkie podstawowe niezbędne serwery (odbieranie żądania, wysyłanie odpowiedzi), którymi mogą być typowe komputery PC jak i dedykowane serwery: serwer WWW, serwer plików, serwer bazy danych. Kolejne wyposażenie centrum to szybkie szerokopasmowe łącze sieciowe zapewniające odbiór i wysyłanie danych oraz równoważnik obciążenia. Taki wariant to tzw. wariant minimalny, zakładający wykorzystanie ogólnodostępnego sprzętu. Wariantem rozszerzonym mogłoby być zastosowanie szaf serwerowych, jednak koszt takiego rozwiązania byłby o wiele większy. Powinna zostać wyjaśniona rola „równoważnika obciążenia”.

Możliwe platformy chmury

Jak widać na Rys.1, istotnym elementem architektury jest chmura obliczeniowa. Poszczególne jej elementy mogą zostać zaimplementowane przy użyciu istniejących platform oferowanych przez Amazon, bądź Microsoft. Przybliżymy możliwe warianty.

Amazon EC2

Firma Amazon zapewnia szeroki wybór usług dostępnych w chmurze. Głównym narzędziem programowania jest EC2, Elastic Computing Cloud. Jest on w rzeczywistości rodziną powiązanych usług. Amazon wprowadza wiele różnych środowisk – można uruchamiać aplikację w EC2 w systemach Linux, Solaris lub też Windows Server. Można przechowywać dane korzystając z DB2, Informix, MySQL, Oracle. Kod można pisać w Perl, Python, Ruby, Java, C++, C# [10].

Amazon S3

Simple Storage Service (Prosta Usługa Przechowywania), czyli S3, jest systemem magazynowania informacji. Nie pozwala na uruchamianie aplikacji, nie zawiera systemu plików czy mechanizmów indeksowania. Jest po prostu internetowym nośnikiem danych. Stworzono wiele systemów korzystających z S3: sieciowe oraz lokalne systemy plików, systemy baz danych oraz systemy magazynowania zawartości tabel. Jest to doskonały przykład koncepcji przetwarzania w chmurze – wszelkie obliczenia wykonywane w celu przechowywania danych są oddzielone od samej przestrzeni magazynującej.

IBM Computing on Demand

IBM zapewnia platformę usług przetwarzania w chmurze skonstruowaną na podstawie pakietu do tworzenia usług sieciowych. Platforma ta wykorzystuje wspólne narzędzia WebSphere, DB2 oraz Lotus. Samo środowisko jest identyczne z uruchomionym w EC2, lecz działa w centrach danych IBM, a nie Amazon.

Microsoft Windows Azure

Windows Azure jest platformą do uruchamiania rozwiązań informatycznych działających w chmurze. Architekt systemów projektujący rozwiązanie dysponuje zwirtualizowanym środowiskiem oferującym praktycznie nieograniczone możliwości skalowania, olbrzymią wydajność i gigantyczny pojemnik do przechowywania danych. Jest to rozwiązanie klasy tzw. Platform As a Service (PaaS), oferujące programiście specjalną platformę do budowy rozwiązań informatycznych. W wyniku użycia PaaS – którym będzie Windows Azure powstają w systemie usługi dostępne jako SaaS – czyli określona funkcjonalność. Dodatkową zaletą jest fakt, iż można w PaaS rozbudować dowolnie system o dodatkową funkcjonalność [1].

Zakończenie

W projektowanym systemie zakładamy dużą dostępność, którą można uzyskać dzięki wykorzystaniu chmury obliczeniowej. Dzięki temu nie powinno być przestoju systemu. Poza tym tak zaprojektowany system zapewnia oprócz wspomnianej dostępności duże bezpieczeństwo danych, ponieważ najbardziej wrażliwe dane są składowane w centrum danych a nie w chmurze. Chociaż cloud computing jest technologią dopiero we wczesnym stadium rozwoju, odpowiada potrzebom zarówno przedsiębiorstw, jaki i środowisk naukowych – mimo ze cześć potencjalnych klientów podchodzi z nieufnością do tej architektury. Należy jednak zwrócić uwagę, że rozwiązania tego typu znajdą szerokie zastosowanie, chociażby dlatego, że dane jako takie mogą być udostępniane w sieci a dzięki usługom klasy PaaS oraz IaaS dowolnie rozwijane, stanowiąc złożone funkcjonalnie systemy. Część operacji może być wykorzystywana tylko wówczas, kiedy to będzie potrzebne.

Bibliografia

[1] Ciżmowski W., Moszyński M.: Architektura systemów GIS osadzonych w chmurze obliczeniowej, Politechnika Gdańska, 2011.
[2] Longley P. A., Goodchild M. F., Maguire D.J., Rhind D. W.: GIS Teoria i praktyka, PWN, 2006.
[3] Gotlib D., Iwaniak A., Olszewski R.: GIS. Obszary zastosowań, PWN, 2007
[4] Waluś N., Maoga A.: Cloud Computing; Wydział Fizyki i Informatyki Stosowanej, AGH
[5] Biesada D.,Kopacz T.,Żarski A.,Cichocki P.,Zass B., Żyliński M.: Windows Azure Platforma Cloud Computing dla programistów.APN Promise, 2010
[6] Fuhrt B., Escalante A.: Handbook of Cloud Computing; Springer, 2010
[7] Kopacz T., Tworzenie aplikacji dla Windows Azure, Microsofr, MSDN
[8] Mateos A.,Rosenberg J.: Chmura obliczeniowa, Rozwiązania dla biznesu, Helion 2011
[9] Fryźlewicz Z., Nikończuk D.: Windows Azure, Wprowadzenie do programowania w chmurze, Helion 2012
[10] Chu-Carroll M.C.: Google App Engine, kod w chmurze, Helion 2012
[11] Kubik T.: GIS. Rozwiązania sieciowe, PWN, 2009

Autor: Witold Ciżmowski
Doktorant na Wydziale ETI, Katedra Systemów Geoinformatycznych, Politechnika Gdańska
www.TatukGIS.com
witold.cizmowski@tatukgis.com

Najnowsze artykuły
 
 
 
Nasze realizacje
 
"Projekty przygotowywane przez firmę SITER są niezwykle ciekawe i bardzo wyróżniają się na tle innych o podobnej tematyce. Wszystkie realizacje wykonane przez firmę SITER stworzyły nowoczesny i profesjonalny wizerunek naszej firmy. "
Jacek Lipski
Dyrektor Zarządzający
PTC Security Systems
 
Zobacz także
 
 
 
 
 
 
 
 
 
 
 
 
Aktualności
 
21.12.2012
 
12.11.2012
 
12.10.2012