Jeśli zastanawiałeś się nad przeniesieniem środowiska SQL Server na platformę Azure, miałeś tylko kilka opcji. Najpierw możesz użyć rozwiązania PaaS usługi Azure SQL Database i przenieść pojedynczą bazę danych lub użyć puli elastycznej. Drugą opcją było rozwiązanie IaaS korzystające z maszyn wirtualnych platformy Azure z systemem Microsoft SQL Server. Wkrótce udostępnimy trzecią opcję o nazwie instancja zarządzana bazy danych SQL.
Wystąpienia zarządzane wypełniają lukę między lokalnym programem SQL Server a platformą Azure Baza danych SQL
Zarządzane wystąpienia zostały po raz pierwszy zaprezentowane na konferencji Microsoft Build wiosną 2017 r. i jak dotąd wersja zapoznawcza była ograniczona do niewielkiej liczby klientów i konsultantów. Wystąpienia zarządzane można uznać za hybrydę między pełną wersją programu SQL Server i Azure SQL Database. Pojedyncze i elastyczne bazy danych są zbudowane na modelu programowania z zakresem bazy danych, a wystąpienia zarządzane są zbudowane na modelu programowania z zakresem wystąpienia. Dzięki temu wystąpienia zarządzane są bardziej kompatybilne z lokalnym serwerem SQL.
Wystąpienia zarządzane zapewniają znacznie lepsze wrażenie lokalnego programu SQL Server, ale są oparte na tej samej infrastrukturze, co usługa Azure SQL Database. To, co odróżnia ją od Azure SQL Database, polega na tym, że przedstawia klientowi całą instancję programu SQL Server. W Azure SQL Database konfigurujesz serwer, który w rzeczywistości jest kontenerem, a następnie może mieć wiele baz danych na tym serwerze, ale nie mogą one łatwo komunikować się ze sobą. Dzięki zarządzanym instancjom wszystkie bazy danych w instancji znajdują się na tym samym rzeczywistym serwerze SQL, dzięki czemu masz pełną obsługę zapytań między bazami danych. Jest to ogromna funkcja dla wielu aplikacji, które w przeciwnym razie nie pasowałyby do Azure SQL Database i myślę, że pozwoli to wielu aplikacjom SQL Server przenieść się do chmury.
Obsługiwana jest teraz funkcjonalność na poziomie instancji. Obejmuje to takie rzeczy, jak globalne tabele tymczasowe, agent programu SQL Server, broker usług, replikacja, inspekcja SQL i środowisko uruchomieniowe języka wspólnego (CLR). Zarządzane instancje mogą również obsługiwać bazy danych o rozmiarze do 35 TB. Obecnie największa pojemność bazy danych SQL Azure to 4 TB w najwyższej warstwie. Podejrzewam, że może się to wkrótce zmienić i ponownie otworzy chmurę dla większej liczby aplikacji.
Zarządzane wystąpienia mogą również korzystać ze wszystkich funkcji platformy PaaS, w tym automatycznych kopii zapasowych, wykrywania zagrożeń, oceny luk w zabezpieczeniach, wysokiej dostępności, replikacji geograficznej, doradcy w zakresie baz danych i wielu innych. Widziałem prezentację, która omawiała, jak działa automatyczny proces przełączania awaryjnego i dowiedziałem się, że obiekty na poziomie serwera są replikowane do instancji przełączania awaryjnego. Oznacza to, że takie rzeczy jak loginy i zadania – problemy w wielu naszych dzisiejszych środowiskach – są obsługiwane za Ciebie.
W ciągu ostatniego roku pomogłem wielu klientom w migracji do Azure SQL Database, a jednym z głównych wyzwań jest migracja danych. Nie możesz po prostu wykonać kopii zapasowej SQL Server i przywrócić ją do Azure SQL Database. Bardzo się ucieszyłem, że dzięki instancjom zarządzanym SQL Database możemy korzystać z natywnych kopii zapasowych SQL Server i przywracać je do instancji zarządzanych, jednak konieczne jest użycie mechanizmu kopii zapasowej na adres URL. Ułatwi to jednak migracje do wystąpień zarządzanych, jednak ponieważ wystąpienia zarządzane są oparte na bazie danych SQL Azure, jest to bilet w jedną stronę:nie można wykonać kopii zapasowej baz danych wystąpień zarządzanych i przywrócić ich z powrotem do środowiska lokalnego. Jeśli kiedykolwiek zdecydowałeś się przywrócić bazę danych do środowiska lokalnego lub z wystąpień zarządzanych, będziesz musiał wyeksportować swoje dane.
Bazy danych w wystąpieniach zarządzanych są znacznie bardziej gotowe do migracji do Azure SQL Baza danych
Z drugiej strony, ponieważ są one zbudowane na platformie Azure SQL Database, poszczególne bazy danych umieszczone w wystąpieniu zarządzanym można migrować do ich własnych indywidualnych baz danych Azure SQL Database. To sprawia, że instancja zarządzana jest idealną odskocznią, na której można określić komplikacje izolacji, które uniemożliwiają migrację bezpośrednio do PaaS.
Jestem ciekaw, czy replikacja jest obsługiwana. Nie udało mi się jeszcze dowiedzieć, czy baza danych wystąpienia zarządzanego może być wydawcą, czy może być tylko subskrybentem, na przykład Azure SQL Database. Jeśli może to być wydawca, może to być skuteczny sposób na migrację z powrotem do lokalnych. Mam nadzieję, że w niedalekiej przyszłości będziemy mogli również przywracać natywne kopie zapasowe SQL Server do pojedynczych baz danych Azure SQL Database. Wygląda na to, że technologia tam jest, wystarczy ją rozszerzyć o istniejące środowisko PaaS.
Inną interesującą obserwacją dotyczącą wystąpień zarządzanych jest to, że ponieważ technologia jest oparta na modelu Azure SQL Database, wersja programu SQL Server będzie zgodna z wersją Azure SQL Database. Może to skomplikować sprawy związane ze wsparciem dostawcy. Wielu dostawców twierdzi, że certyfikuje swój produkt na SQL Server w wersji X. Mimo że wystąpienia zarządzane będą obsługiwać prawie wszystkie funkcje SQL Server 2017, nie będą używać tej samej wersji kompilacji, więc programowe sprawdzanie wersji będzie skomplikowane. Najlepszym sposobem działania jest odepchnięcie dostawcy, ponieważ Microsoft prawdopodobnie nie zmieni tego stanowiska i nie mam wątpliwości, że niektóre z tych rozmów będą stanowić wyzwanie.
Czy dostawcy podejmą wysiłek certyfikacji swoich produktów w przypadku wystąpień zarządzanych, czy też stanie się to problemem podobnym do tego, którego doświadczaliśmy w przypadku wirtualizacji? Na początku wirtualizacji wielu dostawców twierdziło, że nie obsługuje ich produktów działających w trybie wirtualizacji, jednak firma Microsoft w pełni obsługiwała wirtualizację systemu Windows X i SQL Server X. Mamy nadzieję, że zobaczymy dostawców, którzy dołączą do systemu i certyfikują swoje produkty w ramach wystąpień zarządzanych. Z pewnością widzę kilku pionierów SQL Server, którzy po własnych testach przejdą na zarządzane instancje.
Za każdym razem, gdy klient chce przeprowadzić migrację do chmury, bezpieczeństwo jest dużym problemem. Wystąpienia zarządzane oferują obsługę sieci wirtualnej z prywatnymi adresami IP i VPN dla sieci lokalnych. Może to pozwolić klientowi chronić swoje środowisko przed publicznym Internetem i mieć pełną izolację.
Jestem podekscytowany wystąpieniami zarządzanymi i naprawdę nie mogę się doczekać, aż będą szerzej dostępne. Dla klientów, którzy chcieliby środowiska zarządzanego, ale potrzebują rozwiązania bardziej bogatego w funkcje niż pojedyncza lub elastyczna baza danych Azure SQL, uważam, że wystąpienia zarządzane będą idealnym rozwiązaniem. Istnieje luka między usługą Azure SQL Database a programem SQL Server na maszynie wirtualnej platformy Azure, ponieważ wielu klientów potrzebuje czegoś więcej niż oferty usługi Azure SQL Database, ale program SQL Server na maszynie wirtualnej platformy Azure to nadal więcej konserwacji i odpowiedzialności, niż oczekiwali. Wystąpienia zarządzane naprawdę wypełniają tę lukę. Obsługują znacznie większą bazę danych, umożliwiają łatwiejsze migracje danych, umożliwiają zapytania między bazami danych i nie powinny wymagać żadnych zmian w kodzie, ponieważ platforma jest bardzo kompatybilna z lokalnym serwerem SQL.
Podsumowując, jeśli Twoja organizacja rozważa przejście do środowiska hostowanego w ramach platformy Azure SQL Database, będziesz mieć możliwość wyboru między poszczególnymi bazami danych Azure SQL Database, elastycznymi pulami lub wystąpieniami zarządzanymi. W zależności od potrzeb aplikacji, jedno z tych rozwiązań powinno dobrze pasować. W przeciwnym razie masz również możliwość uruchomienia tradycyjnego wystąpienia programu SQL Server na maszynie wirtualnej platformy Azure, która oferuje przydatne funkcje, takie jak zarządzane kopie zapasowe, replikacja geograficzna, Azure Site Recovery i wiele więcej. Firma Microsoft nadal inwestuje w platformę Azure, dostarczając nowe produkty i funkcje, których potrzebują ich klienci, a nadchodząca wersja Managed Instances jest kolejnym dowodem tego skupienia. Bądź na bieżąco, ponieważ obiecano nam publiczną wersję zapoznawczą w najbliższej przyszłości.