Programowanie aplikacji przetwarzających w chmurze. Bazy danych.
Chmura jako koncepcja Koncepcja znana do dawna Główne powody szukania rozwiązań chmurowych Koszty infrastruktury Koszty utrzymania i administracji Centralizacja Bezpieczeństwo Skalowalność!!!!
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
Kompozycje chmury 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 Software + Services Rozwiązanie hybrydowe korzystamy z własnej infrastruktury sprzętowo programowej i z usług chmurowych
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 )
Windows AZURE Debiut oficjalny : 1 lutego 2010 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
Windows AZURE 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).)
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
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
Architektura Windows Azure Przestrzeń magazynowa Windows Azure Storage Azure Table Azure Queue Azure Blob Azure Drive
Architektura Windows Azure Przestrzeń magazynowa Windows Azure Storage Azure Table Azure Queue Azure Blob Azuer Drive
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ń.
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
Wsparcie programistyczne
Składowanie danych Dwie podstawowe możliwości składowania danych : Azure Storage SQL Azur
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.
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.
Azur Storage - BLOBS Pliki te składowane są według określonego schematu
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).
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.
Schamat Azure Table
Azure Queue 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.
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
Azure Queue 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).
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.
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
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. payas-you-go)
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
Obsługa programowania Zarządzanie dostępem do danych ADO.NET Natywny interfejs ODBC Obsługa PHP
Replikacja danych(bezpieczeństwo składowania) :
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
Podsumowanie Windows Azure jest technologią nową Jest silnie promowana i rozwijana Powstają nowe komponenty Czy stanie się powszechna?????
Dziękuję za uwagę