‫Teraz możesz się nadal zastanawiać, nawet po zapoznaniu się z niektórymi kluczowymi funkcjami Dockera.
‫Dlaczego Docker musi istnieć?
‫Oczywiście pakujemy oprogramowanie od dziesięcioleci wraz z mnóstwem innych menedżerów pakietów wdrażających oprogramowanie na
‫serwerach.
‫Porozmawiajmy o tym.
‫W tym filmie skupimy się na trzech kwestiach dotyczących tego, dlaczego Docker i dlaczego teraz?
‫A w czasie, gdy powstawał, istniały tarcia.
‫Były rzeczy, które utrudniały nam przejście na wyższy poziom szybkości i łatwości użytkowania cyklu życia oprogramowania, szczególnie w zakresie pakowania,
‫dystrybucji i uruchamiania całego tworzonego przez nas oprogramowania.
‫I chyba lubię listy trzech.
‫Więc ta główna lista środowisk izolacji i prędkości.
‫Te trzy obszary są tym, o czym chcę mówić jako o trzech ogólnych powodach.
‫Czuję, że same pojemniki musiały istnieć i dlaczego są dziś tak popularne.
‫Po pierwsze, problem izolacji.
‫A jeśli cofniemy się do początków mojej kariery w latach dziewięćdziesiątych, możemy zacząć rozmawiać o
‫tym, jakie były serwery, zanim mieliśmy kontenery.
‫Jeśli cofniemy się jeszcze dalej niż tylko do 2013 roku, zanim powstał Docker i mówimy o wczesnych latach
‫2000 w latach dziewięćdziesiątych, kiedy przenieśliśmy się z mainframe na PC, to może tak wyglądać typowy administrator.
‫Miałem kilka serwerów na firmę.
‫Wiesz, tak naprawdę nie bylibyśmy w stanie zarządzać 100 serwerami na osobę.
‫Znowu, to było jak, wiesz, 2000.
‫I tak mielibyśmy te bardzo drogie duże serwery, których wykorzystanie wszystkich zasobów za pomocą jednej aplikacji
‫było rzadkością.
‫W rezultacie wszystkie te aplikacje byłyby po prostu sklecone na tym samym serwerze.
‫A serwer stał się kruchy.
‫Trudno było sobie z tym poradzić, ponieważ być może trzeba było zmienić jedną rzecz w jednej aplikacji, a inna
‫aplikacja wymagała innej.
‫A potem musiałbyś zarządzać ich różnymi wersjami Pythona lub różnymi wersjami Apache na różnych
‫serwerach, aby zrównoważyć to wszystko w tym samym czasie, chciałeś umieszczać coraz więcej rzeczy na każdym
‫serwerze.
‫Ale nic nie było izolowane, więc wszystkie te aplikacje korzystały z tego samego systemu plików.
‫Zwykle nie mogą być wieloma wersjami tej aplikacji bez wielu skomplikowanego hakowania.
‫I to był duży problem.
‫Potem pojawiły się maszyny wirtualne.
‫Kiedy więc maszyny wirtualne stały się naprawdę popularne, jeszcze przed powstaniem chmury, byliśmy w stanie wyodrębnić wszystkie
‫nasze aplikacje i zacząć umieszczać mniej aplikacji na mniejszych maszynach wirtualnych, wszystkie pisząc na tym samym dużym hoście.
‫Może to wyglądać tak i możemy zacząć od Chef lub Puppet jako sposobu na
‫zarządzanie wszystkimi tymi rosnącymi liczbami serwerów.
‫W rzeczywistości mielibyśmy wtedy tak wiele serwerów na początku 20 dziesiątek przed utworzeniem Dockerów, że zarządzanie
‫nimi wszystkimi naraz stawało się bardzo trudne.
‫Byłeś pojedynczym administratorem, może próbowałeś zarządzać dziesiątkami, jeśli nie setkami serwerów, nawet z chmurą, która
‫pomagała nam szybciej rozkręcać maszyny i niszczyć je szybciej.
‫To było dużo.
‫To było tak trudne do opanowania, że dla wielu z nas stało się to zbyt trudne.
‫A chmura, jak sądzę, sprawiła, że było lepiej, ale także gorzej, ponieważ znacznie ułatwiła rozkręcenie tak
‫wielu innych.
‫Jak więc Docker może w tym pomóc?
‫W jaki sposób może nam to pomóc zmniejszyć ilość infrastruktury do zarządzania, jednocześnie zapewniając izolację naszych obciążeń, aby rzeczy
‫nie stały się kruche lub trudne do zarządzania?
‫Cóż, gdyby to była nasza konfiguracja 20 lat temu, zamiast rozpowszechniania wszystkich tych maszyn wirtualnych z niepotrzebną liczbą
‫systemów operacyjnych.
‫Kontenery zapewniają nam izolację jak maszyna wirtualna.
‫To nie to samo, ale na razie będziemy się kłócić, że jest to warstwa izolacji, w której otrzymują
‫swój własny adres IP, swój własny system plików, mają własną przestrzeń procesową.
‫Wygląda więc na prawie pełną maszynę wirtualną, ale nie potrzebujesz wszystkich różnych systemów operacyjnych, abyśmy
‫mogli zmniejszyć nasz system operacyjny, policzyć liczbę hostów fizycznych.
‫Nie musisz już używać maszyn wirtualnych jako warstwy izolacji i może to wyglądać tak.
‫Zamiast używać S-H, użyjesz Dockera.
‫Seelye Lub, jeśli przejdziesz do Kubernetes, możesz użyć pieczęci Kubernetes AI, a Twoje aplikacje
‫będą izolowane we własnych kontenerach.
‫Daje to wiele korzyści, w tym uruchamianie wielu wersji tej samej aplikacji w tym samym systemie
‫bez żadnych konfliktów.
‫Następnie problem środowisk.
‫I oczywiście rozwijaliśmy mnóstwo systemów operacyjnych, o których mówiłem, ale liczba różnych typów
‫środowisk również rosła.
‫Czy słyszałeś kiedyś o pracach na mojej maszynie?
‫Został rozsławiony jako żart przez Jeffa Atwooda, jednego z założycieli StackOverflow, i słynny post na
‫blogu z dawnych czasów.
‫Ale to działa w przypadku mojego pomysłu na komputer był trochę złośliwy, ale żartem było, że często
‫zadaniem programisty jest upewnienie się, że aplikacja działa poprawnie.
‫Ale nie mają wszystkich środowisk niezbędnych do działania tej aplikacji.
‫Więc po prostu uruchamiają go na swoim komputerze, testują na swoim komputerze, a kiedy to nie
‫działa w innym miejscu, mówią, że działa na moim komputerze.
‫To naprawdę trudne, gdy mamy te wszystkie
‫systemy operacyjne, a Docker ukuł tę
‫Matrycę z piekła inna konfiguracja.
‫Może musisz zainstalować zależności w inny sposób.
‫Może zależności są nieco inne, ponieważ jedna ma inną wersję w drugiej.
‫Masz wszystkie te różne typy środowisk i prawdopodobnie musiałeś przeczytać lub napisać dokumentację dotyczącą tego, jak aplikacja używana
‫przez programistę na komputerze Mac musi być inaczej zainstalowana w systemie Windows, który musi być zainstalowany
‫inaczej na serwerze Linux i na i tak dalej.
‫Teraz obraz kontenera i sam kontener stały się fundamentem.
‫Umysłowe, abstrakcyjne lub umowa między tym, gdzie jest uruchamiana, a tym, co się w niej znajduje, podobnie jak fizyczne pojemniki
‫w prawdziwym świecie, które pozwalają nam wysyłać towary na cały świat z projektu prawie
‫sto lat temu.
‫Celem było to, że ludzie, którzy dostarczają fizyczne kontenery, nie muszą wiedzieć, co jest w środku,
‫a ludzie, którzy wkładają swoje rzeczy do kontenera, nie muszą wiedzieć ani dbać o to, jak kontener fizycznie
‫dotarł do miejsca przeznaczenia.
‫Były to abstrakcja obecnie epickich proporcji milionów kontenerów wysyłanych na całym świecie.
‫I prawie wszystko w twoim domu prawdopodobnie znajdowało się w pojemniku w swoim życiu.
‫To samo dotyczy teraz obrazów w kontenerach Dockera.
‫Są one spójnym standardowym formatem znanym obecnie jako standardy OCI.
‫Zapewniają one, że gdziekolwiek uruchomisz kontener, będzie on uruchamiany w ten sam spójny sposób, z tymi samymi dokładnymi
‫zależnościami, z którymi został zbudowany.
‫Dalej, problem prędkości.
‫Niekoniecznie mam tu na myśli szybkość procesora czy szybkość pamięci.
‫Te rzeczy po prostu naturalnie stają się szybsze z biegiem czasu.
‫Ale tak naprawdę mówię o szybkości biznesu.
‫A kiedy mówimy o mnie. T. oraz oprogramowania i cyklu życia
‫oprogramowania, tak naprawdę mówimy o zdolności firm i organizacji do realizacji ich pomysłów, aby dostarczać swoje pomysły dotyczące
‫oprogramowania klientom tak szybko, jak to możliwe.
‫I to jest część cyklu życia oprogramowania.
‫Cóż, okazuje się, że branża zmienia infrastrukturę i architekturę od zarania
‫informatyki.
‫Z tego właśnie powodu stworzyłem tę ładną małą grafikę, ponieważ możesz zacząć od góry.
‫Dawno temu w latach dziewięćdziesiątych, kiedy zacząłem swój start, mieliśmy przenoszenie komputerów mainframe na komputery PC
‫w architekturze rozproszonej, która w dużej mierze polegała na szybkości wdrażania zmian.
‫Mogłeś teraz zainstalować DOS na jednej maszynie bez konieczności czekania na aktualizację mainframe
‫do następnej wersji Uniksa.
‫Nie mogliśmy już ruszać się wszyscy na raz.
‫Potrzebowaliśmy różnych części naszej organizacji, aby poruszały się w różnych kierunkach z różnymi prędkościami,
‫stąd początek przetwarzania rozproszonego.
‫Potem przeszliśmy od gołego metalu, wirtualnego, ponieważ byliśmy zmęczeni czekaniem na zamówienie sprzętu i czekaniem na
‫jego wdrożenie w centrum danych.
‫Chcieliśmy przyspieszyć i lepiej wykorzystać nasze zasoby.
‫Z tych powodów wirtualizacja i maszyny wirtualne stały się niezwykle popularne.
‫Następnym krokiem było przejście od centrum danych do chmury, ponieważ teraz musieliśmy wdrażać pomysły jeszcze szybciej, niż pozwalał
‫na to nasz sprzęt i centra danych.
‫Chcieliśmy uruchomić serwery, których obecnie nie mamy, w ciągu kilku minut, a nie dni czy tygodni,
‫a chmura dała nam dostęp do zasobów Near-Instant, co oczywiście jest powodem, dla którego chmura jest dziś tak ogromna.
‫I wreszcie, jesteśmy na kolejnym etapie tej podróży, przechodząc od ogromnej ekspansji hostów, którą mieliśmy, gdzie mieliśmy
‫zbyt wiele hostów, jąder i systemów operacyjnych.
‫A teraz będziemy w stanie zmniejszyć ich liczbę, ponieważ jesteśmy teraz w stanie wyizolować znajdujące się w
‫nich obciążenia i bezpiecznie uruchomić je razem na tym samym jądrze.
‫Nawiasem mówiąc, włączam tutaj bezserwerowe, ponieważ jeśli naprawdę zagłębisz się w większość platform bezserwerowych, tak
‫naprawdę działają one tylko w tle.
‫Może to być kontener, który wysłałeś jako obraz, lub po prostu kontener, w którym uruchomiono
‫twoją funkcję, ale nadal działają w kontenerze.
‫I dlatego lubię mówić o szybciej, szybciej, szybciej.
‫Zasadniczo kontenery i platforma Docker umożliwiają szybsze tworzenie aplikacji, szybsze
‫ich testowanie i szybsze wdrażanie na serwerach.
‫Czy nadal jesteś ze mną?
‫Nadal mam twoją uwagę.
‫Podsumujmy to naprawdę szybko.
‫Tak więc powodem istnienia kontenerów są, moim zdaniem, trzy główne powody, lepsza izolacja wewnątrz jednego systemu operacyjnego,
‫oszczędzająca czas, system operacyjny i zarządzanie zależnościami, ale także zapewniająca nam izolację potrzebną do
‫ochrony naszych aplikacji.
‫Następnie zmniejszyliśmy odchylenia środowiskowe.
‫Tak więc różnica między poszczególnymi środowiskami, które obsługuje, jest bardzo minimalna.
‫Znowu, zwykle tylko ustawienia połączenia z bazami danych, może jakieś ścieżki URL, takie tam, porty,
‫a reszta jest dokładnie taka sama, jak ją zbudowałeś i przetestowałeś.
‫I wreszcie, zwiększenie szybkości zmian, nie tylko samego oprogramowania, ale także firmy, która
‫chce je wdrożyć.
‫Teraz możemy szybciej programować, budować go szybciej, szybciej wdrażać na serwerach i szybciej testować, a wszystko to
‫dlatego, że te obrazy kontenerów i same kontenery są tak łatwe do zbudowania, wdrożenia, ponownego wdrożenia i ponownego uruchomienia
‫i tak dalej.
‫Więc mam nadzieję, że to ma sens.
‫Do zobaczenia w następnym filmie.