gg490498(v=msdn.10).md     gg490501(v=msdn.10).md

Wprowadzenie do SQL Azure – część 1 ![Udostępnij na: Facebook](images/gg670867.udostepnij_fb(pl-pl,MSDN.10).png \\"Udostępnij na: Facebook\\")

Omówienie technologii SQL Azure

Autor: Tobiasz Janusz Koprowski

Opublikowano: 2010-12-07

Wprowadzenie

Platforma Microsoft Azure została udostępniona odbiorcom komercyjnym na świecie 2 stycznia br. Na początku były to Stany Zjednoczone Ameryki, niektóre kraje Północnej Europy i Daleki Wschód. Od 1 kwietnia br. platforma ta jest dostępna w ofercie komercyjnej również dla polskich przedsiębiorstw i klientów indywidualnych. Minęło więc pół roku od momentu, kiedy to większa grupa osób może testować i używać produkcyjnie tego środowiska. Wcześniej (przed końcem 2009 r.) możliwość taką mieli uczestnicy platformy Microsoft Connect. Przyjrzyjmy się zatem, co oferuje nam ta platforma.

Na środowisko Microsoft Azure składają się trzy podstawowe komponenty: Windows Azure, SQL Azure i App Fabric. Na stronach MSDN można znaleźć doskonale opisane obie części od strony programistycznej, omawiające zarówno Windows Azure, jak i App Fabric. W tym cyklu skoncentrujemy się przede wszystkim na SQL Azure, dlatego też tylko słowem wstępu opisujemy tutaj całą architekturę:

Windows Azure jest platformą podstawową składająca się z trzech podkomponentów, które zapewniają:

  • przetwarzanie (compute) – udostępniając wirtualny system operacyjny oparty na Microsoft Windows Server pracujący pod kontrolą wirtualnych instancji, a nie fizycznych serwerów, co daje nam możliwość szybkiego powiększenia mocy obliczeniowej „na żądanie”. Obecnie możemy pracować na tej platformie w dwóch rolach: web i worker: pierwsza daje nam możliwość hostowania aplikacji, druga zaś umożliwia uruchomienie prawie dowolnego oprogramowania;
  • magazynowanie (storage) – udostępniając miejsce do przechowywania danych i aplikacji, poprzez wykorzystanie mechanizmów nierelacyjnego składowania danych mogą być tu przechowywane duże ilości danych (nawet jednostkowo tak jak pliki graficzne czy wideo), a poprzez zastosowanie protokołu REST możemy łatwo połączyć je z serwisami zewnętrznymi;
  • zarządzanie (management) – ze względu na specyfikę funkcjonowania tego rozwiązania, w którym niezbędne jest możliwie duże zautomatyzowanie standardowych procedur zarządczych, takich jak rozłożenie ruchu (load balancing), aktualizacji środowiska i aplikacji czy chociażby kontroli dostępu serwisów (service level agreement) udostępnione zostało narzędzie do zarządzania Management API.

SQL Azure (database) to wirtualna relacyjna baza danych zapewniająca przetwarzania zarówno ustrukturyzowanych, jak i nieuporządkowanych danych. Jej głównym założeniem jest udostępnienie relacyjnej bazy danych bezpośrednio w chmurze, zaś jej możliwości – dzięki obsłudze procedur składowanych, języka T-SQL, dostępowi za pomocą ADO.NET, LINQ, ODBC, JDBC i wreszcie Management Studio – są zbliżone i przede wszystkim bardzo podobne do funkcjonowania bazy danych SQL Server umiejscowionej w naszym biurze (czy serwerowni). 

App Fabric jest zaś platformą programistyczną opartą na .NET, zapewniająca dwie podstawowe funkcjonalności:

  • szynę danych (service bus) – dzięki której możliwe jest udostępnienie połączenia do środowiska czy aplikacji więcej niż jednego systemu informatycznego, często rozproszonego i korzystającego z sieci publicznej. Udostępniona szyna danych pozwala na stworzenie takiego dostępu bez rekonfiguracji urządzeń sieciowych, za pomocą standardowych, rozpoznawalnych protokołów;
  • kontrolę dostępu (access control) – która zapewnia uwierzytelnienie rozproszonych użytkowników na podstawie zewnętrznych systemów zarządzania tożsamością (usługi katalogowe, zarówno Active Directory jak i inne).

Ogólny schemat tego środowiska przedstawia poniższy rysunek:

Platforma Windows wspiera aplikacje, dane i infrastrukturę, umiejscowione w chmurze.

Przyjrzyjmy się zatem dokładniej naszej bazie. Czym jest SQL Azure?

