Database
 sql >> Baza danych >  >> RDS >> Database

Przyszłość stosu aplikacji

Kontenery zjadają świat. Jeśli zbudowałeś i wdrożyłeś aplikację w środowisku produkcyjnym w ciągu ostatnich kilku lat, istnieje prawdopodobieństwo, że wdrożyłeś swój kod w kontenerach. Mogłeś utworzyć i wdrożyć pojedyncze kontenery (Docker, Linux LXC itp.) bezpośrednio na początku, ale szybko przestawiłeś się na technologię orkiestracji kontenerów, taką jak Kubernetes (K8s) lub Swarm, gdy potrzebujesz koordynować wdrożenia wielowęzłowe i wysoką dostępność (HA). Jak będzie wyglądała przyszłość stosu aplikacji w tym opartym na kontenerach świecie? Zacznijmy od tego, czego potrzebujemy od tego „przyszłego” stosu aplikacji.

Czego potrzebujemy od tego przyszłego stosu aplikacji?

  1. Niezależny od chmury

    Chcemy być niezależnymi od chmury, z możliwością wdrożenia w dowolnej wybranej przez nas chmurze. Idealnie, możemy nawet mieszać różnych dostawców w jednym wdrożeniu.

  2. Na miejscu

    Musimy być w stanie uruchomić nasz stos aplikacji lokalnie, korzystając z własnego niestandardowego sprzętu, prywatnej chmury i wewnętrznie zarządzanych centrów danych.

  3. Agnostyk językowy

    To prawie pasuje do powiedzenia, ale dodam to dla kompletności. Przyszły otwarty stos musi obsługiwać wszystkie popularne języki programowania.

Przyszły stos aplikacji

Przyszły stos aplikacji będzie składał się z triady technologii – K8s, Platform-as-a-Service (PaaS) i Database-as-a-Service (DBaaS) :

K8s

Kubernetes to przenośna, rozszerzalna platforma typu open source do zarządzania obciążeniami i usługami w kontenerach, umożliwiająca wdrażanie aplikacji bezpośrednio w kontenerach K8s. W przypadku klientów z istniejącymi aplikacjami sensowne jest pakowanie i wdrażanie istniejących aplikacji bezpośrednio w K8s.

Przyszłość stosu aplikacji:K8s, PaaS i DBaaSC Kliknij, aby tweetować

Wszyscy dostawcy chmury publicznej zapewniają silną natywną obsługę K8s, a także możesz uruchomić własny klaster K8s lokalnie. Docker również wskoczył na modę K8s - więc masz pełną elastyczność. Nie ma wątpliwości, że K8s jest dziś królem skoczni. Za kilka lat może zostać pokonany przez inne rozwiązanie, ale technologia orkiestracji kontenerów pozostanie.

Rozwiązania PaaS

Jeśli tworzysz nową aplikację od podstaw, rozwiązania Platform-as-a-Service, takie jak Cloud Foundry i OpenShift, oferują atrakcyjne korzyści, które możesz wykorzystać, aby przyspieszyć tworzenie aplikacji koło życia. Czy PaaS jest koniecznością? Zdecydowanie nie, ale myślę, że warto rozważyć, jeśli tworzysz nową aplikację.

W niektórych przypadkach rozwiązania PaaS mogą działać na K8s lub znajdować się obok nich – z perspektywy aplikacji nie ma to znaczenia. Jeśli Twoja organizacja IT wdraża rozwiązanie PaaS, może im się spodobać, jeśli działa tylko w istniejących klastrach K8s. Wyżej wymienione rozwiązania PaaS są również dostępne we wszystkich chmurach publicznych. Więc znowu masz pełną elastyczność, której potrzebujesz ze swojej platformy.

Rozwiązania DBaaS

Prowadzenie i zarządzanie produkcyjnym systemem baz danych nie jest dla osób o słabym sercu. Jeśli myślisz, że zamierzasz zainstalować swoją produkcyjną bazę danych na trzech kontenerach i będzie ona działała długo i szczęśliwie, czeka Cię kolejna rzecz. Korzystając z rozwiązania Database-as-a-Service, zajmą się wszystkimi operacyjnymi aspektami zarządzania bazą danych, dzięki czemu będziesz przygotowany na wszelkie nieoczekiwane.

Twój DBaaS może, ale nie musi działać na K8s. Może niektóre części DBaaS działają na K8s, ale szanse są takie, że tak nie jest. Dlaczego tak jest?

  1. Poza popularnymi chmurami publicznymi nie ma świetnego rozwiązania dla pamięci/woluminów o jakości EC2 Elastic Block Storage (EBS). Sprzedawcy tacy jak PortWorx i OpenEBS pracują nad tym, ale jeszcze tego nie ma. Bez dobrego rozwiązania do przechowywania praktycznie niemożliwe jest umieszczanie danych w kontenerach.
  2. Jeśli korzystasz z dużego, produkcyjnego serwera bazy danych o pojemności kilku TB, nie ma sensu uruchamiać go w kontenerach – będziesz mieć duże dedykowane maszyny z fantazyjnymi dyskami SSD .
  3. Za dużo dynamiki – tak, możesz mieć za dużo dobrego. Czasami, gdy coś zawodzi, chcesz, aby pozostało nieudane, abyś mógł spojrzeć i zobaczyć, co się dzieje. StatefulSets w Kubernetes to świetny krok we właściwym kierunku, aby rozwiązać ten problem.

W ScaleGrid naszą wizją jest dostarczenie części DBaaS przyszłego stosu aplikacji. Obecnie działamy w wielu chmurach i możemy również działać lokalnie lub we własnym prywatnym centrum danych. Ponadto nasza platforma to system wielojęzyczny, który obsługuje wiele baz danych, w tym MongoDB®, Redis™*, MySQL i PostgreSQL.

Dla uproszczenia wykluczyłem niektóre inne części stosów aplikacji, takie jak przechowywanie obiektów, przechowywanie systemu plików itp. W zasadzie oczekuję te komponenty będą podobne do komponentu DBaaS. Ten wpis na blogu został zainspirowany spotkaniem PostgreSQL w Dolinie Krzemowej, w którym uczestniczyłem kilka tygodni temu, i krzyczę do Dave'a Nielsena (@davenielsen) z RedisLabs za rozpoczęcie dyskusji na ten temat.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wskazówki dotyczące Wszechświata

  2. Jak zaktualizować kolumnę na podstawie filtra innej kolumny?

  3. Zabawa z nowymi funkcjami Postgres w Django

  4. Wizualizacja danych w Microsoft Power BI

  5. Zarządzanie rolami i statusami w systemie