Programowanie aplikacji przetwarzających w chmurze. Bazy...

34
Programowanie aplikacji przetwarzających w chmurze. Bazy danych.

Transcript of Programowanie aplikacji przetwarzających w chmurze. Bazy...

Programowanie aplikacji przetwarzających w chmurze. Bazy

danych.

Chmura jako koncepcja

mgr inż. Andrzej Ptasznik

Koncepcja znana do dawna Główne powody szukania rozwiązań „chmurowych”

• Koszty infrastruktury • Koszty utrzymania i administracji • Centralizacja • Bezpieczeństwo • Skalowalność !!!!

mgr inż. Andrzej Ptasznik

Kompozycje chmury

• Kolokacja – ktoś udostępnia pomieszczenie i jego infrastrukturę (zasilanie i dostęp do sieci) – nasz sprzęt system i „reszta”

• IaaS = Infrastructure as a Service - udostępniany jest sprzęt – nasz system i aplikacje

• PaaS = Platform as a Service – dostawca udostępnia pełną platformę systemową – my zajmujemy się pisaniem aplikacji

Tu mieści się główna idea Windows Azure

mgr inż. Andrzej Ptasznik

SaaS = Software as a Service – dostawca dostarcza pełna usługę aplikacyjną

W tym miejscu Microsoft oferuje BPOS czyli Business Productivity Online Suite, w skład którego wchodzi kilka produktów, które działają na serwerach Microsoft. Aktualnie w tym pakiecie dostępne są: Microsoft Exchange Online Microsoft SharePoint Online Microsoft Office Communications Online Microsoft Office Live Meeting

Kompozycje chmury

mgr inż. Andrzej Ptasznik

Software + Services Rozwiązanie hybrydowe – korzystamy z własnej infrastruktury sprzętowo – programowej i z usług chmurowych

Kompozycje chmury

mgr inż. Andrzej Ptasznik

Rodzaje chmur

Chmura współdzielona (na serwerach dostawcy),

Chmura prywatna (dostawca udostępnia platformę programową która jest zainstalowana na własnej infrastrukturze sprzętowej),

Chmura dedykowana (wydzielony kawałek chmury dostawcy usług )

mgr inż. Andrzej Ptasznik

Windows AZURE

Platforma Windows Azure (wcześniej Azure Services Platform) – platforma chmurowa firmy Microsoft stworzona w modelu PaaS (Platform as a Service). Mechanizmy : • (Windows Azure Compute) - przetwarzanie • (Windows Azure Storage, SQL Azure) - składowanie

Debiut oficjalny : 1 lutego 2010

mgr inż. Andrzej Ptasznik

Windows Azure – środowisko, w którym uruchamiane są poszczególne aplikacje

Azure Storage zapewniające niezawodne i skalowalne mechanizmy przechowywania informacji. Azure Table – do przechowywania miliardów wierszy, Azure Blob – do przechowywania danych binarnych, Azure Queue – kolejki do szybkiej wymiany informacji.

SQL Azure – relacyjna baza danych (w dużej części zgodnej z Microsoft SQL Server).

Windows Azure AppFabric (dawniej .NET Services) – komponent odpowiadający za połączenie chmury publicznej i usług lokalnych. Access Control – umożliwia definiowanie mechanizmów kontroli dostępu, autoryzacji,

uprawnień itp. Service Bus – udostępnianie usług

Tworzone i udostępniane są nowe elementy platformy (Projekt „Dallas” – usługa pozwalająca sprzedawać i kupować dane przechowywane w chmurze (np. dane analityczne).)

Windows AZURE

mgr inż. Andrzej Ptasznik

Architektura Windows Azure

Usługa Windows Azure to wysoce zoptymalizowany do pracy w Chmurze system operacyjny. Oferuje programistom trzy podstawowe funkcjonalności: • Moc obliczeniowa • Przestrzeń magazynowa • Mechanizmy zarządzania

mgr inż. Andrzej Ptasznik

Architektura Windows Azure