Microsoft® SQL Azure™ Database to skalowalna, samozarządzająca się baza danych umiejscowiona w chmurze (cloud), oparta na silniku relacyjnej bazy danych Microsoft SQL Server®. Zapewnia ona wysoką dostępność, skalowalność, współdzielenie usług bazy danych hostowanych w chmurze (cloud computing) przez Microsoft. Jest ona łatwa w utrzymaniu pod względem zarówno kontroli użytkowania (management), jak i tworzenia kosztów (provisioning). Jest również łatwa we wdrożeniu, szczególnie tam, gdzie trzeba wdrożyć wiele baz danych, omijając standardowe procedury wdrożeniowe i utrzymaniowe takie jak: instalacja, konfiguracja, poprawki bezpieczeństwa, licencjonowanie i zarządzanie oprogramowaniem.

Klienci mogą korzystać ze znanej technologii opartej na języku T-SQL, oraz symetrii środowiska znanej z używanych obecnie relacyjnych baz danych Microsoft SQL Server® pracujących w lokalizacji klienta (on-premises). Baza danych SQL Azure może pomóc w redukcji kosztów dzięki integracji z istniejącymi bazami oraz używanymi już narzędziami. Dzięki wbudowanej wysokiej dostępności (high availability) i odporności na uszkodzenia (fault tolerance) nie zachodzi tu potrzeba fizycznej administracji.

Do czego możemy wykorzystać architekturę SQL Azure:

  • rozszerzenie możliwości biznesowych i zdobycie nowych klientów poprzez szybkie i wydajne budowanie usług w oparciu o model Saas (Software-as-a-Service) – oprogramowanie jako usługa;
  • tworzenie niestandardowych aplikacji internetowych korzystających z dynamicznego skalowania bazy danych;
  • rozszerzenie zasięgu zasobów danych i konsolidacji źródeł danych w chmurze, umożliwiając dostęp do nich pracownikom, klientom, partnerom, poprzez oddziały, dostęp zdalny czy urządzenia mobilne;
  • opracowywanie rozwiązań, które dostarczają nowych informacji wpływających na wydajność przepływów procesów biznesowych poprzez agregację danych oraz ich integrację z wielu źródeł za pomocą już istniejących narzędzi.

Najważniejsze cechy SQL Azure to:

  • brak konieczności fizycznej instalacji,
  • brak licencji,
  • wbudowana wysoka dostępność (High Availability),
  • wbudowana odporność na błędy (Fault Tolerance),
  • łatwe kontrolowanie kosztów (Provisioning),
  • łatwe wdrażanie bazy danych (Deployment),
  • łatwe skalowanie wielkości baz danych – zarówno w górę, jak i w dół,
  • współdzielenie środowiska i dobra izolacja (Multitenant),
  • integracja z narzędziami deweloperskimi, takimi jak język T-SQL oraz Visual Studio®,
  • domyślna architektura kosztowa oparta na zasadzie Pay-as-you-go – płać za to, co używasz.

Najważniejsze funkcje SQL Azure:

  • usługi zarządzania relacyjnymi bazami danych (RDBMS):
    • tworzenie, dostęp i manipulowanie tabelami, widoki, indeksy, role, procedury składowane, wyzwalacze i funkcje,
    • wykonywanie skomplikowanych zapytań i połączeń do wielu tabel,
    • obsługa ładowania, zmiany i usuwania danych (Insert, Update, Delete),
    • transakcje,
    • tabele tymczasowe,
    • podstawowe funkcje (agregowanie, obliczenia, ciągi znaków, data/czas),
    • wbudowane procedury przechowywane i widoki systemowe,
    • wsparcie dla śledzenia rozliczanych parametrów w czasie rzeczywistym oraz do analizy historycznej;
  • programowalność:
    • zarządzany dostęp do danych ADO.NET,
    • język ODBC,
    • wsparcie dla PHP;
  • narzędzia:
    • zarządzanie i rozliczanie logicznych serwerów i baz danych poprzez konto w portalu SQL Azure Database Portal,
    • SQL Server Management Studio: zintegrowane środowisko z narzędziami graficznymi pozwalające na dostęp i konfigurację baz danych SQL Server i SQL Azure (zarówno platforma 32-bitowa, jak i 64-bitowa),
    • wsparcie dla wdrażania i uruchamianie skryptów konfiguracyjnych poprzez Sqlcmd.

Podsumowanie

W tym artykule omówiliśmy podstawowe zagadnienia i architekturę środowiska SQL Azure.

Z części drugiej dowiemy się, jak przygotować zaplecze dla naszego środowiska, zarówno od strony technicznej jak i proceduralnej.


gg490498(v=msdn.10).md     gg490501(v=msdn.10).md