Jak zapewnić bezpieczeństwo kontenerom i Kubernetes w środowiskach chmurowych?

foto: pexels

W ostatnim czasie powstaje coraz więcej rozwiązań zaprojektowanych z myślą o chmurze i coraz częściej stosowana jest platforma Kubernetes. Według badań prowadzonych przez firmę 451 Research niemal trzy czwarte przedsiębiorstw już korzysta z tej technologii albo planuje jej wdrożenie w ciągu najbliższych dwóch lat. Wiele firm, szczególnie reprezentujących branże, w których produkuje się i przetwarza ogromne ilości danych, m.in. sektor usług finansowych, jeszcze przed pandemią szukało sposobów skrócenia cyklu wytwarzania oprogramowania. W roku 2020 duża część działalności gospodarczej przeniosła się do środowiska online, a ponieważ przedsiębiorstwa i instytucje dążą do zbudowania lub rozszerzenia oferty usług i produktów cyfrowych, potrzeby tego rodzaju nabierają szczególnego znaczenia.

 

Aby zrozumieć, dlaczego technologia Kubernetes cieszy się tak dużą popularnością i jakie są tego konsekwencje dla przedsiębiorstw, posłużymy się często stosowaną w branży informatycznej metaforą mówiącą o różnicy między zwierzętami domowymi i hodowlanymi. W skrócie rzecz ujmując, niektórzy szefowie działów informatycznych skłonni są traktować serwery i systemy wchodzące w skład infrastruktury informatycznej firmy mniej więcej tak, jak traktuje się psy, koty i papugi. Nadają im imiona, dbają o nie i wkładają wiele wysiłku w to, by były zadowolone, zdrowe i nie zakończyły przedwcześnie życia. Kiedy w danej organizacji zwiększa się skala środowiska, stadko składające się do tej pory z 3-4 maszyn rozrasta się do 10-20 serwerów, pewnej liczby maszyn wirtualnych i kilku różnego typu chmur. To już raczej stado zwierząt hodowlanych, a nie grupka ulubionych czworonogów. Oczywiście nadal trzeba o nie dbać, ale poszczególne elementy łatwo możemy zastąpić innymi.

 

Jeśli mielibyśmy kontynuować tę analogię, obecnie praca zespołów informatyków przypomina raczej prowadzenie hodowli przemysłowej. Nie możemy policzyć wszystkich osobników w stadzie ani nawet zobaczyć ich jednocześnie. Duża część znajduje się na innych farmach i korzystamy z usług innych osób odpowiedzialnych za opiekę nad nimi, mimo że to my ponosimy stratę, kiedy zwierzę zachoruje, zaginie albo zostanie skradzione. Nie ma już większego znaczenia, gdzie zwierzęta się znajdują i w jakich pomieszczeniach są przetrzymywane. Liczy się tylko wartość produkcji — w świecie technologii jej odpowiednikiem są oferowane możliwości przetwarzania. Oczywiście mamy na myśli nowoczesną infrastrukturę cyfrową, obejmującą obciążenia fizyczne, wirtualne i działające w chmurze.

 

Konteneryzacja przyspiesza procesy DevOps

 

W ostatnich latach rozpowszechniły się technologie kontenerowe. Maszyny wirtualne umożliwiają uruchomienie na sprzęcie wielu instancji systemu operacyjnego, natomiast kontenery pozwalają uruchamiać wiele obciążeń w ramach jednej instancji. Są mniej skomplikowane, bardziej elastyczne i łatwiejsze do skonfigurowania niż maszyny wirtualne, które korzystają z własnego systemu operacyjnego i zajmują znacznie więcej miejsca. To istotne, ponieważ decydenci zwracają uwagę nie tylko na szybkość i pojemność infrastruktury pamięci masowej, ale również na kwestie wydajności używanych aplikacji i produktywności użytkowników końcowych (wewnętrznych lub zewnętrznych).

 

Wartością technologii Kubernetes jako platformy jest możliwość pogrupowania kontenerów tworzących aplikacje w logiczne jednostki. Środowisko Kubernetes pozwala zespołom informatycznym skrócić proces tworzenia aplikacji i skalowania systemów, zwiększyć jego niezawodność i znacznie ograniczyć ryzyko, szczególnie związane z wprowadzaniem zmian. Umożliwia również automatyzację dostarczania aplikacji, wprowadzanie ciągłych udoskonaleń, modernizację i wymianę rozwiązań na nowsze, eliminując konieczność ręcznego wykonywania powtarzalnych procesów.  Informatycy mogą działać sprawniej i z większą elastycznością, jeśli chodzi o zaspokajanie zmiennego zapotrzebowania na moc obliczeniową i pojemność, a przy tym stale zwiększać korzyści uzyskiwane dzięki aplikacjom. Zyskują także możliwość równoczesnego uruchamiania wielu aplikacji na różnych platformach. Technologia Kubernetes pozwala również stworzyć mechanizmy koordynacji działań programistów, zespołów ds. zapewnienia jakości i jednostek operacyjnych. Istotą metodyk DevOps jest budowa środowiska pracy zespołowej i eliminacja odizolowanych obszarów. Wszystkie zespoły starają się osiągnąć wspólny cel, którym jest dostarczenie korzyści zarówno przedsiębiorstwu, jak i jego klientom. I właśnie to jest największą wartością technologii w przedsiębiorstwie: możliwość szybszego dostarczania aplikacji bardziej dopasowanych do potrzeb i na większą skalę.

 

