TechChatter Odcinek 4. Od zera do kontenera, czyli konteneryzacja od podstaw.

Konteneryzacja to jedno z najgor臋tszych s艂贸w ostatnich lat w bran偶y IT. Kontenery charakteryzuj膮 si臋 m.in. skalowalno艣ci膮, efektywno艣ci膮 wykorzystania zasob贸w, szybko艣ci膮 dzia艂ania oraz niskim kosztem, co sprawia, 偶e coraz cz臋艣ciej klienci bran偶y IT s膮 zainteresowani ich wdro偶eniem w swoich 艣rodowiskach.

Zapraszamy do s艂uchania!

Jednak dla wielu os贸b technologia ta jest jeszcze stosunkowo nowa i nie posiadaj膮 odpowiedniej wiedzy, aby przeprowadzi膰 dobr膮 konsultacj臋.

Z pomoc膮 przychodz膮 Aleksandra i Marcin, kt贸rzy w tym odcinku odpowiadaj膮 na pytania:

  • jakie s膮 r贸偶nice mi臋dzy konteneryzacj膮 a wirtualizacj膮?
  • czy kontener jest 艂atwiejszy i lepszy w utrzymaniu od wirtualnej maszyny?
  • co potrzebujemy, aby stworzy膰 kontener?
  • dlaczego w 艣wiecie konteneryzacji bardzo wa偶na jest abstrakcja?
  • czy kontener potrzebuje backupu?

Oraz wiele innych z obszaru konteneryzacji.

Eksperci 乌鸦传媒:

Aleksandra Koprucka – posiada do艣wiadczenie w bran偶y IT zar贸wno na stanowiskach kierowniczych jak i procesowych. Jej mocne strony to analizowanie, tworzenie i doskonalenie proces贸w. Obecnie zajmuje si臋 zarz膮dzaniem IT Catalogiem klienta z bran偶y farmaceutycznej.

Marcin 呕贸艂towski – Infrastructure Consultant, obecnie specjalizuj膮cy si臋 w technologiach konteneryzacyjnych (Docker, Kubernetes). Wcze艣niej administrator system贸w opartych na Windows Server. W poprzednim wcieleniu nauczyciel angielskiego, z czego pozosta艂o mu zami艂owanie do prowadzenia szkole艅.

Wi臋cej o pracy w 乌鸦传媒:

/pl-pl/kariera/

Linki do materia艂贸w wspomnianych w odcinku:

Je艣li odcinek Ci si臋 spodoba艂, daj nam o tym zna膰 wystawiaj膮c ocen臋 w Spotify lub Apple Podcasts.

Podcast 乌鸦传媒 Polska

Produkcja: Cleverhearted Showrunners

