Gdy SQL jest niewystarczający: kontroluje ogromne nowe centra danych

Autor: Judy Howell
Data Utworzenia: 3 Lipiec 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Why am I getting an Access Denied error from the Amazon S3 console while I modify a bucket policy?
Wideo: Why am I getting an Access Denied error from the Amazon S3 console while I modify a bucket policy?

Zawartość



Na wynos:

Programiści i inżynierowie muszą nieustannie pracować nad przyspieszeniem i ulepszaniem usług w stosunku do platform, które znacznie wykroczyły poza klasyczne archetypy z lat 90.

Przy całym szumie związanym z ogromnymi centrami danych NSA, które gromadzą miliardy danych o naszym prywatnym życiu, jest jedna rzecz, o której wiele się nie mówi, przynajmniej w CNN. Wiąże się z problemem inżynieryjnym, który pojawił się wraz z technologią chmury, big data i imponującymi fizycznymi centrami przechowywania danych, które są obecnie budowane na całym świecie. Więc co to jest? Cóż, bez względu na to, kto administruje jednym z gigantycznych systemów informatycznych, które obsługują te urządzenia, istnieje zapotrzebowanie na systemy oprogramowania, które pomogą szybko i szybko dotrzeć do wszystkich danych. Potrzeba ta stanowi jedno z najciekawszych pytań lub zagadek informatycznych, przed którymi stają dziś profesjonaliści.


Jak zauważa wielu ekspertów, dzisiejsze ekstremalne zapotrzebowanie na przetwarzanie danych wykracza daleko poza tradycyjne podejście. Mówiąc najprościej, użycie prostych struktur bazy danych i narzędzi, takich jak interfejs zapytań SQL, nie zapewni wystarczającej mocy obliczeniowej lub funkcjonalności dla podobnych systemów, które rozwinęły się w ciągu ostatnich kilku lat. Archiwa dzisiejszych dużych firm technologicznych potrzebują niezwykle skalowalnej technologii. Potrzebują narzędzi do przetwarzania danych, które mogą wprowadzać i wyprowadzać wyniki w znacznie większym wolumenie niż to, co może ułatwić pojedynczy serwer. Potrzebują rozwiązań, które można szybko przyspieszyć w celu rozwoju, rozwiązań obejmujących złożony poziom sztucznej inteligencji, rozwiązań zaprojektowanych z myślą o łatwym zarządzaniu przez dział IT.

Pytanie brzmi: w jaki sposób firmy i agencje rządowe pokonują ograniczenia tradycyjnej ścieżki przetwarzania danych? Tutaj dobrze spójrz na jedną bardzo obiecującą opcję: oprogramowanie, które obsługuje duże zbiory danych i administrację wieloma centrami danych.


System plików Google: wielkie studium przypadku

Zastrzeżona technologia, której Google używa do uzyskiwania dostępu do swoich centrów danych, jest jednym z najlepszych przykładów popularnych modeli obsługi dużych zbiorów danych i zarządzania wieloma centrami danych. System plików Google (GFS), opracowany w 2003 r., Został zaprojektowany w celu obsługi ogromnej liczby szybkich zmian w systemach danych, które są częścią dostarczania tak wielu nowych informacji do i z jednej platformy, gdy miliony użytkowników klikają o tym samym czasie. Eksperci nazywają to rozproszonym systemem plików i używają terminu „przechowywanie obiektów danych”, aby opisać te bardzo złożone techniki. W rzeczywistości jednak te terminy nawet nie zarysowują powierzchni w kategoriach opisujących to, co jest w pracy.

Indywidualnie funkcje i elementy składające się na system taki jak GFS mogą już nie być przełomowe, ale są złożone. Wiele z nich zostało omawianych na tej stronie jako stosunkowo nowe innowacje, które są częścią podwalin pod nowy, zawsze włączony, zawsze podłączony globalny system informatyczny. Podsumowując, system taki jak GFS to znacznie więcej niż suma jego części: jest to w dużej mierze niewidoczna, ale niezwykle złożona sieć, w której poszczególne elementy danych są rzucane w ten sposób i w procesie, który przy pełnym modelowaniu wizualnym wyglądałby jak chaos. Zrozumienie, dokąd zmierzają wszystkie dane, wymaga dużo energii i zaangażowania, co z łatwością przyznają osoby obsługujące stacje bojowe tych systemów.

„Istnieje zbyt wiele szczegółów, które mają głęboki wpływ na obszary użyteczności - w tym fragmentację zewnętrzną i wewnętrzną, aktualizacje oparte na logach w porównaniu z aktualizacjami lokalnymi oraz poziomy spójności transakcji - aby podsumować sposób działania w jednym zwięzłym zdaniu ”, mówi Momchil Michailov, dyrektor generalny i współzałożyciel Sanbolic.