Moc obliczeniowa : • dostępna w postaci prekonfigurowanych maszyn wirtualnych (instancji) –

zapewnia łatwą skalowalność i odporność na awarie • Każda maszyna pozwala na uruchomienie jednej lub więcej ról (roles). Rola

to tryb pracy środowiska Windows Azure. • Web- możliwość hostowania aplikacji ASP.NET • Worker - uruchomienie praktycznie dowolnego oprogramowania.

• .Net • Java, • PHP, • Python • Ruby

mgr inż. Andrzej Ptasznik

Architektura Windows Azure

Przestrzeń magazynowa – Windows Azure Storage • Azure Table • Azure Queue • Azure Blob • Azure Drive

mgr inż. Andrzej Ptasznik

Architektura Windows Azure

Przestrzeń magazynowa – Windows Azure Storage • Azure Table • Azure Queue • Azure Blob • Azuer Drive

mgr inż. Andrzej Ptasznik

Architektura Windows Azure

Mechanizmy zarządzania – - • mechanizmy rozkładu przychodzącego ruchu (load

balancing), • Mechanizmy kontroli dostępności serwisów i ich

okresowej aktualizacji • Management API - możliwość wykorzystania części z

tych funkcji do własnych celów, np. monitorowania użytkowania naszego systemu czy rejestrowania własnych zdarzeń.

mgr inż. Andrzej Ptasznik

SQL Azure

Dostępna w chmurze instancja bazy danych SQL Server. Jest uzupełnieniem platformy Windows Azure • Dane w strukturze relacyjnej • Procedury składowane, • funkcje • wyzwalacze • dostęp do danych za pośrednictwem ADO.NET i LINQ • zarządzanie za pośrednictwem aplikacji SQL Server

Management Studio • odciąża administratora od konieczności instalacji i

utrzymania całego środowiska serwerowego

mgr inż. Andrzej Ptasznik

Wsparcie programistyczne

mgr inż. Andrzej Ptasznik

Składowanie danych

Dwie podstawowe możliwości składowania danych : • Azure Storage

• SQL Azur

mgr inż. Andrzej Ptasznik

Azure Storage

Azure Storage zapewnia niezawodne i skalowalne mechanizmy przechowywania informacji. Dostępne są trzy typy pojemników:

• Azure Table – do przechowywania miliardów wierszy,

• Azure Blob – do przechowywania danych binarnych,

• Azure Queue – kolejki do szybkiej wymiany informacji.

mgr inż. Andrzej Ptasznik

Azur Storage - BLOBS

