Blog
13.08.2019
Administrator

Jak usprawnić pracę z Node'em wykorzystując Dockera

Wstęp W pracy każdego programisty przychodzi kiedyś moment, kiedy okazuje się, że sporo czasu poświęcane jest nie na programowanie, a konfigurację środowiska. Zwłaszcza w dużych projektach i...

Wstęp
W pracy każdego programisty przychodzi kiedyś moment, kiedy okazuje się, że sporo czasu poświęcane jest nie na programowanie, a konfigurację środowiska. Zwłaszcza w dużych projektach i zespołach istotne jest to, aby wszyscy pracowali w jednolitym środowisku i nie było sytuacji, że u kogoś po prostu coś "nie działa".

Rozwiązywanie takich problemów bywa czasochłonne, zwłaszcza gdy przyczyna problemów jest trudna do zidentyfikowania. Samo rozwiązanie może być trywialne, ale czas na jego znalezienie jest często czasem bezpowrotnie straconym. Jak sobie z tym poradzić i zminimalizować ryzyko wystąpienia takich nieprzewidzianych sytuacji, które blokują nam możliwość faktycznej pracy i rozwijania projektu? Z pomocą przychodzi nam Docker.

Czym jest Docker?
Docker jest narzędziem pozwalającym na tworzenie kontenerów, które zawierają wszystkie niezbędne dla naszej aplikacji zależności i biblioteki. Dzięki temu mamy pewność, że nasza aplikacja będzie zachowywać się tak samo niezależnie od środowiska, w którym pracujemy. Jeżeli nasuwają się wam skojarzenia z maszyną wirtualną, to bardzo dobrze. Jednak Docker jest czymś więcej, a tak naprawdę mniej :) Zamiast uruchamiania całej ogromnej maszyny wirtualnej, uruchamiamy jedynie kontenery bazujące na np. na Alpine Linux - bardzo niewielkiej dystrybucji, która zapewnia niewielkie obciążenie i małe rozmiary obrazów.

Kontenery są od siebie całkowicie niezależne - każdy ma przydzieloną swoją pamięć, swoje miejsce na dysku na obraz oraz własny interfejs sieciowy. Dzięki temu działanie jednego kontenera nie wpływa na inne. Oczywiście kontenery mogą się ze sobą komunikować na różne sposoby. W efekcie otrzymujemy rozwiązanie, które pozwala na rozdzielenie poszczególnych obszarów naszej aplikacji i ich niezależne skalowanie. Docker jest więc potężnym narzędziem nie tylko do lokalnego developmentu, ale przede wszystkim do tworzenia złożonych systemów oraz łatwego i szybkiego dostarczania oprogramowania na środowiska produkcyjne. W tym artykule skupimy się jednak na korzyściach płynących dla programistów.

Zobacz też...