„Rozproszony system plików to rozproszony agregator lokalnych przestrzeni nazw i wolnych przestrzeni węzłów uczestniczących lub lokalny system plików, który działa na wielu węzłach uzyskujących dostęp do wspólnej pamięci za pomocą komponentu rozproszonego menedżera blokady” - powiedział.

Kerry Lebel jest starszym menedżerem produktu w Automic, firmie znanej ze skalowalnych platform automatyzacji. Lebel mówi, że chociaż dokładne opisanie DFS jako systemu, który po prostu przypisuje obciążenia serwerom podłączonym do tanich urządzeń, to tak naprawdę nie mówi całej historii.

Bez błędów, bez stresu - Twój przewodnik krok po kroku do tworzenia oprogramowania zmieniającego życie bez niszczenia życia

Nie możesz poprawić swoich umiejętności programistycznych, gdy nikt nie dba o jakość oprogramowania.

„Brakuje ci tylko tego fajnego czynnika w jaki sposób robią to, co robią - powiedział Lebel.

Kiedy odejdziesz od szczegółów technicznych i po prostu pomyślisz o podstawowej idei rozproszonego systemu plików, oczywisty jest „fajny czynnik”, o którym mówi Lebel. Te systemy obsługi dużych zbiorów danych zastępują stare systemy plików / folderów strukturami obejmującymi nie tylko wiele systemów dostarczania, ale podejście „zorientowane obiektowo”, w którym ogromna liczba jednostek jest tu i tam, aby zapobiec wąskim gardłom.

Pomyślmy na przykład o supernowoczesnym systemie autostrad, w którym setki tysięcy samochodów nie są po prostu zjeżdżane z linii wielopasmowej od razu, ale również zgrabnie wpasowane w schludne małe liście koniczyny lub starorzecze, które są obracane i wysyłane do swoich miejsc docelowych na różne objazdy. Z nieba wszystko wygląda tak choreograficznie jak szwajcarski zegarek. Jest to rodzaj modelu wizualnego, na który patrzą inżynierowie, kiedy wymyślają nowe sposoby kierowania informacji wokół ograniczeń poprzez „kopanie” ich na różne poziomy wielopoziomowego schematu przechowywania danych. Pomijając specyfikacje, jest to najwyższy cel systemu obsługi: utrzymanie tych niezależnych obiektów z osadzonymi metadanymi z najwyższą szybkością tam, gdzie powinny być, aby osiągnąć cele spójności, zadowolić użytkownika końcowego lub nawet w celu poinformowania o obserwacji lub analizie na najwyższym poziomie.

Spojrzenie na podstawową technologię

Artykuł Seana Gallaghera, który ukazał się w Ars Technica, dzieli projekt GFS na nieco łatwiejsze w obsłudze części i wskazuje na to, co znajduje się pod arkuszem w Google.

GFS zaczyna się od nadmiarowego i odpornego na uszkodzenia modelu do odczytu i zapisu danych. Chodzi o to, że zamiast pisać konkretną aktualizację na jednym dysku, nowe systemy zapisują fragmenty danych w wielu miejscach docelowych. W ten sposób, jeśli jeden zapis nie powiedzie się, inne pozostaną. Aby temu zaradzić, jeden podstawowy element sieci zapewnia obsługę danych innym podległym jednostkom, ponownie agregując dane, gdy klient „wzywa” je. Wszystko to jest możliwe dzięki protokołowi metadanych, który pomaga określić, gdzie określone aktualizacje i wyniki transmisji znajdują się w większym systemie.

Innym bardzo ważnym aspektem tego jest sposób, w jaki te obciążone duplikaty systemy wymuszają spójność danych. Jak zauważa Gallagher, projekt GFS poświęca pewną spójność, jednocześnie „wymuszając atomowość” lub chroniąc zasadę aktualizowania danych w wielu jednostkach pamięci w celu ich dopasowania w czasie. Wydaje się, że „zrelaksowany model spójności” Google jest zgodny z podstawową teorią modelu BASE, który zapewnia większą elastyczność w zamian za dłuższe ramy czasowe w zakresie wymuszania spójności.

Jak osiągają to inne duże systemy?

„Po osiągnięciu dostatecznie dużej skali niespójności lub uszkodzenia danych stają się nieuniknione” - mówi Michailov. „Dlatego głównym celem rozproszonych systemów plików powinna być możliwość wykonywania jak największej liczby operacji w obecności korupcji, przy jednoczesnym zapewnieniu skutecznych metod radzenia sobie z korupcją jednocześnie”. Michailov wspomina także o potrzebie zachowania wydajności poprzez staranne wdrożenie redundancji.