Kluczowym elementem podejścia DevOps jest proces zgodny z koncepcją funkcjonowania w chmurze, zatem technologia Kubernetes idealnie wpisuje się w szerszy kontekst działania każdej jednostki organizacyjnej uczestniczącej w realizacji wspólnego przedsięwzięcia. Nie wszyscy zdają sobie sprawę z korzyści, jakie można dzięki temu osiągnąć. Konsekwencją wykorzystania automatyzacji i skalowalności technologii Kubernetes przez zespoły DevOps jest skrócenie cyklu wytwórczego — mówiąc prościej, przedsiębiorstwa mogą zdecydowanie częściej aktualizować aplikacje, wprowadzać w nich poprawki i prowadzić działania modernizacyjne. W sektorze usług finansowych może to okazać się szczególnie istotne. W roku 2020 na całym świecie banki zostały zmuszone do zamknięcia swoich placówek, jednak ogromna większość była przygotowana do cyfrowej obsługi klientów za pomocą systemów bankowości internetowej i mobilnej. Taki poziom elastyczności wynika częściowo z działań nowych banków detalicznych, które wkroczyły na rynek w ostatnim dziesięcioleciu — firmy takie jak Monzo czy Revolut wywarły presję na funkcjonujące od lat globalne korporacje. W rezultacie aplikacje i usługi bankowe muszą obecnie być aktualizowane i usprawniane raz na miesiąc, a nie tylko kilka razy w roku.

 

Możemy spodziewać się dalszej automatyzacji usług bankowych dzięki zastosowaniu technologii sztucznej inteligencji i uczenia maszynowego. Klienci będą w stanie łatwiej zarządzać osobistymi finansami, gromadzić oszczędności i monitorować wydatki. Platformy chmurowe i środowiska DevOps ułatwią szybkie wdrażanie innowacji w wielu obszarach, a banki skupią się na tworzeniu najlepszych aplikacji i spersonalizowanych usług, starając się wyróżnić na konkurencyjnym rynku.

 

Nowoczesne mechanizmy ochrony danych

 

Kiedy mówimy o skalowalności technologii chmurowych i platformy Kubernetes, warto wspomnieć również o powtarzalności i skuteczności procesu wdrażania nowych, skonteneryzowanych środowisk. Wracając do naszego przykładu dotyczącego usług finansowych: po zakończeniu pandemii fizyczne oddziały banków detalicznych zmienią sposób działania, zmuszone do zastosowania bardziej zaawansowanych systemów cyfrowych i zbliżeniowych. Wprowadzenie nowych rozwiązań technicznych i urządzeń w placówkach stanie się nowym standardem — klienci wrócą do oddziałów, jednak będą oczekiwali przede wszystkim cyfrowej obsługi. Zapewne będzie to oznaczało potrzebę modernizacji infrastruktury informatycznej w wielu lokalizacjach, tak aby klienci mogli korzystać z usług w jednolity sposób niezależnie od miejsca.

 

Dlatego przedsiębiorstwa, które mają zamiar zapewnić jednolitą, zintegrowaną obsługę klientów w placówkach fizycznych, powinny skorzystać z podejścia, w którym infrastruktura jest traktowana jako kod (IaC). Model IaC oznacza zarządzanie infrastrukturą i jej udostępnianie za pośrednictwem przygotowanych do odczytu maszynowego plików definicji, nie zaś ręcznej konfiguracji, procesu podatnego na błędy popełniane przez ludzi. Powtarzalne zadania mogą być realizowane za każdym razem w taki sam sposób. Kiedyś replikacja środowisk informatycznych między różnymi siedzibami mogła rzeczywiście polegać na skonfigurowaniu jednego ośrodka, a następnie przeprowadzeniu analogicznego procesu w każdej lokalizacji przez ten sam zespół. Jednak trudno praktycznie zrealizować takie działania, jeśli bank dysponuje ponad 100 oddziałami w każdym większym mieście w Polsce, nie mówiąc o instalacjach w skali globalnej. Dzięki zastosowaniu podejścia IaC metody konfiguracji stosowane w pierwszym ośrodku są w zasadzie definiowane w kodzie oprogramowania, które można przenosić w inne miejsca i wykorzystać do utworzenia wielu identycznych replik. Ponadto w przedsiębiorstwach, w których działają zespoły „Platform Ops” udostępniające usługi operacyjne zespołom programistycznym w modelu samoobsługowym dzięki współpracy z inżynierami ds. niezawodności proces tworzenia nowych obciążeń nie jest czasochłonnym zadaniem. Niezależnie od tego, czy chodzi o obciążenia działające w chmurze, czy w środowisku lokalnym, w maszynie wirtualnej czy w kontenerach, infrastruktura jako kod oznacza większą szybkość i efektywność, a także powtarzalność wykonywanych zadań. Pozwala to nie tylko skrócić czas wdrażania infrastruktury cyfrowej w wielu ośrodkach, ale również zmniejszyć prawdopodobieństwo ludzkich błędów, niekoniecznie wynikających ze złych intencji, jednak prowadzących do przestojów w działaniu systemów i pojawienia się luk w zabezpieczeniach.

 

 

Przez cały czas rośnie popularność i znaczenie technologii kontenerowych, dlatego firmy muszą zadbać o zapewnienie ochrony i budowę mechanizmów tworzenia kopii zapasowych danych w środowiskach fizycznych, wirtualnych i chmurowych oraz na platformach Kubernetes. Firmy, które pragną uzyskać elastyczność, skalowalność i automatyzację oferowaną przez technologię Kubernetes, nie mogą zapomnieć o konieczności zmodernizowania przyjętych strategii i stosowanych funkcji ochrony danych.

 

Autor: Michael Cade, Senior Global Technologist, Veeam

Bądź pierwszy, który skomentuje ten wpis

Dodaj komentarz

Twój adres email nie zostanie opublikowany.