ALEKSANDRA: Cze艣膰 Marcin. Ciesz臋 si臋, 偶e chcia艂e艣 ze mn膮 porozmawia膰. Mam kilka takich pyta艅 jako, 偶e teraz pe艂ni臋 funkcj臋 katalog menad偶era, wsp贸艂pracuj臋 艣ci艣le z zespo艂ami projektowymi. No i w艂a艣nie pojawi艂 si臋 temat ostatnio konteneryzacji, gdzie dla mnie jest to dosy膰 stosunkowo nowa technologia. W zwi膮zku z tym nie mam za wiele wiedzy na ten temat, a chcia艂abym jak najlepiej skonsultowa膰.听 Chodzi o to, 偶e przyszli do nas i poprosili, 偶eby w katalogu by艂a mo偶liwo艣膰 zamawiania przez u偶ytkownik贸w kontenera. I wydaje mi si臋 na pierwszy rzut oka, 偶e brakuje tam kilku rzeczy i nawet takich podstaw do zamawiania kontener贸w. Chcia艂am to zweryfikowa膰 z Tob膮. W zwi膮zku z tym najpierw chcia艂abym si臋 dowiedzie膰 na sam pocz膮tek, jak wygl膮da sprawa z konteneryzacj膮 i mo偶e dobrze by艂oby zacz膮膰, gdyby艣 najpierw powiedzia艂 mi, czym tak w艂a艣ciwie jest konteneryzacja i co mo偶emy rozumie膰 przez kontener?
MARCIN: Jasne. Konteneryzacja to przede wszystkim proces, kt贸ry polega na pakowaniu aplikacji, a nawet ca艂ych system贸w operacyjnych w kontenery i tu jest od razu pytanie, co to jest kontener? Kontener to jest, tak zwyczajnie, zesp贸艂 proces贸w na komputerze, na jakim艣 serwerze, kt贸ry jest odizolowany od ca艂ej reszty przez specjalne mechanizmy, kt贸re s膮 wbudowane w system operacyjny. To jest taka pewnego rodzaju ba艅ka, w kt贸rej 偶yj膮 procesy i przetwarzaj膮 dane, wysy艂aj膮 je gdziekolwiek, niezale偶nie od tego co si臋 dzieje na ho艣cie czy tam serwerze i niezale偶nie od tego jakie inne procesy dzia艂aj膮 na tym systemie. Tak w skr贸cie mo偶na powiedzie膰.听
ALEKSANDRA: Okej, rozumiem. Troch臋 mi si臋 to kojarzy z wirtualn膮 maszyn膮, ale rozumiem, 偶e nie jest to wirtualna maszyna.听
MARCIN: No nie jest to鈥
ALEKSANDRA: Czy m贸g艂by艣 w takim wypadku powiedzie膰, jaka jest r贸偶nica pomi臋dzy kontenerem a wirtualn膮 maszyn膮?听听
MARCIN: Pewnie, pewnie. Jest du偶o podobie艅stw mi臋dzy wirtualizacj膮 a konteneryzacj膮 i niekt贸rzy nawet twierdz膮, 偶e konteneryzacja to jest jakby krok dalej, czyli kolejny etap ewolucji od maszyny fizycznej do czego艣 zupe艂nie wirtualnego, 偶yj膮cego gdzie艣 tam w chmurze. I je艣li chodzi o takie podstawowe r贸偶nice, to przede wszystkim wielko艣膰 i sprawno艣膰. Co si臋 za tym kryje? Poniewa偶 kontenery zawieraj膮 tylko i wy艂膮cznie to co dana aplikacja potrzebuje do 偶ycia. Maszyna wirtualna to jest ca艂y komputer ze wszystkim co niezb臋dne do dzia艂ania ka偶dego komputera, czyli system operacyjny w pe艂nej wersji musi mie膰 zar贸wno j膮dro jak i t膮 g贸rn膮 warstw臋, musi mie膰 interfejsy, dyski, przydzielone CPU, czyli procesor, pami臋膰, wszystko, wszystko co sobie wyobrazimy w normalnym komputerze. A kontenery to s膮 takie bardzo, bardzo odchudzone systemy operacyjne, kt贸re rzeczywi艣cie nie zawieraj膮 niczego niepotrzebnego. Kiedy kto艣 projektuje taki kontener, a w艂a艣ciwie obraz takiego kontenera, bo to s膮 jakby dwie odr臋bne rzeczy, to stara si臋 zawsze usuwa膰 tyle, ile si臋 da. Ca艂a logika konteneryzacji polega na przeskalowaniu tej aplikacji, jej zale偶no艣ci rzeczywi艣cie do minimum, takiego minimum, kt贸rym da si臋 zarz膮dza膰. S膮 takie przypadki, 偶e rzeczywi艣cie tam jest tak ma艂o, 偶e nawet do takiego kontenera nie da si臋 logicznie zalogowa膰, bo nie ma 偶adnej pow艂oki. Nawet ta najmniejsza pow艂oka zosta艂a usuni臋ta i ten kontener ma tylko robi膰 dan膮 operacj臋 i nic wi臋cej. Zawiera wszystkie dane, jakie potrzebuje i ani bajta wi臋cej. Tak 偶e, na przyk艂ad dla por贸wnania ostatnio sobie 艣ci膮ga艂em do test贸w ze strony Red Hata najnowszy obraz Red Hata 9 i takie ISO, nawet troch臋 si臋 zaskoczy艂em, to by艂o, 偶eby nie sk艂ama膰 w granicach 10 GB, a dla por贸wnania kontener Linux Alpine, kt贸ry jest takim wyznacznikiem jak bardzo mo偶na odchudzi膰 kontener linuxowy, to jest w granicach 5 MB. To s膮 r贸偶nice wprost niewyobra偶alne z tym, 偶e oczywi艣cie obraz Red Hata zawiera wszystko, 艂膮cznie z graficznym interfejsem, a kontener Alpina czy obraz Alpina zawiera kilka komend i tyle. A reszt臋 sobie dodajemy w ramach potrzeb i na przyk艂ad instalujemy aplikacj臋, jej zale偶no艣ci, jakie艣 podstawowe pliki konfiguracyjne, je艣li potrzebujemy i koniec. Taka jest r贸偶nica i ten kontener jak restartujesz komputer w domu czy in偶ynierowie startuj膮 serwery w data center, to taki restart trwa od kilku minut do nawet, widzia艂em przypadki, godziny, p贸艂torej godziny w przypadku wielkich maszyn, natomiast kontener wstaje w kilka sekund. Bywa, 偶e d艂u偶ej, wiadomo, bo bywaj膮 ci臋偶kie kontenery z ci臋偶kimi aplikacjami, ale taki kontener potrafi sobie zrestartowa膰 si臋 w przeci膮gu鈥 Rzeczywi艣cie nawet czasem jest trudno zauwa偶y膰, 偶e si臋 zrestartowa艂o. Po prostu to mign臋艂o i kontener znowu dzia艂a.听听
ALEKSANDRA: To co m贸wisz, brzmi, jakby kontener by艂 艂atwiejszy i lepszy w utrzymaniu od wirtualnej maszyny.听 Czy tak faktycznie jest?听
MARCIN: 艁atwiejszy i lepszy, to jest bardzo wzgl臋dne. Tutaj ja nie chcia艂bym powiedzie膰, 偶e kontenery s膮 lepsze od maszyn wirtualnych, bo mo偶e si臋 zdarzy膰, 偶e s膮 zastosowania, kt贸rych kontenery nie s膮 najlepsze. Dla przyk艂adu wiele baz danych niespecjalnie nadaje si臋 do uruchomienia w kontenerach. Wszystko b臋dzie zale偶a艂o od tego, jak dobrze dany obraz zosta艂 przygotowany przez deweloper贸w i do jakich cel贸w dany kontener czy dana aplikacja czy dana maszyna wirtualna, je艣li por贸wnujemy, s艂u偶y. Bo je艣li potrzebujemy 艣rodowiska graficznego, no to kontener tego nie zaoferuje. Je艣li potrzebujemy maszyny bardzo rozbudowanej, czy mamy bardzo rozbudowane aplikacje z wieloma pluginami, no to tutaj si臋 sprawa komplikuje, bo zaprojektowanie tego w tak zwanym systemie mikroserwis贸w jest trudne. Wykonalne oczywi艣cie i s膮 naprawd臋 aplikacje, kt贸re przesz艂y z takiej wersji typowo serwerowej na typowo kontenerow膮, ale to trwa i rzeczywi艣cie trzeba si臋 nad tym napracowa膰. Efekt ko艅cowy jest naprawd臋 nieraz zaskakuj膮cy, bo aplikacja mo偶e na przyk艂ad zosta膰 odchudzona kilka razy i dzia艂a膰 o wiele sprawniej albo mo偶e by膰 bardziej problematyczna, bo je艣li kto艣 nie do ko艅ca przemy艣la艂 architektur臋, no to mo偶e natrafi膰 na bardzo niespotykane i zaskakuj膮ce problemy w trakcie ju偶 deploymentu do produkcji. Tutaj b臋dziemy musieli uwa偶a膰 na tak zwane use cases, czyli to do czego dana aplikacja s艂u偶y. I od tego te偶 zacz膮艂bym wdra偶anie konteneryzacji w firmie. Pytanie dla Project Teamu.
ALEKSANDRA: Chcia艂am w艂a艣nie troszeczk臋 do tego nawi膮za膰, poniewa偶 Project Team w momencie kiedy do nas przyszed艂, mia艂 kilka takich punkt贸w, kt贸re opisywa艂y jakie kroki b臋d膮 potrzebne do stworzenia takiego kontenera. Dalej, na moje oko jako osoby, kt贸ra nie zajmuje si臋 kontenerami, wydawa艂o mi si臋, 偶e mimo wszystko by艂o za ma艂o tych krok贸w i nie wszystko pokrywa艂y. I dlatego najpierw chcia艂am Ciebie zapyta膰, jakie jest must have, 偶eby kontener stworzy膰? Co potrzebujemy do stworzenia kontenera?听
MARCIN: Zasadniczo bardzo niewiele. Je艣li mamy 艣rodowisko deweloperskie, takie 艣rodowisko, w kt贸rym mo偶e si臋 co艣 zepsu膰 i sobie bardzo szybko to naprawimy i nie mamy dw贸ch tysi臋cy u偶ytkownik贸w, kt贸rzy tam czekaj膮 na linii i z艂oszcz膮 si臋, bo co艣 przesta艂o dzia艂a膰, to wystarczy dowolny komputer, czy to jest Linux, czy to jest Windows niewa偶ne, bo generalnie konteneryzacja dzia艂a obecnie na wszystkich wa偶nych systemach operacyjnych, czyli potrzebujemy oprogramowanie typu Docker. Powiedzmy Docker, bo to jest najpopularniejsza platforma czy najpopularniejszy silnik do zarz膮dzania kontenerami i potrzebujemy obrazu, z kt贸rego b臋dziemy korzysta膰. Ja tu ju偶 wspomnia艂em o tych obrazach, bo to jest chyba najwa偶niejsza rzecz tego ca艂ego zestawu. Potrzebujemy co艣, co mogliby艣my uruchomi膰, bo kontener to jest tylko pusta ba艅ka. Je艣li nie b臋dziemy mieli czego艣, co w tej ba艅ce sobie uruchomimy, no to w艂a艣ciwie nie ma o czym m贸wi膰. Tak jakby艣my mieli komputer bez oprogramowania, kt贸ry ma jakie艣 dyski, ma jakie艣 rzeczy, ale generalnie po prostu stoi i szumi. Nic wi臋cej si臋 z nim nie dzieje. Tak偶e jaki艣 obraz mo偶emy go sami stworzy膰, mo偶emy go 艣ci膮gn膮膰 czy z Docker Hub czy z jakiegokolwiek innego rejestru i uruchomi膰 go lokalnie u偶ywaj膮c lokalnie zainstalowanego tak zwanego container runtime, czyli w艂a艣nie oprogramowania, kt贸re uruchamia kontenery i nimi zarz膮dza lokalnie, restartuje, usuwa, dodaje, 艣ci膮ga obrazy, wypycha obrazy i tak dalej. Tak偶e to s膮 takie dwie najbardziej podstawowe rzeczy, ale jak m贸wimy o produkcji, no to tutaj ju偶 si臋 sprawa komplikuje, poniewa偶 musimy my艣le膰 o automatyzacji, o orkiestracji. Musimy my艣le膰 o wysokiej dost臋pno艣ci i tym podobnych rzeczach. Wi臋c tutaj ju偶 b臋dziemy musieli zbudowa膰 ca艂膮 infrastruktur臋, a najlepiej w takich sytuacjach jest po prostu skorzystanie z gotowej platformy, kt贸ra jest budowana na podstawie oprogramowania dostarczonego przez firm臋, kt贸ra si臋 w tym specjalizuje, czy to b臋dzie Red Hat, czy to b臋dzie Mirantis do艣膰 popularny ze wzgl臋du na przej臋cie oprogramowania Docker Enterprise, czy na przyk艂ad co艣 takiego jak Rancher, kt贸ry te偶 ostatnio zyskuje na popularno艣ci w niekt贸rych 艣rodowiskach. No i je艣li mamy ju偶 co艣 takiego, mamy licencj臋 na takie oprogramowanie, to mo偶emy zacz膮膰 budowa膰 t膮 infrastruktur臋 i rzeczywi艣cie ja bym powiedzia艂, 偶e nale偶y budowa膰 infrastruktur臋, a nie tworzy膰 kontenery. To s膮 jakby dwie rzeczy, kt贸re s膮 powi膮zane ze sob膮, ale bez infrastruktury typu produkcyjnego klasy Enterprise w艂a艣ciwie nie mamy co my艣le膰 o takim wdro偶eniu w firmie.听听
ALEKSANDRA: Okej, czyli tworz膮c tak膮 infrastruktur臋 musimy my艣le膰 o tym, 偶eby kontener m贸c na czym艣 postawi膰. Project Team przyszed艂 do nas, 偶eby najpierw stworzy膰 wirtualn膮 maszyn臋, ale czy faktycznie konieczne jest, aby ka偶dorazowo do kontenera tworzy膰 now膮 wirtualn膮 maszyn臋, czy mo偶e jednak mo偶emy wykorzysta膰 zasoby na ju偶 istniej膮cej VM-ce?听听
MARCIN: Jasne, nie ma 偶adnej takiej potrzeby. Tutaj, tak jak wspomnia艂em, musimy mie膰 platform臋 i ta platforma jest w tym momencie nasz膮 uniwersaln膮 infrastruktur膮, z kt贸rej mo偶emy korzysta膰 uruchamiaj膮c setki je艣li nie tysi膮ce kontener贸w. Mo偶emy te kontenery tworzy膰, usuwa膰, dodawa膰. Mo偶emy na przyk艂ad umo偶liwi膰 u偶ytkownikom uruchamianie kontener贸w adhocowych zupe艂nie, gdzie na przyk艂ad jest operacja do wykonania, jakie艣 obliczenia czy cokolwiek innego. Kontener si臋 uruchamia, robi swoje, zamyka si臋, klient idzie do domu. Taka chmura, kt贸r膮 mo偶emy uruchomi膰 w naszym centrum danych, w naszej serwerowni. Wcale nie potrzebujemy tutaj takich rozwi膮za艅, kt贸re oferuje czy Amazon czy Microsoft czy jeszcze Google w swojej chmurze. I w momencie, w kt贸rym my t膮 infrastruktur臋 mamy, powiedzmy, 偶e mamy rozwi膮zanie o nazwie Mirantis Kubernetes Engine albo Red Hat OpenShift i to rozwi膮zanie instalujemy raz. Mamy ile艣 tam maszyn wirtualnych, to mog膮 te偶 by膰 na przyk艂ad maszyny fizyczne. Nikt nam nie zabrania u偶ywa膰 maszyn fizycznych. Mo偶e to nie jest ju偶 takie popularne rozwi膮zanie jak kiedy艣, ale je艣li mamy na przyk艂ad nieu偶ywane fizyki, kt贸re si臋 nam kurz膮 w serwerowni, to czemu nie? Mo偶na skorzysta膰, po艂膮czy膰 te serwery w klaster, zainstalowa膰 oprogramowanie do zarz膮dzania kontenerami, w艂a艣nie OpenShift czy MKE i w momencie, kiedy my to zintegrujemy z jakim艣 systemem do zarz膮dzania kontenerami, mog膮 to by膰听 po prostu skrypty, mo偶e to by膰 serwis nao, mo偶e to by膰 kilka innych rozwi膮za艅, kt贸re jakby stanowi膮 interfejs mi臋dzy platform膮 a u偶ytkownikami i wtedy przy oczywi艣cie odpowiednim oskryptowaniu i obudowaniu tego modu艂ami automatyzacyjnymi po prostu zaczynamy udost臋pnia膰 u偶ytkownikom aplikacje, kt贸re dzia艂aj膮 w kontenerach. I tutaj taka drobna uwaga, ca艂a zabawa, je偶eli chodzi o konteneryzacj臋, polega w du偶ej mierze na abstrakcji. My staramy si臋 odsun膮膰 u偶ytkownik贸w czy nawet deweloper贸w od infrastruktury, 偶eby oni si臋 nie martwili o sieci, o storage, o CPU, pami臋膰 i tak dalej czy nawet jak to wszystko dzia艂a i gdzie to dzia艂a, bo normalnie na serwerze musimy zainstalowa膰 aplikacje, musimy si臋 tam zalogowa膰, 艣ci膮gn膮膰 pliki, zainstalowa膰, uruchomi膰 us艂ug臋, skonfigurowa膰 i tak dalej. W przypadku kontener贸w to idzie na platform臋 i platforma si臋 martwi, na kt贸rym serwerze ten kontener si臋 uruchomi, jak on b臋dzie dzia艂a艂, co si臋 stanie, jak ten kontener nagle ulegnie awarii na przyk艂ad, bo proces si臋 zamkn膮艂 w niespodziewany spos贸b i trzeba go uruchomi膰 jeszcze raz. To jest kompletnie ukryte przed u偶ytkownikiem, ukryte przed nawet administratorami aplikacji, bo na przyk艂ad pracuj臋 z administratorami aplikacji, kt贸rzy kompletnie nie wiedz膮, gdzie te kontenery s膮. Oni si臋 w og贸le tym nie interesuj膮. Oni si臋 interesuj膮 tym, 偶eby si臋 zalogowa膰 do swojej aplikacji, na panel admina, co艣 tam poklika膰, wgra膰 nowy konfig i tyle. Dla nich wa偶ne, 偶eby ta aplikacja dzia艂a艂a.听听
ALEKSANDRA: Rozumiem. Dobrze, natomiast tutaj jeszcze nie wspomnia艂e艣, a wydaje mi si臋, 偶e przynajmniej w tym moim przypadku jest to do艣膰 istotne, poniewa偶 pojawi艂 nam si臋 jeden z takich punkcik贸w, 偶e musimy zadba膰 o storage. I teraz jak to wygl膮da z tym storagem? Czy najpierw musimy stworzy膰 t膮 wirtualn膮 maszyn臋,听 a p贸藕niej storage, 偶eby ten kontener m贸c gdzie艣 tam tworzy膰, czy jak to wygl膮da? Co trzeba zaopiekowa膰 najpierw?听
MARCIN: W艂a艣ciwie to nie ma znaczenia, co jest pierwsze. Tak czy inaczej wszystko musi by膰. I storage jest jednym z tych element贸w uk艂adanki. Mamy na przyk艂ad istniej膮c膮 infrastruktur臋 opart膮 na SAN-ach albo na NAS-ach albo serwerach NFS. Z regu艂y jest tak, 偶e zesp贸艂, kt贸ry tak膮 platform臋 instaluje i konfiguruje, wykorzystuje to, co jest dost臋pne w danym 艣rodowisku. Czyli na przyk艂ad je艣li firma zainwestowa艂a w jakie艣 du偶e serwery typu NAS, wypada艂oby z tego skorzysta膰. Je艣li mamy na przyk艂ad infrastruktur臋 wirtualizacyjn膮 Nutanix, kt贸ra umo偶liwia udost臋pnianie ca艂ych wolumin贸w poprzez protoko艂a i skazi, to czemu by nie skorzysta膰 z tego rozwi膮zania? To s膮 rzeczy, kt贸re konfiguruje si臋 w trakcie tworzenia platformy, a nast臋pnie udost臋pnia si臋 je tak samo jak ka偶dy inny rodzaj storage, poniewa偶 w 艣wiecie konteneryzacji, w艂a艣nie to co ja wspomina艂em wcze艣niej, jest najwa偶niejsza abstrakcja, czyli my dokonujemy takiego oddzielenia tego backendu od tego, co widzimy.听听
ALEKSANDRA: Czyli frontend.听听
MARCIN: Czyli te偶 my艣l臋 o u偶ytkownikach albo o administratorach aplikacji. Oni chc膮 storage. Je艣li tworzymy manifesty dla danej aplikacji, no to mamy taki rodzaj manifestu, kt贸ry si臋 nazywa albo percent volume albo percent volume claim, w zale偶no艣ci od tego, jak taki storage tworzymy i dla tego administratora tej aplikacji wa偶ne jest, 偶eby dosta艂 tyle a tyle tego storage o takiej klasie, bo mo偶emy mie膰 na przyk艂ad szybki storage, wolny storage i tak dalej, jakie艣 parametry typu czy ten storage ma by膰 dost臋pny do zapisu czy tylko do odczytu czy na przyk艂ad potrzebujemy mie膰 storage, kt贸ry b臋dzie dost臋pny dla wielu kontener贸w jednocze艣nie, czy tylko dla jednego i tym podobne rzeczy takie bardzo, bardzo podstawowe, a ca艂膮 reszt膮 zajmuje si臋 ju偶 wtedy platforma. Po prostu udost臋pnia ten storage, tworzy go gdzie艣 tam sobie automatycznie na backendzie, tworzy nowe woluminy, a aplikacja听 z nich korzysta. Zapisuje sobie jakie艣 dane w jakich艣 folderach, ewentualnie mo偶e montowa膰 je sobie. Czy na przyk艂ad bardzo popularne jest rozwi膮zanie, w kt贸rym kontener 艂膮czy si臋 nie tyle do storage co do zewn臋trznej bazy danych, bo mo偶na przechowywa膰 dane w ten spos贸b i mamy aplikacj臋 typu frontend, jaki艣 webserwer czy co艣 podobnego i ta aplikacja na znanym porcie 艂膮czy si臋 do zewn臋trznej bazy, wysy艂a te dane i w momencie jak operacja zosta艂a wykorzystana, to po prostu ko艅czy听 po艂膮czenie do bazy i wykonuje jakie艣 operacje. I to te偶 jest rodzaj storage, mo偶na tak to nazwa膰, dzia艂a to dok艂adnie tak samo, jakby艣my mieli aplikacj臋 na serwerze. Czyli tak samo mamy gdzie艣 baz臋 z ty艂u, kt贸ra zbiera dane i mamy aplikacj臋, kt贸ra dane przetwarza na bie偶膮co, kontaktuje si臋,听 komunikuje si臋 z u偶ytkownikiem. Najwa偶niejsze jest to, 偶e dla u偶ytkownika to jest przezroczyste, kompletnie nie wie, co si臋 dzieje z ty艂u. Jego to zupe艂nie nie interesuje. Tak偶e nie ma specjalnego storage, tak reasumuj膮c, nie ma specjalnych wymaga艅, je艣li chodzi o storage. Obecnie stosowane rozwi膮zania w konteneryzacji s膮 bardzo uniwersalne. Jest mn贸stwo plugin贸w i w艂a艣ciwie ka偶dy producent takiego rozwi膮zania storage-owego wydaje takie pluginy w postaci kontener贸w albo w postaci sterownik贸w do Kubernetesa czy do Kera, czy w艂a艣ciwie na system operacyjny, kt贸re s膮 u偶ywane.听听
ALEKSANDRA: Czyli istnieje tutaj spora dowolno艣膰, w艂a艣ciwie ograniczaj膮 nas tylko zobowi膮zania kontraktowe z klientem.
MARCIN: 笔辞苍颈别办膮诲.
ALEKSANDRA: I w艂a艣ciwie to co jest zawarte w kontrakcie. Natomiast m贸wi膮c o storage przychodzi mi jeszcze do g艂owy backup. Czy backup jest konieczny, czy jest wykorzystywany cz臋sto przy kontenerach? Czy raczej nie jest to konieczne rozwi膮zanie, jak to wygl膮da?听听
MARCIN: Z backupem jest taka sprawa, 偶e tu b臋dzie du偶o zale偶a艂o od tego, co chcemy rzeczywi艣cie backupowa膰 i po co. No bo ja sobie wyobra偶am backup na przyk艂ad maszyny wirtualnej, na kt贸rej s膮 uruchomione kontenery, kt贸ry to backup ma taki 艣redni sens. No bo kontenery s膮, powiedzmy, bardzo takie efemeryczne. One powstaj膮, umieraj膮, tworz膮 si臋 na nowo, nie zatrzymuj膮 tych danych na sta艂e lokalnie. Bo wspominali艣my o storage, mamy storage backend, kt贸ry trzyma wszystkie dane, kt贸re my potrzebujemy przechowa膰 na d艂u偶ej. Kontener przechowuje dane tymczasowe, dane, kt贸re s膮 potrzebne w danym momencie do dzia艂ania aplikacji, a wszystko co chcieliby艣my rzeczywi艣cie przechowywa膰 przez d艂u偶szy czas, zostaje gdzie indziej. Jest przesy艂ane gdzie indziej i to w艂a艣nie jest ten element, kt贸ry powinni艣my backupowa膰. Czyli na przyk艂ad je艣li przesy艂amy dane na serwer plik贸w,听 no to ten serwer plik贸w wypada艂oby jako艣 tam zbackupowa膰 i to ju偶 jest zadanie dla ludzi, kt贸rzy zarz膮dzaj膮 tym serwerem plik贸w. Bo na pewno s膮 jakie艣 rozwi膮zania, kt贸re zosta艂y wdro偶one.听 Backup to jest jedna z pierwszych rzeczy, kt贸r膮 si臋 konfiguruje w danej infrastrukturze, bo bez tego w艂a艣ciwie ci臋偶ko sobie wyobrazi膰 nowoczesn膮 infrastruktur臋 i prac臋 w d艂u偶szym okresie. No tak na przyk艂ad na dwa tygodnie mo偶na, prawda, ale je艣li na przyk艂ad po dw贸ch tygodniach co艣 si臋 zepsuje听 i stracimy dane, no to ca艂a praca na marne. Tak偶e zawsze s膮 jakie艣 rozwi膮zania. Je艣li na przyk艂ad korzystamy z baz danych albo uruchamiamy baz臋 danych w kontenerze, to ta baza danych najcz臋艣ciej ma swoje w艂asne mechanizmy backupowe i tym si臋 zajmuj膮 ju偶 administratorzy baz danych. Jedn膮 z tych czynno艣ci, kt贸r膮 musz膮 regularnie wykonywa膰, to s膮 backupy baz. I te偶 przywracanie tych baz to nie jest co艣, co robi si臋 z poziomu zarz膮dzania kontenerami, tylko z poziomu bazy danych. Z poziomu platformy konteneryzacji mo偶emy tak膮 baz臋 przywr贸ci膰 jako kontener, czyli taka pusta aplikacja, kt贸ra nie ma danych. Natomiast ju偶 zesp贸艂 zarz膮dzaj膮cy baz膮 sobie przywraca dane do swojego w艂asnego backupu, no i dane s膮 ju偶 gotowe. A na przyk艂ad je艣li chodzi o backup samej platformy,听 to to ju偶 jest te偶 backup na poziomie aplikacji. Dana platforma powinna, z regu艂y tak jest, w przypadku tych ju偶 klasy Enterprise, s膮 dost臋pne specjalne polecenia, kt贸re backupuj膮 baz臋 konfiguracji tej platformy, na przyk艂ad baz臋 u偶ytkownik贸w i tym podobne rzeczy, bo je艣li na przyk艂ad ta platforma uleg艂aby awarii na przyk艂ad w trakcie jakiego艣 upgrade鈥檜 albo w trakcie patchowania albo w trakcie jakiego艣 outage’u infrastruktury, kt贸ra jest pod spodem, pod platform膮, na przyk艂ad mamy maszyny wirtualne, kt贸re s膮 hostowane na jakim艣 klastrze wiejomworowym i ten klaster听 wiejomworowy mo偶e ulec awarii. No to wtedy mo偶na to przywr贸ci膰 z backupu, ale to jest backup ju偶 innego rodzaju, czyli backup aplikacji typu OpenShift albo Mirantis, Kubernetes Engine. Zajmuje si臋 wtedy tym zesp贸艂, kt贸ry obs艂uguje dan膮 platform臋.听听
ALEKSANDRA: Dobra czyli tak, do stworzenia kontenera mamy ju偶 VM-k臋, mamy storage, mamy backup, natomiast tam jeszcze, w tym request’cie z Project Teamu pojawi艂a si臋 informacja o masternodach i workernodach i co mnie zaciekawi艂o, przy masternodach by艂a taka informacja, 偶e mo偶na wybra膰 3, 5,听 nie widzia艂am tam parzystych liczb, a przy workernodach by艂y to wi臋ksze nawet warto艣ci, bo nawet mo偶na by艂o 15 wybra膰. Czy m贸g艂by艣 mi wyt艂umaczy膰 te zale偶no艣ci, czym s膮 masternody, czym s膮 workernody, dlaczego takie liczby mog膮 by膰 wybierane przez u偶ytkownik贸w?听听
MARCIN: Jasne, ka偶da platforma musi si臋 sk艂ada膰 z cz臋艣ci, kt贸ra zarz膮dza听 i z cz臋艣ci, kt贸ra wykonuje prac臋, czyli tutaj w tym wypadku uruchamia aplikacje, uruchamia kontenery. Oczywi艣cie, wa偶ne, 偶eby ilo艣膰 tych serwer贸w, kt贸re zarz膮dzaj膮, nie by艂a wi臋ksza od ilo艣ci tych, kt贸re rzeczywi艣cie wykonuj膮 prac臋.听 W zwi膮zku z czym mamy tutaj do艣膰 du偶膮 rozbie偶no艣膰 pomi臋dzy tymi liczbami, a te liczby typu 3, 5, to jest kwestia zarz膮dzania bazami danych, kt贸re s膮 sercem danej platformy i z regu艂y te bazy danych wymagaj膮 nieparzystej liczby nod贸w, 偶eby zachowa膰 wysok膮 dost臋pno艣膰. Na przyk艂ad je艣li u偶ywamy bazy typu etcd albo ratingdb, te bazy w przypadku parzystej liczby nod贸w nie daj膮 nam wysokiej dost臋pno艣ci. Wyobra藕my sobie, 偶e mamy dwa serwery takie zarz膮dzaj膮ce typu masternode听 albo managernod i jeden z tych serwer贸w ulega awarii. W tym momencie niestety baza danych traci kworum i nie jest w stanie dzia艂a膰 dalej. To si臋 wi膮偶e z tak zwanym poj臋ciem split brain, czyli takiego rozkawa艂kowania klastra, w kt贸rym po艂owa klastra nie wie, czy druga po艂owa 偶yje czy nie. W zwi膮zku z tym ka偶da z tych po艂贸wek stara si臋 zarz膮dza膰 klastrem. No i mamy gotowy problem, bo je艣li mamy dwa o艣rodki zarz膮dzania jednego klastra, no to w艂a艣ciwie nie wiemy, kto wydaje polecenia, kto jest tutaj szefem, a kto powinien wykonywa膰 te polecenia. To jest ju偶 bardzo kr贸tka droga do katastrofy. I dzi臋ki temu, 偶e w te bazy danych zosta艂 wbudowany mechanizm zarz膮dzania kworum, nie mamy mo偶liwo艣ci, 偶eby dana cz臋艣膰 klastra stwierdzi艂a, 偶e ona jest tutaj jedyna i wy艂膮cznie ona powinna zarz膮dza膰, podczas gdy druga tak samo my艣li i tak samo dzia艂a. Mamy na przyk艂ad trzy nody i je艣li jeden z tych nod贸w ulegnie awarii albo roz艂膮czy si臋 w jaki艣 spos贸b od reszty, no to dzia艂a tylko ta cz臋艣膰, kt贸ra ma wi臋kszo艣膰. Niestety ten, kt贸ry si臋 od艂膮czy艂 w tym momencie, przestaje by膰 s艂uchany przez ca艂膮 reszt臋, jest uwa偶any za nod, kt贸ry jest niezdrowy albo po prostu nod, kt贸ry uleg艂 awarii, nie dzia艂a i nie powinien by膰 w og贸le brany pod uwag臋. Je艣li mamy na przyk艂ad dwa nody, no to jest to niemo偶liwe. Je艣li mamy cztery nody, no to mo偶emy mie膰 sytuacj臋, w kt贸rej nie ma jednego managera. Da si臋 z tym 偶y膰, b臋dziemy mieli wtedy trzy, ale je艣li ulegnie awarii jeszcze jeden, no to znowu mamy sytuacj臋, w kt贸rej dwa dzia艂aj膮, dwa nie dzia艂aj膮 no i klaster nie jest w stanie powiedzie膰, czy rzeczywi艣cie jedna po艂owa klastra jest ta w艂a艣ciwa, czy ta druga. Tak偶e po prostu mo偶na u偶ywa膰 parzystych liczb, tylko to nie ma kompletnie sensu z punktu widzenia zarz膮dzania klastrem. Je艣li dodamy czwartego noda, no to niczego nie zyskujemy, a nawet tracimy, bo w por贸wnaniu z sytuacj膮, w kt贸rej mamy trzy nody, ryzyko awarii jest wi臋ksze po prostu. Mamy o jeden wi臋cej serwer, kt贸ry mo偶e si臋 zepsu膰, w zwi膮zku z tym jest to wi臋ksze ryzyko, 偶e dany klaster zostanie po艂o偶ony. A je艣li do艂o偶ymy jeszcze jednego noda, no to mamy pi臋膰, no i wtedy ju偶 dwa mog膮 ulec awarii i wtedy trzy dzia艂aj膮, i klaster jest zdrowy. Je艣li chodzi o workery, no to s膮 te wo艂y robocze. One mog膮 by膰 naprawd臋 wielkimi maszynami. Mog膮 mie膰 po kilkana艣cie, kilkadziesi膮t rdzeni. Mog膮 mie膰 po kilkaset gigabajt贸w RAM-u i mo偶e by膰 ich wiele. To s膮 takie dwie r贸偶ne filozofie, czy budujemy ma艂o du偶ych maszyn, czy budujemy du偶o ma艂ych maszyn. R贸偶ne s膮 zdania na ten temat. To ju偶 jest te偶 kwestia tego, jakie aplikacje mamy, jak lubimy zarz膮dza膰 infrastruktur膮, ile os贸b jest w zespole i na przyk艂ad jak 艂atwo jest nam zarz膮dza膰 pojedyncz膮 maszyn膮, bo czasami jest tak, 偶e mamy ma艂o ludzi, kt贸rzy zarz膮dzaj膮 systemami operacyjnymi, no i g艂upio by艂oby tworzy膰 70 maszyn i obci膮偶a膰 te osoby dodatkow膮 prac膮, czuwaniem i tak dalej. Wi臋c tutaj jest r贸偶nie. No ale w艂a艣nie te workery to s膮 maszyny, kt贸re uruchamiaj膮 kontenery i one odpowiadaj膮 rzeczywi艣cie za to, 偶e te aplikacje dla u偶ytkownika s膮 dost臋pne, 偶e dzia艂aj膮, 偶e u偶ytkownicy mog膮 korzysta膰 z r贸偶nych funkcjonalno艣ci.听 Mo偶emy te workery dodawa膰, usuwa膰 i tak naprawd臋, je艣li mamy na przyk艂ad 20 worker贸w i nagle 3 nam si臋 zepsuj膮, mo偶emy spokojnie siedzie膰 dalej, naprawi膰 te workery w swoim czasie, bo kontenery w tym momencie b臋d膮 migrowane na hosty, kt贸re dzia艂aj膮, kt贸re nie maj膮 偶adnych problem贸w i one po prostu przejmuj膮 ich funkcj臋. Workery s膮 bardzo 艂atwe do zast膮pienia, mo偶emy je dodawa膰, jak powiedzia艂em usuwa膰, restartowa膰, tylko trzeba uwa偶a膰 czy na przyk艂ad na danym serwerze w danym momencie nie ma jakiego艣 wa偶nego kontenera z jak膮艣 aplikacj膮, 偶eby na przyk艂ad u偶ytkownicy, kt贸rzy z niej korzystali, nie mieli cho膰by kr贸tkiej, ale za to awarii. Bo wiadomo, 偶e je艣li mamy aplikacj臋, kt贸ra wykonuje jakie艣 obliczenia, kt贸re s膮 bardzo wa偶ne, czasami d艂ugotrwa艂e, to ka偶dy restart takiego kontenera powoduje przerwanie operacji, mo偶e utrat臋 niewielkiej liczby danych i tak dalej. Wi臋c to nie jest wskazane, ale je艣li mamy na przyk艂ad aplikacje typu webserwer, kt贸re stanowi膮 tylko taki frontend dla jakiej艣 wi臋kszej aplikacji, to mo偶emy je cz臋sto restartowa膰, skalowa膰, zmienia膰 liczb臋 replik i robi膰 te podobne rzeczy i to jest dla u偶ytkownik贸w ko艅cowych praktycznie niewidoczne, bo gdzie艣 tam jeszcze mi臋dzy nimi a aplikacj膮 jest low balancer, kt贸ry dynamicznie przerzuca ruch sieciowy z kontenera na kontener i mo偶emy spokojnie sobie te kontenery uruchamia膰 i zamyka膰.听
ALEKSANDRA: To ju偶 wszystko dla mnie jasne, je偶eli chodzi o te takie podstawy do tworzenia kontenera, ale zwr贸ci艂am uwag臋 na to, kiedy m贸wi艂e艣 na pocz膮tku o tworzeniu kontener贸w, wspomina艂e艣 o rozwi膮zaniu chmurowym, natomiast do nas Project Team przyszed艂, 偶e to maj膮 by膰 kontenery tworzone on-prem, czyli rozumiem, 偶e mo偶e by膰 to rozwi膮zanie i chmurowe i on-premise.
MARCIN: Tak, tutaj w sumie tak naprawd臋 wa偶ne jest, 偶eby okre艣li膰 jak my rozumiemy poj臋cie chmury, bo mamy chmury publiczne, mamy chmury prywatne i tak naprawd臋 stosuj膮c jak膮艣 platform臋 konteneryzacji, budujemy sobie tak膮 chmur臋 prywatn膮 we w艂asnej serwerowni i najwa偶niejsze jest do艣wiadczenie u偶ytkownika ko艅cowego. My tutaj u偶ywaj膮c w艂asnego sprz臋tu, w艂asnego oprogramowania,听 symulujemy tak naprawd臋 to, co robi Amazon, to, co robi Microsoft, swoich data center. Oni tak samo udost臋pniaj膮 infrastruktur臋 konteneryzacyjn膮, tak samo maj膮 powiedzmy orkiestracj臋 za pomoc膮 Kubernetesa, tak samo umo偶liwiaj膮 nam uruchamianie tych aplikacji, skalowanie ich i w艂a艣ciwie robienie wszystkiego, to co my robimy tutaj lokalnie. I te偶 ciekawa rzecz jest taka, 偶e w艂a艣ciwie wszystkie aplikacje, kt贸re s膮 wykorzystywane w kontenerach, nazywa si臋 tak grupowo, zbiorczo jako Cloud Native, chyba 偶e akurat by艂y tworzone wcze艣niej, wi臋c one nie s膮 tak naprawd臋 Cloud Native, ale s膮 w 艣rodowisku, kt贸re jest tak traktowane. Projektem, kt贸ry zarz膮dza rozwojem technologii Kubernetesa jest Cloud Native Software Foundation, czyli firma, czy tam projekt, kt贸ry zajmuje si臋 aplikacjami typowo chmurowymi, ale dla kontenera nie jest wa偶ne, czy jest uruchomiony na serwerze w chmurze czy na serwerze w serwerowni lokalnie, w jakim艣 prywatnym miejscu, gdzie dost臋p jest bardzo ograniczony. Zreszt膮 chmura to jest poj臋cie bardzo szerokie i obecnie mo偶emy je tworzy膰 w艂a艣ciwie wsz臋dzie.听
[00:30:00]
ALEKSANDRA: W trakcie dzisiejszej opowie艣ci o konteneryzacji wy艂apa艂am kilka takich narz臋dzi, kt贸re podejrzewam, 偶e s艂u偶膮 gdzie艣 do zarz膮dzania tymi kontenerami. Wspomina艂e艣 o Dockerze, wspomina艂e艣 o Kubernetesie, o OpenShift鈥檆ie. Natomiast rozumiem, 偶e to s膮 ca艂kowicie r贸偶ne aplikacje.听 Jaka jest r贸偶nica mi臋dzy nimi? Kt贸re rozwi膮zanie jest lepsze? Jakim narz臋dziem si臋 lepiej zarz膮dza tymi kontenerami? Czy Docker, czy Kubernetes, jaka jest r贸偶nica?听
MARCIN: To jest trudne pytanie, ale mo偶e zacznijmy od takiej szczypty historii, bo tutaj pada Docker, pada Kubernetes. To s膮 jakby dwa kluczowe poj臋cia,听 kluczowe nazwy i tak naprawd臋 wszystko zacz臋艂o si臋 z grubsza 10 lat temu, kiedy na rynku pojawi艂 si臋 Docker. Docker by艂 rozwijany jeszcze wcze艣niej, ale kiedy pojawi艂 si臋 na rynku, konteneryzacja zacz臋艂a by膰 trendy, zacz臋艂a by膰 popularna w 艣rodowisku. Mieli艣my wcze艣niej do czynienia tylko i wy艂膮cznie z takimi pr贸bami wykorzystywania funkcjonalno艣ci kontener贸w, bo sama technologia, kt贸ra jest pod spodem, jest du偶o starsza. Linux udost臋pnia艂 te wszystkie mechanizmy du偶o wcze艣niej, tylko one by艂y trudne do zarz膮dzania, trudne do wykorzystania w produkcji czy przez pojedynczych deweloper贸w. Natomiast Docker wystawi艂 bardzo 艂atwe do wykorzystania API, doda艂 do tego od siebie jeszcze zestaw bardzo prostych polece艅, kt贸re umo偶liwia艂y tworzenie tych kontener贸w, tworzenie obraz贸w,听 uruchamianie, restartowanie, zarz膮dzanie obrazami, co by艂o ca艂y czas rozbudowywane o kolejne funkcjonalno艣ci. I Docker nagle sta艂 si臋 standardem po prostu tworzenia tych kontener贸w. Do dzisiaj zreszt膮 takim standardem jest听 i obrazy, kt贸re powstaj膮 w oparciu o pewne zasady, kt贸re zosta艂y wtedy stworzone. I nied艂ugo potem zacz臋艂o by膰 jasne, 偶e kontenery s膮 super technologi膮, fajn膮, niewielk膮, tak膮 sprawn膮, ale w produkcji potrzebujemy czego艣 takiego, co potrafi艂oby samo si臋 wyleczy膰, co potrafi艂oby samo si臋 przenie艣膰, przeskalowa膰 i robi膰 tym podobne rzeczy. No bo trudno sobie wyobrazi膰, 偶e mamy 400 kontener贸w i ka偶dy z tych kontener贸w r臋cznie stawiamy, przenosimy, dbamy o niego i tak dalej. I zacz臋艂a by膰 potrzebna orkiestracja. I pojawi艂o si臋 kilka system贸w, kt贸re zacz臋艂y ze sob膮 konkurowa膰. Docker sam stworzy艂 system, kt贸ry nazywa艂 si臋 Docker Swarm, bardzo ciekawa technologia, kt贸ra zreszt膮 dzia艂a do dzisiaj i jest wykorzystywana w takich mniej skomplikowanych sytuacjach, ale do gry bardzo szybko wszed艂 Google ze swoim projektem, kt贸ry si臋 nazywa Kubernetes. I kiedy Kubernetes pojawi艂 si臋 na rynku, w艂a艣ciwie ca艂a konkurencja zosta艂a zepchni臋ta na bok. Mieli艣my kilka naprawd臋 ciekawych platform na pocz膮tku, zyskiwa艂y one na popularno艣ci, natomiast Kubernetes wyprzedzi艂 wszystko. Google udost臋pni艂 to rozwi膮zanie jako rozwi膮zanie typu open source, udost臋pni艂 je spo艂eczno艣ci i kod zacz膮艂 by膰 dost臋pny dla wszystkich, ka偶dy m贸g艂 zacz膮膰 dok艂ada膰 swoje rzeczy do tego kodu, nowe funkcjonalno艣ci. Projekt Kubernetesa zacz膮艂 偶y膰 w艂asnym 偶yciem i zacz膮艂 si臋 rozwija膰 w takim do艣膰 kosmicznym tempie. W przeci膮gu kilku lat w艂a艣ciwie zdominowa艂 rynek na tyle, 偶e ka偶da szanuj膮ca si臋 firma chmurowa, ka偶da szanuj膮ca si臋 firma, kt贸ra tworzy systemy operacyjne,听 ma swoj膮 w艂asn膮 dystrybucj臋 Kubernetesa. Konkuruj膮 mi臋dzy sob膮 w艂a艣ciwie tymi dodatkowymi funkcjonalno艣ciami, dodatkowymi pluginami, bo Kubernetes ma to do siebie, 偶e jest bardzo 艂atwo rozszerzalny, bardzo 艂atwo jest go przystosowa膰 do danych sytuacji i do danych wymaga艅. S膮 na przyk艂ad dystrybucje Kubernetesa, kt贸re s膮 bardzo mocno zabezpieczone, kt贸re s膮 przydatne w 艣rodowiskach, kt贸re wymagaj膮 ochrony danych, takiej bardzo, bardzo 艣cis艂ej, a s膮 na przyk艂ad dystrybucje, kt贸re s膮 bardzo lekkie i stosowane w miejscach, gdzie nie ma du偶ej mocy obliczeniowej albo na przyk艂ad s膮 bardzo trudne warunki, je艣li chodzi o dost臋pno艣膰 sieci. Nawet mamy dystrybucje,听 kt贸re 艣wietnie dzia艂aj膮 na Raspberry Pi, czyli tak malusie艅ki komputerkach, kt贸re ka偶dy mo偶e sobie kupi膰 za par臋 groszy i uruchomi膰 w domu, mie膰 na przyk艂ad kilka takich ma艂ych maszynek i stworzy膰 z nich klaster Kubernetesowy i bawi膰 si臋 w tak膮 konteneryzacj臋 w domu. Tak偶e tu jest multum rozwi膮za艅, multum mo偶liwo艣ci i z naszej perspektywy w sumie dla firmy najwa偶niejsze jest to, co potrzebujemy, jaki mamy sprz臋t, ile mamy pieni臋dzy, bo to te偶 niestety wa偶ne. Mo偶emy stworzy膰 rozwi膮zania听 typu open source, takiego czystego Kubernetesa, ale zarz膮dzanie potem tym jest trudne ze wzgl臋du na to, 偶e musi to robi膰 zesp贸艂 lokalny od A do Z od instalacji przez konfiguracj臋, po ju偶 rozwi膮zywanie problem贸w, update, upgrade i tym podobne rzeczy. Ja wspomnia艂em tego OpenShift,听 wspomina艂em Mirantis, Kubernetes Engine, wspomina艂em te偶 Ranchera i to s膮 rozwi膮zania, kt贸re s膮 艂atwo dost臋pne, 艣wietnie wspierane i to s膮 ju偶 rozwi膮zania dojrza艂e. Nie ma co si臋 oszukiwa膰, tak 5, 6, 7 lat temu Kubernetes by艂 jeszcze m艂ody. Mia艂 jeszcze du偶o takich problem贸w wieku dzieci臋cego, wi臋c trzeba by艂o mocno uwa偶a膰, kiedy si臋 nim zarz膮dza艂o, kiedy si臋 upgrade’owa艂o i tak dalej. API ewoluowa艂o bardzo gwa艂townie. Pojawia艂y si臋 nowe funkcjonalno艣ci, a stare funkcjonalno艣ci by艂y usuwane. Teraz to ju偶 jest 艣rodowisko bardzo dojrza艂e i te platformy korzystaj膮 z tego. Na przyk艂ad mo偶emy sobie wyobrazi膰 sytuacj臋, w kt贸rej mamy firm臋, kt贸ra ma do艣膰 du偶o kontaktu z Red Hatem, wykupione du偶o licencji, wykupione wsparcie i tak dalej, d艂ugoletni膮 wsp贸艂prac臋, no to w tym momencie logicznie si臋 wydaje, 偶e mo偶emy pomy艣le膰 o wykupieniu u nich licencji na rozwi膮zanie OpenShift. Je艣li na przyk艂ad wsp贸艂pracowali艣my kiedy艣 z Dockerem, no to mo偶emy pomy艣le膰 na przyk艂ad o firmie Bureantis, kt贸ra przej臋艂a Docker Enterprise od Dockera. Je艣li nie mamy jakich艣 wielkich do艣wiadcze艅 z r贸偶nymi vendorami, to mo偶emy pokusi膰 si臋 o przetestowanie r贸偶nych rozwi膮za艅 i po prostu wyb贸r tego, kt贸ry najbardziej pasuje do naszego 艣rodowiska, do naszej infrastruktury. Po prostu wdro偶y膰, podpisa膰 kontrakt, wykupi膰 licencj臋. Tylko tutaj taka drobna uwaga, warto planowa膰 z du偶ym wyprzedzeniem. Proces konteneryzacji i p贸藕niej zarz膮dzania tym wszystkim mo偶e by膰 na pocz膮tku trudny, a jeszcze trudniejsze mo偶e by膰 przeniesienie si臋 z powrotem do infrastruktury takiej tradycyjnej, czyli z kontener贸w na serwery, a tak偶e migracje mi臋dzy platformami mog膮 by膰 problematyczne. Mimo wszystko Kubernetes jest 艂atwiejszy do przeniesienia mi臋dzy platform膮 jedn膮 a drug膮 albo mi臋dzy serwerowni膮 a chmur膮 ni偶 taka zwyk艂a aplikacja, kt贸r膮 trzeba reinstalowa膰, rekonfigurowa膰 i tak dalej, ale zawsze warto tak minimum 3 lata naprz贸d przewidzie膰 jak ta infrastruktura ma wygl膮da膰, 偶eby si臋 nie okaza艂o, 偶e powodujemy nasz膮 tak膮 weso艂膮 konteneryzacj膮 wi臋cej problem贸w ni偶 ich rozwi膮zujemy.听
ALEKSANDRA: Okej, czyli istnieje dowolno艣膰, natomiast dalej musimy dostosowa膰 si臋 do klienta i do tego co klient wykupi艂, czyje us艂ugi. Natomiast, zauwa偶y艂am, 偶e chyba Twojemu sercu bli偶szy jest Kubernetes. Jako艣 tak przychylniej si臋 wypowiada艂e艣 na ten temat.听
MARCIN: Tak.
ALEKSANDRA: Dobrze, my艣l臋, 偶e ju偶 wszystko wiem. Bardzo fajnie mi to opowiedzia艂e艣. Wreszcie rozja艣ni艂o mi si臋 w g艂owie i ju偶 b臋d臋 wiedzia艂a z czym wr贸ci膰 do zespo艂u projektowego, 偶eby poci膮gn膮膰 dalej ten temat.
MARCIN: 艢飞颈别迟苍颈别.
ALEKSANDRA: Tak偶e wydaje mi si臋, 偶e te najwa偶niejsze rzeczy zosta艂y tutaj ju偶 powiedziane. Tak偶e bardzo Ci dzi臋kuj臋 za pomoc. No i powodzenia.听听
MARCIN: Nie ma sprawy. Ja r贸wnie偶 偶ycz臋 powodzenia i do us艂yszenia, do zobaczenia.听 Cze艣膰.听听
ALEKSANDRA: Cze艣膰.听
MARCIN: Je艣li chcieliby艣cie si臋 wi臋cej dowiedzie膰 na temat Kubernetesa, Dockera i konteneryzacji, ja polecam ze swojej strony kurs Bretta Fischera i Nigella Poultona. Dost臋pne s膮 na platformach Udemy i Pluralsight. Bardzo ciekawe kursy. Dobrze nagrane, dobrze wyt艂umaczona wiedza i zdecydowanie polecam cz臋艣膰 wiedzy, kt贸r膮 zdoby艂em w艂a艣nie z tych kurs贸w. Polecam r贸wnie偶 podcast Damiana Naprawy, kt贸ry jest specjalist膮 z dziedziny konteneryzacji i te偶 koleg膮 z 乌鸦传媒.
KONIEC