„Na przykład utworzenie metadanych (danych o danych) na każdym dysku umożliwia odbudowanie przez ten dysk właściwej struktury danych, jeśli jego kopia lustrzana jest uszkodzona” - powiedział Michailov. „Dodatkowo poziomy RAID można wykorzystać do zwalczania awarii pamięci masowej na poziomie agregatora systemu plików lub poziomu menedżera woluminów udostępnionych.”

Omawiając inny model spójności, Lebel koncentruje się na systemie zwanym rozproszonym systemem plików Hadoop (HDFS), który nazywa „de facto standardem branżowym”.

W systemie HDFS, mówi Lebel, każdy blok danych jest replikowany trzykrotnie na różnych węzłach i na dwóch różnych stelażach. Dane są sprawdzane od końca do końca. Awarie są zgłaszane do NameNode, procedury obsługi danych, która pozbywa się uszkodzonych bloków i tworzy nowe.

Wszystko to obsługuje rodzaje „czystych danych”, które są tak ważne dla integralności jednego z tych systemów danych masowych.

Utrzymanie DFS

Inne zupełnie inne spojrzenie na GFS pochodzi z artykułu z października 2012 r. Autorstwa pisarza Wired Stevena Levy'ego. Znacznie łatwiej jest scharakteryzować podejście programowe do zbiorowej obsługi sieci odgórnej przez Google.

„Z biegiem lat”, pisze Levy, „Google zbudował także system oprogramowania, który pozwala mu zarządzać niezliczonymi serwerami, tak jakby były jednym gigantycznym podmiotem. Wewnętrzni programiści mogą zachowywać się jak marionetkowi mistrzowie, wysyłając tysiące komputerów do działania wykonuje zadania tak łatwo, jak uruchamianie jednego komputera. ”

Wiąże się to również z mnóstwem konserwacji internetowej i środowiskowej, od dedykowanych zespołów testowych próbujących „złamać” systemy serwerów, po starannie kontrolowaną temperaturę w salach krypty danych.

Levy wspomina także o dodatkowych technologiach dla GFS, takich jak MapReduce, narzędzie do tworzenia aplikacji w chmurze oraz Hadoop, silnik analityczny, który dzieli pewne zasady projektowania z GFS. Narzędzia te mają swój wpływ na sposób projektowania systemów obsługi dużych centrów danych oraz na to, co prawdopodobnie pojawi się w przyszłości. (Dowiedz się więcej o tych technologiach w The Evolution of Big Data.)

Michailov uważa, że ​​MapReduce ma potencjał do obsługi coraz większych systemów centrów danych i mówi o „pojedynczej implementacji” współużytkowanych i zagregowanych systemów plików, która mogłaby „zachować węzły nazw zagregowanego systemu plików we wspólnym klastrze z dyskami SSD do przechowywania . ”

Ze swojej strony Lebel widzi odejście od przetwarzania wsadowego (metoda obsługiwana przez Hadoop) do przetwarzania strumieniowego, które przybliży te operacje danych do czasu rzeczywistego.

„Im szybciej będziemy mogli przetwarzać dane i udostępniać je decydentom biznesowym lub naszym klientom, tym większa będzie przewaga konkurencyjna”, mówi Lebel, który sugeruje również zastąpienie powyższej terminologii przetwarzania terminami, które koncentrują się na użytkownik końcowy. Myśląc o działaniach „synchronicznych” lub działaniach zsynchronizowanych z działaniami użytkowników końcowych oraz działaniach „asynchronicznych”, które są bardziej elastyczne pod względem implementacji, Lebel mówi, że firmy mogą korzystać z umów SLA i innych zasobów w celu zdefiniowania sposobu działania systemu usług .

Wszystko to sprowadza się w pewnym sensie do tego, że programiści i inżynierowie muszą stale pracować, aby przyspieszyć i ulepszyć usługi na platformach, które znacznie wykroczyły poza klasyczne archetypy z lat 90. Oznacza to krytyczne spojrzenie na maszynerię danych i przełamywanie wąskich gardeł w sposób, który wspiera nie tylko rosnącą populację, ale także wykładniczą zmianę zachodzącą z zawrotną prędkością, którą eksperci nazywają „następną rewolucją przemysłową”. Jest prawdopodobne, że ci, którzy zdobędą najwięcej na tych frontach, będą dominować na rynkach i gospodarkach przyszłości.