Najpopularniejszymi i najczęściej wykorzystywanymi typami danych używanych w Azure są pliki typu BLOB (Binary Large Objects

• audio, • wideo, • pliki tekstowe • inne dane niezawierające ściśle zdefiniowanej struktury.

Istnieją dwie formy tego typu plików, z których możemy skorzystać : • blokowe (Block blobs) • stronicowe (Page blobs).

Pliki blokowe posiadają ograniczenie wielkości do 200 GB. Pliki stronicowe posiadają ograniczenie rozmiaru, 1 TB, i dzielone są na strony rozmiaru 512 bajtów.

mgr inż. Andrzej Ptasznik

Azur Storage - BLOBS

Pliki te składowane są według określonego schematu

mgr inż. Andrzej Ptasznik

Azur Storage -Table Azure Tables składa się z trzech elementów: • tabeli, • encji, • właściwości.

Tabela, tak jak w relacyjnych systemach, jest podstawowym nośnikiem danych. Encja utożsamiana z wierszem danych - nie ma z góry narzuconego schematu kolumn (właściwości). Najważniejsze właściwości encji w Azure Tables to: • RowKey (string) – klucz główny encji, unikalny w obrębie jednego

węzła. • PartitionKey (string) – klucz podziału. Encje posiadające taki sam

klucz podziału będą przechowywane w tym samym węźle (maszynie).

• Timestamp – wersja encji, zarządzana przez system (readonly).

mgr inż. Andrzej Ptasznik

Azure Storage -Table • Właściwości pełnią funkcję analogiczną do kolumn znanych z

relacyjnych baz danych. • mają elastyczną strukturę i mogą różnić się w obrębie tej samej tabeli. • Każda encja może mieć maksymalnie 255 właściwości. • Całkowity rozmiar encji wynosi 1 MB, • limit wszystkich danych w Azure Tables w ramach jednego konta Azure

Storage wynosi 100 TB. • Azure wspiera następujące typy właściwości: Binary Tablica bajtów (maksymalnie 64 KB). Bool Klasyczna wartość boolowska. DateTime 64-bitowy czas UTC od 1/1/1600 do

12/31/9999. Double 64-bitowa wartość zmiennoprzecinkowa. GUID 128-bitowy globalnie unikalny identyfikator. Int 32-bitowa liczba całkowita. Int64 64-bitowa liczba całkowita. String Strumień znaków (UTF-16), maksymalnie 64

KB.

mgr inż. Andrzej Ptasznik

Schamat Azure Table

mgr inż. Andrzej Ptasznik

Windows Azure Queue składa się z dwóch zasadniczych komponentów: Kolejka – miejsce, w którym składowane są komunikaty. Jedno konto Azure Storage

może zawierać nieograniczoną liczbę kolejek. Wiadomość – pojedyncza wiadomość (w architekturze opartej na kolejkach komunikat

może być utożsamiany z komendą) nieprzekraczająca 8KB.

Atrybuty każdego komunikatu (wiadomości): MessageID – unikalny identyfikator (GUID). VisibilityTimeout – czas, przez jaki komunikat po zdjęciu z kolejki nie będzie widoczny dla

konsumentów. MessageTTL – czas życia komunikatu, maksymalnie siedem dni. Dzięki MessageTTL

mamy pewność, że niechciane komunikaty zostaną usunięte i nie będą niepotrzebnie obciążały komputera.

PopReceipt – każda wiadomość ma dwie właściwości identyfikujące: MessageID i PopReceipt. PopReceipt, w przeciwieństwie do MessageID, nie jest taki sam dla danego komunikatu – przy każdym zdjęciu komunikatu z kolejki PopReceipt jest na nowo generowany. Dzięki temu, oprócz zidentyfikowania samej wiadomości, można również jednocześnie określić konkretną operację zdjęcia komunikatu z kolejki.

Azure Queue

mgr inż. Andrzej Ptasznik

Cykl życia wiadomości: Producent umieszcza wiadomość w kolejce. Kolejka oczekuje na zdjęcie wiadomości. Wiadomość będzie

przechowywana w kolejce dopóty, dopóki nie zostanie przekroczony czas zdefiniowany przez MessageTTL.

Konsument zdejmuje wiadomość z kolejki. Wiadomość nie jest automatycznie usuwana, jednak komunikat nie będzie widoczny przez czas zdefiniowany za pomocą parametru VisibilityTimeout. Każde zdjęcie wiadomości z kolejki wiąże się z automatycznym wygenerowaniem nowego PopReceipt.

Co dalej się stanie z komunikatem, zależy już od konsumenta: konsument realizuje zadanie z sukcesem i usuwa komunikat z kolejki

na podstawie identyfikatora MessageTTL oraz PopReceipt, nie udało się zrealizować zadania. Komunikat będzie niewidoczny

jeszcze przez pewien czas (VisibilityTimeout). Mechanizm VisibilityTimeout zapobiega usuwaniu komunikatów, które nie zostały zrealizowane. Dzięki temu mamy pewność, że w kolejce znajdują się wiadomości, które nie zostały jeszcze przetworzone.

Azure Queue

mgr inż. Andrzej Ptasznik

Azure gwarantuje, że komunikat dotrze do przynajmniej jednego konsumenta. Nie ma gwarancji, że nie zostanie on odebrany przez kilka instancji naraz. Innymi słowy, wiadomość może zostać przetworzona kilkakrotnie.

Komunikaty dodane jako pierwsze niekoniecznie będą odebrane później również w pierwszej kolejności (brak struktury FIFO).

Komunikaty dodane do kolejki mogą pojawić się w niej z lekkim opóźnieniem (nie możemy zakładać, że dodana wiadomość od razu stanie się widoczna dla konsumentów).

Azure Queue

mgr inż. Andrzej Ptasznik

• Baza danych Microsoft SQL Azure jest usługą relacyjnej bazy danych opartą na rozwiązaniu chmury, zbudowaną na technologiach SQL Server.

• Dostarcza ona wysoce dostępną, skalowalną i wielodostępną usługę bazy danych hostowaną w chmurze przez firmę Microsoft.

• Baza danych SQL Azure umożliwia łatwą obsługę i wdrażanie wielu baz danych.

mgr inż. Andrzej Ptasznik

W jakim celu stosować SQL Azure: • Zwiększyć możliwości biznesowe i wejść na nowe rynki poprzez

szybkie i wydajne tworzenie aplikacji SaaS (oprogramowanie jako usługa)

• Tworzyć aplikacje web i aplikacje dla przedsiębiorstw korzystające z możliwości, jakie daje skalowalna baza danych

• Zwiększyć zasięg danych i skonsolidować źródła danych w chmurze, aby umożliwić lepszą współpracę pomiędzy partnerami, oddziałami firm, pracownikami zdalnymi i urządzeniami przenośnymi.

• Usprawnić zasoby poprzez konsolidację istniejących baz danych należących do różnych działów i szybkie tworzenie nowych baz danych

• Opracować rozwiązania, które umożliwiają świeże spojrzenie na wydajność i procesy biznesowe poprzez integrację wielu źródeł danych z istniejącymi narzędziami analitycznymi

mgr inż. Andrzej Ptasznik

Najważniejsze korzyści: • Nie wymaga fizycznego zarządzenia, instalacji

oprogramowania i aktualizacji • Wysoka dostępność i wbudowana odporność na awarie • Proste tworzenie i wdrażanie wielu baz danych • Skalowanie baz danych w zależności od potrzeb

biznesowych • Wielodostępność • Integracja z serwerem SQL i narzędziami, w tym z Visual

Studio • Obsługa znajomego modelu relacyjnych baz danych T-

SQL • Opłaty uzależnione od stopnia wykorzystania (ang. pay-

as-you-go)

mgr inż. Andrzej Ptasznik

Usługi zarządzania relacyjnymi bazami danych (RDBMS) • Twórz, uzyskaj dostęp i modyfikuj tabele, widoki, indeksy,

role, procedury składowane, triggery i funkcje • Wykonuj złożone zapytania łącząc jednocześnie wiele

tabel • Polecenia WSTAW, AKTUALIZUJ, KASUJ • Ograniczenia • Transakcje • Tabele tymczasowe • Podstawowe funkcje (agregacje, operacje

matematyczne, ciągi, data/czas) • Zestaw, wbudowanych procedur składowanych SQL

Server i widoków systemowych • Obsługa śledzenia rozliczeń w czasie rzeczywistym

mgr inż. Andrzej Ptasznik

Obsługa programowania • Zarządzanie dostępem do danych ADO.NET

• Natywny interfejs ODBC

• Obsługa PHP

mgr inż. Andrzej Ptasznik

Replikacja danych(bezpieczeństwo składowania) :

mgr inż. Andrzej Ptasznik

Elementy technologii SQL Server niedostępne w SQL Azure: • CLR • Zarzadzanie plikami i grupami • Mirroring • Rozproszone zapytania i transakcje • Service Broker • Full text Search • Filestream • Indeksy XML • DBCC • Backup/Restore • BULK INSERT

mgr inż. Andrzej Ptasznik

Windows Azure jest technologią nową

Jest silnie promowana i rozwijana

Powstają nowe komponenty

Czy stanie się powszechna ?????

Podsumowanie

mgr inż. Andrzej Ptasznik

Dziękuję za uwagę