AWS vs Kubernetes

0

Hej,
Nigdy nie robiłem nic w AWS, ale ostatnio ciągle o tym słysze, że wszyscy się na tym skupiają, chodzą na szkolenia, robią certyfikaty itd.
Natomiast obecnie jestem na projekcie gdzie wytwarzamy jakiś soft, budujemy z tego obrazki dockerowe i wypychamy to na Openshift ( a właściwie jenkins to robi, ale mniejsza z tym ) - tam kontenery są zarządzane, skalowane, load balancing , jakieś health checki , logi itd. no i wszystko fajnie działa, apke sobie można poklikać.
Przez jakiś czas myślałem, że AWS jest to po prostu konkurencja dla Openshifta, czyli, że robi dokładnie to samo tylko inna firma to wydaje, ale z tego co ostatnio spojrzałem to chyba jestem w błędzie i AWS oferuje dużo więcej, a nawet gdzieś mi migneły jakieś połączenia openshift + aws - więc pytanie, co właściwie więcej zaoferują mi te usługi AWSa, czego nie ogarnę po przez openshifta?
Rozkminka z tego względu, że dwa lata siedzę na projekcie i miałem wrażenie, że "wszystko co potrzeba już mam" :D

1

OpenSwift to po prostu hostowany k8s, AWS to cała platforma cloudowa, więc np. możesz zarządzać maszynami bez narzutu k8s czy ustawić object storage.

Ogólnie to pytanie z kategorii:

Co można zrobić młynem czego nie można zrobić z krupczatką 200tką.

4

Kubernetes to warstwa abstrakcji nad zasobami takimi jak CPU, pamięć, storage wraz z różnymi przydatnymi rzeczami do operowania aplikacją (typu wspomniane przez ciebie zbieranie logów, health checki, service discovery i takie tam rzeczy). Definiujesz sobie deployment w yamlu, podpinasz serwis i generalnie bangla, to już pewnie znasz.

Klaster k8s możesz wdrożyć sobie na czym chcesz - szufladzie raspberry PI, serwerach w twoim data center, AWS, Azure - co jest często powodem wybrania go przez firmy które nie chcą się uzależniać od konkretnej platformy (w praktyce to różnie wychodzi)

AWS to "convenience as a service" - umożliwia ci wynajęcie zasobów (jak wyżej CPU, memory, storage) lub zarządzanych aplikacji - np EKS - zarządzany k8s, ale też czysto AWSowe serwisy typu Kinesis (ichniejsze Kafkopodobne cudo), SQS (message broker), S3 (object storage). Jest kilka powodów dla których ludzie się w to pakują:

  • nie musisz mieć i zarządzać własnym hardwarem (płacisz AWSowi za to, oczywiście z kopką)
  • możesz skalować się w górę i w dół poprzez API
  • płacisz tylko za te zasoby które użyjesz (np jak postawisz sobie 500 serwerów w nocy na godzinę to płacisz za 500 serwero-godzin)

Oczywiście płacisz zwykle więcej jeśli porównasz 1-1 CPU, memory czy storage (o transferze danych już nie wspomnę) - ale w teorii dzięki temu że płacisz tylko za to czego używasz i że możesz się wyskalować w dół, być może zaoszczędzisz pieniądze - a w każdym przypadku nie będziesz musiał się pierniczyć z hindusem który zarządza data center twojej firmy.

Żeby dać ci konkretny przykład - jeśli chcesz sobie postawić postgresa, to w AWSie w pół godziny naklepiesz sobie kawałek YAMLa który ci postawi go na RDS (albo w 5 minut wyklikasz), i będzie to fancy:

  • HA (synchroniczna replikacja między dwoma data centers z automatycznym failoverem)
  • asynchronicznie read replicas
  • automatyczne patchowanie OSu i samego postgresa (w jakimś okienku czasowym które sobie wybierzesz)
  • szybki storage pod spodem
  • automatyczny backup i łatwy restore
  • szyfrowanie
  • kontrola dostępu (firewalle + konto admina wraz z automatyczną rotacją haseł)
  • monitoring
  • zbieranie logów

Dodaj do tego z 500 jak nie więcej innych serwisów.

0

co właściwie więcej zaoferują mi te usługi AWSa, czego nie ogarnę po przez openshifta

Openshift to co najwyżej analog EC2 podczas gdy AWS jako taki oferuje dużo innych serwisów -> hostowane przez nich kolejki, bazy danych, event streamy, data storage, domeny itd.

Gdzie u was w projekcie stoi np. baza danych? Kto nią zarządza? Albo jak konfigurujecie DNSy i domeny waszej aplikacji? W przypadku AWSa robisz 2 kliki i baza stoi, kolejne 2 kliki i masz aplikacje dostępną pod wybraną domeną :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1